--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPlugin.h Mon Jan 18 20:19:52 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,576 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "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: ScreenSaverAnimPlugin provides an implementation of
-* MScreensaverPlugin for animation files.
-*
-*/
-
-
-
-#ifndef C_SCREENSAVERANIMPLUGIN_H
-#define C_SCREENSAVERANIMPLUGIN_H
-
-#include <gdi.h>
-#include <ScreensaverpluginIntDef.h>
-#include <coecntrl.h>
-#include <e32cmn.h>
-#include <screensaverplugin.h>
-#include <coecobs.h>
-#include <npupp.h>
-#include <ecom/implementationinformation.h>
-#include <CEcomBrowserPluginInterface.h>
-#include <PluginAdapterInterface.h>
-#include <flogger.h>
-
-
-class CEikonEnv;
-class CDRMHelper;
-class CScreensaverRepositoryWatcher;
-class CRepository;
-
-
-_LIT( KFileLoggingDir, "ScreenSaver" );
-_LIT( KFileLog, "SaveLog.txt" );
-_LIT( KEmptyString, "" );
-
-#ifdef SCREENSAVER_LOG_ENABLED
-
-inline void PrintDebugMsg( const TDesC& aMsg )
- {
- RDebug::Print( aMsg );
-#if 0
- RFileLogger::Write( KFileLoggingDir,
- KFileLog, EFileLoggingModeAppend, aMsg );
-#endif
- }
-#else
-
-inline void PrintDebugMsg( const TDesC& /*aMsg*/ )
- {
- }
-
-#endif
-
-/**
-* Encapsulates the Settings that are written into the central repository
-* @lib ScreenSaverAnimPlugin.lib
-* @since 3.1
-*/
-class CScreenSaverAnimSettingObject : public CBase
- {
-
- public:
- CScreenSaverAnimSettingObject();
-
- public:
-
- // Name of the file to be set as screensaver
- TFileName iFileName;
-
- // Animation Timeout
- TInt iAnimationTimeout;
-
- // Lights Timeout
- TInt iLightsTimeout;
- };
-
-/**
-* Provides the Animated ScreenSaverPlugin functionality which implements
-* ScreenSaver Interface and gives a Netscape Browser Plugin Interface
-* to the format specific plugins like SVG, Flash, M3G etc.
-* @lib ScreenSaverAnimPlugin.lib
-* @since 3.1
-*/
-
-class CScreenSaverAnimPlugin: public CScreensaverPluginInterfaceDefinition,
- public MPluginAdapter,
- public MCoeControlObserver
- {
-
- public:
-
- /**
- * Two-phased constructor.
- * @since 3.1
- */
- static CScreenSaverAnimPlugin* NewL();
-
- /**
- * Destructor.
- */
- virtual ~CScreenSaverAnimPlugin();
-
- public: // Functions From CScreensaverPluginInterfaceDefinition
-
- /**
- * From MScreensaverPlugin, Method called by ScreenSaver Application
- * when an animation file is configured as a Screen Saver.
- * @param aHost Screen saver plugin host.
- * @since 3.1
- */
- virtual TInt InitializeL( MScreensaverPluginHost *aHost );
-
- /**
- * From MScreensaverPlugin, Method called by ScreenSaver Application
- * when Screen Saver is activated.
- * @since 3.1
- */
- virtual TInt Draw( CWindowGc& aGc );
-
- /**
- * From MScreensaverPlugin, Method called by ScreenSaver Application
- * before the InitializeL.
- * @since 3.1
- */
- virtual const TDesC16& Name() const;
-
- /**
- * From MScreensaverPlugin, Method called by ScreenSaver Application
- * to get the capabilities of Screensaver plugin.
- * @since 3.1
- */
- virtual TInt Capabilities();
-
- /**
- * From MScreensaverPlugin, Method called by Psln Application
- * when the user selects Animated ScreenSaver
- * @since 3.1
- */
- virtual TInt PluginFunction(
- TScPluginCaps /*aFunction*/,
- TAny* /*aParam*/ );
-
- /**
- * From MScreensaverPlugin, Method called by ScreenSaver Application
- * when there are Screen Saver events.
- * @since 3.1
- */
- virtual TInt HandleScreensaverEventL(
- TScreensaverEvent aEvent,
- TAny* aData );
-
- public: // New Functions
-
- /**
- * Reads the animation settings from the central repository
- * @since 3.1
- * @return System wide Error value
- */
- TInt GetAnimSettings();
-
- /**
- * Writes the animation settings to the central repository
- * @since 3.1
- * @return System wide Error value
- */
- TInt SetAnimSettings() const;
-
- /**
- * This method registers for expiry of drm content
- * @since 3.1
- * @return System wide Error value
- */
- TInt RegisterForDrmExpiry();
-
- /**
- * This method unregisters for expiry of drm content
- * @since 3.1
- * @return System wide Error value
- */
- TInt UnregisterForDrmExpiry();
-
- /**
- * This method reads and parses the central repository key
- * for drm expiry
- * @since 3.1
- * @return System wide Error value
- */
- TInt ReadDrmNotification( TDes8& aString );
-
- /**
- * Called when there is a drm expiry notification
- * @since 3.1
- */
- void ProcessDrmNotificationL();
-
- /**
- * This method pops the settings dialog
- * @since 3.1
- */
- void PopSettingsDialogL();
-
- /**
- * This method checks whether the set file exists currently
- * if not, it updates the filename string
- * This also checks if the rights are valid if the content is drm
- * if not, it updates the filename with the empty file name
- * returns True, if the Filename is updated
- * False, otherwise
- * @since 3.1
- */
- TBool UpdateFileName();
-
- /**
- * Called when HandleScreenSaverEventL is called with EDisplayChanged
- * Used to set the parent control for the animation plugins
- * returns KErrGeneral when SetWindow does not go through
- * @since 3.1
- */
- TInt SetWindow( CCoeControl* aParent );
-
- /**
- * Called to set the filename for the animation plugins
- * @since 3.1
- */
- void AsFile();
-
- /**
- * Called when there is a central repository settings change
- * @since 3.1
- */
- void HandleSettingsChange( TAny* aPtr );
-
- /**
- * Called by the repository watcher when there is a central
- * repository settings change
- * @since 3.1
- */
- static TInt HandleRepositoryCallBack( TAny* aPtr );
-
- /**
- * Called by the repository watcher when there is a
- * drm expiry notification
- * @since 3.1
- */
- static TInt HandleDrmNotification( TAny* aPtr );
-
- /**
- * Sends an event to the plugins to check for the file's validity
- * repository settings change
- * returns KErrNone if the file is valid
- * @since 3.1
- */
- TInt CheckFileValidityL( const TDesC& aFileName );
-
- /**
- * Parses the mime description and checks whether the given mime type
- * is present in the mime description
- * @since 3.1
- * @param aMIMEDescription mime Description which has mimetype,
- * extension and description
- * @param aDataType mimetype to be searched
- * @return TBool ETrue if aDataType is present in aMIMEDescription
- * EFalse otherwise
- */
- static TBool ParseMimeStringL( const TDesC& aMIMEDescription,
- const TDesC& aDataType );
-
- /**
- * Given the mimetype searches and returns the browser plugin which
- * handles the given mimetype
- * @since 3.1
- * @param aDataType
- * @return TUid uid of the plugin which handles the mimetype
- */
- TUid FindAnimPluginL( const TDesC& aDataType );
-
-
- public: // From MPluginAdapter
-
- /**
- * Gets the pointer to the minor version number of the plug-in version
- * number of the Browser Plug-in API.
- * @since 3.1
- * @return Series 60 returns 1. Series 80 and
- * the Nokia 7710 smartphone return 101.
- */
- virtual TUint16 GetVersion();
-
- /**
- * Called when the plug-in has completed its creation.
- * This function is called from the constructL function of the plug-in.
- * @since 3.1
- * @param aPluginControl A pointer to the plug-in control window
- */
- virtual void PluginConstructedL( CCoeControl* aPluginControl );
-
- /**
- * Called after the plug-in has been deleted.
- * This function is called from the destructor of the plug-in.
- * @since 3.1
- */
- virtual void PluginFinishedL();
-
-#ifndef __SERIES60_30__
-
- /**
- * Called by the plug-in to open a URL in the parent frame.
- * This function is not implemented in Series 60.
- * It is supported in Series 80 and in the Nokia 7710 smartphone.
- * @since 3.1
- * @param aUrl Name of the URL to open
- */
- virtual void OpenUrlL( const TDesC& aUrl );
-
- /**
- * Called by the plug-in to open a URL in a named window or frame.
- * This function is not implemented in Series 60.
- * It is supported in Series 80 and in the Nokia 7710 smartphone.
- * @since 3.1
- * @param aUrl Name of the URL to open
- * @param aNewTargetWindowName The name of the target window or frame
- */
- virtual void OpenUrlInTargetWindowL( const TDesC& aUrl,
- const TDesC& aNewTargetWindowName );
-
- /**
- * Specifies whether or not the frame has a previous navigation
- * history item.
- * This function is not implemented in Series 60.
- * It is supported in Series 80 and in the Nokia 7710 smartphone.
- * @since 3.1
- * @return true if the frame has a previous navigation
- * history item false otherwise
- */
- virtual TBool HasNavigationHistoryPrevious() const;
-
- /**
- * Informs the browser to load the next navigation history URL
- * in its parent frame.
- * This function is not implemented in Series 60.
- * It is supported in Series 80 and in the Nokia 7710 smartphone.
- * @since 3.1
- */
- virtual void LoadNavigationHistoryPreviousL();
-
- /**
- * Returns whether the frame has a next navigation history item.
- * This function is not implemented in Series 60.
- * It is supported in Series 80 and in the Nokia 7710 smartphone.
- * @since 3.1
- * @return Returns whether the frame has a next navigation history item.
- */
- virtual TBool HasNavigationHistoryNext() const;
-
- /**
- * Informs the browser to load the next navigation history URL
- * in its parent frame.
- * This function is not implemented in Series 60. It is supported in
- * Series 80 and in the Nokia 7710 smartphone.
- * @since 3.1
- */
- virtual void LoadNavigationHistoryNextL();
-
-#endif
- /**
- * Returns the window system level control object for the plug-in.
- * @since 3.1
- * @return A pointer to the parent control window.
- */
- virtual CCoeControl* GetParentControl();
-
- /**
- * Returns the observer for the plug-in control.
- * @since 3.1
- * @return Observer that the plug-in can use to send events
- * to the browser.
- */
- virtual MCoeControlObserver* GetParentControlObserver();
-
- /**
- * Sets the plug-in notifier allowing the plug-in to control
- * portions of the browser.
- * @since 3.1
- * @param aNotifier Pointer to an interface that the browser can
- * use to send events to the plug-in.
- */
- virtual void SetPluginNotifier( MPluginNotifier *aNotifier );
-
- /**
- * Tells the plugin adapter if plugin content can accept user interaction. This function
- * is called from the plugin.
- * @since Series 60 3nd Edition
- * @param None
- * @return None
- */
- virtual void SetContentInteractive( TBool /*aInteractive*/ );
-
- public: //MCoeControlObserver
- /**
- * Handles an event from an observed control.
- * This function is called when a control for which this control
- * is the observer calls CCoeControl::ReportEventL(). It should be
- * implemented by the observer control, and should handle all events
- * sent by controls it observes.
- * @param aControl The control that sent the event.
- * @param aEventType The event type.
- */
- virtual void HandleControlEventL( CCoeControl* aControl,
- TCoeEvent aEventType );
-
- private: // New functions
-
- /**
- * Finds the mime type of the file, searches the corresponding
- * browser plugin which handles the mime type and starts the same.
- * @since 3.1
- */
- void FindAndStartPluginL( const TDesC& aFileName,
- TBool aCheckFileMode = EFalse );
-
- /**
- * Makes use of ecom api to find out whether an implementation with uid
- * aImpUid is present which implements the interface aInterfaceUid.
- * @since 3.1
- */
- TBool CheckIfPluginPresentL( TUid aInterfaceUid,
- TUid aImpUid );
-
- /**
- * Finds the mime type of the file, searches the corresponding
- * browser plugin which handles the mime type
- * @since 3.1
- */
- void FindPluginL( const TDesC& aFileName );
-
- /**
- * Creates the format specific plugin
- * @since 3.1
- */
- void CreatePluginL( TBool aCheckFileMode = EFalse );
-
- /**
- * Deletes the browser plugin.
- * @since 3.1
- */
- void DeletePlugin();
-
- /**
- * Deletes and Sets the browser plugin members to NULL
- * @since 3.1
- */
- void SetPluginDeleted();
-
- /**
- * Connects the central repository session
- * @since 3.1
- */
- void InitializeCenRepL();
-
- /**
- * Registers for central repository key changes
- * @since 3.1
- */
- void NotifyCenrepChangeL();
-
- /**
- * Cancels registration for central repository key changes
- * @since 3.1
- */
- void NotifyCenrepChangeCancel();
-
- /**
- * Disconnects the central repository session
- * @since 3.1
- */
- void UnInitializeCenRep();
-
- /**
- * Sends an animation end event to the plugins
- * @since 3.1
- */
- TInt SendEndEvent();
-
- /**
- * Checks whether the given content id matches the content id of the
- * file name given
- * @return ETrue if the content id matches
- * EFalse if not
- * @since 3.1
- */
- TBool CheckContentIdL( const TDesC& aFileName, TDesC8& aContentUri );
-
- private:
-
- /**
- * Default Constructor
- * @since 3.1
- */
- CScreenSaverAnimPlugin();
-
- /**
- * 2nd phase constructor
- * @since 3.1
- */
- void ConstructL();
-
- public:
-
- // Pointer to the screen saver host
- MScreensaverPluginHost* iScreenSaverHost;
-
- private:
-
- // Resource file offset
- TInt iResourceOffset;
-
- // Handle to the central repository session
- CRepository* iAnimPluginSession;
-
- // Handle to the central repository session
- CRepository* iDrmSession;
-
- // Environment pointer
- CEikonEnv* iEikEnv;
-
- // Format specific Netscape plugin UID
- TUid iPluginUID;
-
- // Netscape plugin functions.
- NPPluginFuncs* iPluginFuncs;
-
- // Netscape ECOM plugin interface.
- CEcomBrowserPluginInterface* iPluginInterface;
-
- // Netscape plugin instance.
- NPP iNPPinstance;
-
- // Plugin Type
- HBufC8* iPluginType;
-
- // Parent control given by the screen saver application
- CCoeControl* iParentControl;
-
- // Pointer to the Settings object
- CScreenSaverAnimSettingObject* iSettingObject;
-
- // Pointer to Drm Helper
- CDRMHelper* iDrmHelper;
-
- // Cenrep Watcher for settings change
- CScreensaverRepositoryWatcher* iScreensaverRepositoryWatcher;
-
- // Cenrep Watcher for drm expiry
- CScreensaverRepositoryWatcher* iDrmExpiryWatcher;
-
- // To save the error encountered by the plugin
- TInt iPluginError;
-
- // Screensaver plugin name
- HBufC* iScreensaverName;
- };
-
-
-#endif // C_SCREENSAVERANIMPLUGIN_H
-// End Of file