diff -r 4baee4f15982 -r 6385c4c93049 browserplugins/browseraudiovideoplugin/inc/BavpPlugin.h --- a/browserplugins/browseraudiovideoplugin/inc/BavpPlugin.h Thu Aug 19 09:57:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,370 +0,0 @@ -/* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the License "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Interface to Browser for handling embedded video requests. -* -*/ - - -#ifndef BAVPPLUGIN_H -#define BAVPPLUGIN_H - -// INCLUDES -#include -#include -#include // For base class MPluginNotifier -#include // For displaying note -#include -#include -#include -#include "BavpNPObject.h" -#include - -// FORWARD DECLARATIONS -class CBavpView; -class CBavpController; - -// CLASS DECLARATION - -/****************************************** -This class is specific to ECom Style Plugin. -This is used for passing plugin specific initialization information to and from -browser. -*******************************************/ -IMPORT_C NPError InitializeFuncs( NPPluginFuncs* aPpf ); - -// CONSTANTS -const TInt KFirstBavpImplementationValue = 0x10282811; -const TInt KSecondBavpImplementationValue = 0x10282812; -const TInt KThirdBavpImplementationValue = 0x10282813; -const TInt KFourthBavpImplementationValue = 0x10282814; - -/** -* CBavpPluginEcomMain -* Used for passing plugin specific initialization information to and from browser. -* @lib npBrowserVideoPlugin.lib -* @since 3.2 -*/ -class CBavpPluginEcomMain : public CEcomBrowserPluginInterface - { - public: // Methods from base classes - - /** - * Two-phased constructor. - */ - static CBavpPluginEcomMain* NewL( TAny* aInitParam ); - - /** - * Destructor - */ - ~CBavpPluginEcomMain(); - - /** - * Passed from the browser to the plugin and delcares what functions the browser - * makes available - */ - NPNetscapeFuncs* Funcs() { return iNpf; } - - private: - - // Default constructor - CBavpPluginEcomMain( NPNetscapeFuncs* aNpf ); - - // By default Symbian 2nd phase constructor is private. - void ConstructL( NPPluginFuncs* aPluginFuncs ); - - // Netscape Function Pointer - NPNetscapeFuncs* iNpf; - }; - -/** -* CBavpPlugin class -* Interfaces to Browser, used to pass information between browser and plugin -* @lib npBrowserVideoPlugin.lib -* @since 3.2 -*/ -class CBavpPlugin : public CBase, - public MPluginNotifier - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CBavpPlugin* NewL(); - - /** - * Destructor. - */ - virtual ~CBavpPlugin(); - - public: // New methods - - /** - * SetWindowL - * @since 3.2 - * @param MPluginAdapter *pluginAdapter: Pointer to Browser adapter class - * @param const TRect& aRect: rectangle representing current UI - * @return void - */ - void SetWindowL( MPluginAdapter *pluginAdapter, NPWindow* aWindow, NPP aInstance ); - - /** - * OpenAndPlayFileL - * @since 3.2 - * @param const TDesC& aFileName: Name and path of file to be played - * @param const HBufC* originalFileName: name of the file to be played. added for scripting. - * @return void - */ - void OpenAndPlayFileL( const TDesC& aFileName, const HBufC* originalFileName ); - - /** - * OpenAndPlayUrlL - * @since 3.2 - * @param const TDesC& aUrl: Name and path of uri to be played - * @return void - */ - void OpenAndPlayUrlL( const TDesC& aUrl ); - - /** - * Controller - * @since 5.0 - * @param void - * @return controller - */ - CBavpController* Controller() { return iBavpController; } - - /** - * SetNPObject - * iNPObject is a scriptable object - * @since 5.0 - * @param BavpNPObject *aObj - * @return void - */ - void SetNPObject( BavpNPObject* aObj ) { iNPObject = aObj; } - - /** - * NPObject - * return the scriptable object - * @since 5.0 - * @param void - * @return BavpNPObject* - */ - BavpNPObject* NPObject() const { return iNPObject; } - - - public: // New methods - - /** - * SetAccessPtId - * Set access pt id - * @since 3.2 - * @param TUint aAccessPtId, sets the access pt id - * @return void - */ - void SetAccessPtId( TUint aAccessPtId ); - - /** - * SetVolumeAndLoop - * Set volume, loop, and infinite values - * @since 3.2 - * @param TInt aVolume, the volume level from web page - * @param TInt aLoop, the loop count from web page - * @param TInt aInfiniteFlag, not used - * @return void - */ - void SetVolumeAndLoop( TInt aVolume, TInt aLoop, TInt aInfiniteFlag ); - - /** - * SetRtspUri - * Set Rtsp uri - * @since 3.2 - * @param TInt aVolume, the volume level from web page - * @param TInt aLoop, the loop count from web page - * @param TInt aInfiniteFlag, not used - * @return void - */ - void SetRtspUriL( const TDesC& aRtspUri ); - - public: // Methods from base classes - - /** - * From MPluginNotifier - * @since 3.2 - * @param TNotificationType aCallType: Represents a type of notification from Browser - * @param void* aParam: Contains value corresponding to notification - * @return TInt: Error Code - */ - TInt NotifyL( TNotificationType aCallType, void* aParam ); - - /** - * Set the mime type - * The mimetype is returned from headers - * @param NPMIMEType type - * @return void - */ - void SetMimeType(NPMIMEType type); - - NPP getNPP() {return iNPP;} - - NPNetscapeFuncs* getNPNFuncs(); - - TBool HandleGesture(void* aEvent); - private: - - /** - * C++ default constructor. - */ - CBavpPlugin(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - public: // Data - - // Initialize as false, then set it whenever error occurs - TBool iError; - - private: // Data - - // Interface to Browser - MPluginAdapter* iPluginAdapter; - - // Audio or Video controller - CBavpController* iBavpController; - - // CCoeControl interface - CBavpView* iBavpView; - - BavpNPObject* iNPObject; - - // Resource offset - TInt iResourceOffset; - - // Src file scheme, which is changed by script in run time - HBufC* iFileName; - - // Src RTSP scheme uri, which is used to start BavpController - HBufC* iRtspUrl; - - // Access point id - TUint iAccessPtId; - - // Value of the Volume embedded in the HTML file - TInt iVolume; - - // Value of the Loop embedded in the HTML file - TInt iLoop; - - // Flag indication if the loop is set to infinite - TBool iInfiniteFlag; - - // DRM Helper instance to address the error case from the plugin level - CDRMHelper* iDrmHelper; - - // Mime type. Added for scripting functionality - HBufC8* iMimeType; - NPP iNPP; - //browser plugin state, used for play and resume - TBool iPauseState; - TBool iIsForeGround; - TBool iPauseInBackground; - TBool iPlayFromFile; - }; - -/** -******************************************************************************** - Plugin API methods. Source located in CBavpApi.cpp -********************************************************************************* -*/ - -/** - * Create a plugin. - */ - -NPError BavpNewp( NPMIMEType pluginType, NPP instance, uint16 mode, - CDesCArray* argn, CDesCArray* argv, NPSavedData* saved ); - -/** - * Wrapper the errors - */ -void BavpConstructL( NPP aInstance, CDesCArray* argn, CDesCArray* argv ); - -/** - * Destroy a plugin. - */ -NPError BavpDestroy( NPP instance, NPSavedData** save ); - -/** - * This is the parent window of a plugin. - */ -NPError BavpSetwindow( NPP instance, NPWindow* window ); - -/** - * A new data stream has been created for sending data to the plugin. - */ -NPError BavpNewstream( NPP instance, NPMIMEType type, NPStream* stream, - NPBool seekable, uint16* stype ); - -/** - * A data stream has been terminated. - */ -NPError BavpDestroystream( NPP instance, NPStream* stream, NPReason reason ); - -/** - * A data stream has been fully saved to a file. - */ -void BavpAsfile( NPP instance, NPStream* stream, const TDesC& fname ); - -/** - * Return the maximum number of bytes this plugin can accept from the stream. - */ -int32 BavpWriteready( NPP instance, NPStream* stream ); - -/** - * Receive more data - return number of bytes processed. - */ -int32 BavpWrite( NPP instance, NPStream* stream, - int32 offset, int32 len, void* buffer ); - -/** - * This is the URL being sensed. - */ -void BavpUrlnotify( NPP instance, const TDesC8& url, NPReason reason, - void* notifyData ); - -/** - * Generic hook to retrieve values/attributes from the plugin. - */ -NPError BavpGetvalue( NPP instance, NPPVariable variable, void *ret_value ); - -/** - * Generic hook to set values/attributes within the plugin. - */ -NPError BavpSetvalue( NPP instance, NPNVariable variable, void *ret_value ); - -/** - * Print - */ -void BavpPrint( NPP instance, NPPrint* platformPrint ); - -/** - * Event - */ -int16 BavpEvent( NPP instance, void* event ); - -#endif // BAVPPLUGIN_H - -// End of File