diff -r 724d4ec22f0d -r aaeeca1f15af scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowPlugin.h --- a/scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowPlugin.h Thu Aug 19 09:55:47 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,361 +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 "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: Implements the Slideshow plugin beef, especially -* MScreensaverPlugin interface -* -*/ - - - -#ifndef C_SLIDESHOWPLUGIN_H -#define C_SLIDESHOWPLUGIN_H - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include "SlideshowModel.h" -#include "SlideshowSlide.h" -#include "SlideshowPluginUtils.h" - -class CEikonEnv; -class CDRMHelper; -class CRepositoryWatcher; -class CRepository; - -/** -* Encapsulates the Settings that are written into the central repository -* @lib ScreenSaverAnimPlugin.lib -* @since 3.1 -*/ -class CSlideshowSettings : public CBase - { -public: - CSlideshowSettings(); - -public: - // Slideshow time - TInt iSlideshowTime; - - // Lights time - TInt iLightsTime; - - // Time a slide is displayed - TInt iSlideTime; - - // Slideshow type - TInt iSlideshowType; - }; - - -/** -* 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 CSlideshowPlugin: public CScreensaverPluginInterfaceDefinition, - public MMdESessionObserver, - public MMdEQueryObserver - { - enum TPluginState - { - EPluginStateLoading = 0, - EPluginStateInitializing, - EPluginStateRunning, - EPluginStateStopping - }; - -public: - - /** - * Creator - * @since 3.1 - */ - static CSlideshowPlugin* NewL(); - - /** - * Destructor - */ - virtual ~CSlideshowPlugin(); - -private: - /** - * 2nd phase constructor - * @since 3.1 - */ - void ConstructL(); - - /** - * Default Constructor - * @since 3.1 - */ - CSlideshowPlugin(); - -public: // Functions From CScreensaverPluginInterfaceDefinition - - /** - * From MScreensaverPlugin, Method called by Screensaver - * when plugin is being loaded into use - * @param aHost Plugin host (Screensaver). - * @since 3.1 - */ - virtual TInt InitializeL(MScreensaverPluginHost *aHost); - - /** - * From MScreensaverPlugin, Method called by Screensaver - * when plugin is allowed to draw - * @since 3.1 - */ - virtual TInt Draw( CWindowGc& aGc ); - - /** - * From MScreensaverPlugin, Method called by Themes application - * to get localised name - * @since 3.1 - */ - virtual const TDesC16& Name() const; - - /** - * From MScreensaverPlugin, Method called by Screensaver - * to get the capabilities of screensaver plugin - * @since 3.1 - */ - virtual TInt Capabilities(); - - /** - * From MScreensaverPlugin, Method called by Themes application - * to configure the plugin or to pass e.g. selection notifications - * to plugin - * @since 3.1 - */ - virtual TInt PluginFunction( - TScPluginCaps /* aFunction */, - TAny* /* aParam */ ); - - /** - * From MScreensaverPlugin, Method called by Screensaver - * when there are screensaver events, such as starting and stopping - * @since 3.1 - */ - virtual TInt HandleScreensaverEventL( - TScreensaverEvent aEvent, - TAny* aData ); - -public: // from MMdESessionObserver - /** - * Called to notify the observer that opening the session has been - * completed and, if the opening succeeded, the session is ready for use. - * - * @param aSession session - * @param aError KErrNone, if opening the session succeeded; - * or one of the system-wide error codes, if opening the - * session failed - */ - void HandleSessionOpened(CMdESession& aSession, TInt aError); - - /** - * Called to notify the observer about errors, which are not a direct - * consequence of the operations initiated by the client but caused by - * some external source (e.g., other clients). The error cannot be - * recovered and all on-going operations initiated by the client have been - * aborted. Any attempts to continue using the session will cause a panic. - * The client should close the session immediately and try to open a new - * session, if it needs to continue using the metadata engine. - * - * @param aSession session - * @param aError one of the system-wide error codes - */ - void HandleSessionError(CMdESession& aSession, TInt aError); - -public: // from MMdEQueryObserver - /** - * Called to notify the observer that new results have been received - * in the query. - * - * @param aQuery Query instance that received new results. - * @param aFirstNewItemIndex Index of the first new item that was added - * to the result item array. - * @param aNewItemCount Number of items added to the result item - * array. - */ - void HandleQueryNewResults(CMdEQuery& aQuery, - TInt aFirstNewItemIndex, - TInt aNewItemCount); - - /** - * Called to notify the observer that the query has been completed, - * or that an error has occured. - * - * @param aQuery Query instance. - * @param aError KErrNone, if the query was completed - * successfully. Otherwise one of the system-wide error - * codes. - */ - void HandleQueryCompleted(CMdEQuery& aQuery, TInt aError); - -public: // New Functions - - /** - * Reads the settings from the central repository - * @since 3.1 - * @return System wide Error value - */ - TInt ReadSettings(); - -#if 0 - /** - * 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.2 - */ - TBool UpdateFileName(); -#endif - - /** - * Called when there is a central repository settings change - * @since 3.2 - */ - void HandleCRSettingsChange(TAny* aPtr); - - /** - * Called by the repository watcher when there is a central - * repository settings change - * @since 3.2 - */ - static TInt HandleRepositoryCallBack(TAny* aPtr); - - /** - * Called by the P & S subscriber when the subscribed key value changes - * @since 3.2 - */ - static TInt HandleSettingsChanged(TAny* aPtr); - -private: // New functions - - /** - * 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(); - - void StartPlugin(); - void StopPlugin(); - void DrawCentered(CWindowGc& aGc, CSlideshowSlide* aSlide); - void LoadSlidesL(); - void LoadSlideSetL(); - void LoadRandomSlidesL(); - void SetDisplayMode(); - void Lights(TInt aSecs); - void ConfigureL(TAny* aParam); - void UpdateDisplayInfo(); - void FlushDrawBuffer(); - - TInt SettingsChanged(); - - void ConnectToMDSSessionL(); - void WaitForMDS(); - void EndWaitForMDS(); - void LoadImagesToModel(const CMdEQuery& aQuery, - TInt aFirstNewItemIndex = 0, - TInt aNewItemCount = 0); - void AppendSlideToModelL(TDesC& aFileName, TBool aIsOnMC); - void OpenQueryL(); - -private: - // Pointer to the screensaver host - MScreensaverPluginHost* iHost; - - // Display info - TScreensaverDisplayInfo iDi; - - // Resource file offset - TInt iResourceOffset; - - // Handle to the central repository session - CRepository* iSlideshowRepository; - - // Environment pointer - CEikonEnv* iEikEnv; - - // Pointer to settings - CSlideshowSettings* iSettings; - - // Slideshow model - CSlideshowModel* iModel; - - // Pointer to Drm Helper - CDRMHelper* iDrmHelper; - - // Cenrep watcher for settings change - CRepositoryWatcher* iSlideshowCRWatcher; - - RProperty iSettingsChangedProperty; - CPSSubscriber* iSettingsChangedSubscriber; - - // Localised name - HBufC* iScreensaverName; - - // Waiter - CActiveSchedulerWait iWaiter; - TBool iWaitActive; - - // Draw count - TInt iDrawCount; - TBool iTimerUpdated; - - //loading state - TBool iIsLoadFinished; - - // MDS session - CMdESession* iMdESession; - }; - - -#endif // C_SLIDESHOWPLUGIN_H -// End Of file