--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensavershareddatai.h Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,409 @@
+/*
+* 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: Defines screensaver shared data connections.
+*
+*/
+
+
+
+#ifndef _SCREENSAVERSHAREDDATAI_H__
+#define _SCREENSAVERSHAREDDATAI_H__
+
+#include <msvapi.h> // for MMsvSessionObserver
+#include <cenrepnotifyhandler.h>
+
+#include "screensaverplugin.h"
+#include "ScreensaverUtils.h"
+#include "ScreensaverInternalPSKeys.h"
+#include "ScreensaverInternalCRKeys.h"
+#include "screensaverengine.h"
+
+enum
+ {
+ ESSForceLightsOff = 0,
+ ESSForceLightsOn
+ };
+
+// CLASS DECLARATION
+class CRepository;
+class CScreensaverRepositoryWatcher;
+class CSubscriber;
+class MProfile;
+class MProfileEngine;
+
+class CScreensaverSharedDataI : public CBase, public MMsvEntryObserver,
+ public MMsvSessionObserver
+ {
+public:
+ /**
+ * Two-phased constructor
+ */
+ static CScreensaverSharedDataI* NewL();
+
+ /**
+ * Destructor
+ */
+ ~CScreensaverSharedDataI();
+
+public:
+ /**
+ * Get the screensaver object type
+ */
+ TDisplayObjectType DisplayObjectType() const;
+
+ /*
+ * Change the display object type of screensaver
+ */
+ void SetDisplayObjectType( const TDisplayObjectType aType );
+
+ /**
+ * Gets the display text
+ */
+ void GetDisplayObjectText( TDes& aDes ) const;
+
+ /*
+ * Get the plug-in name
+ */
+ void GetPluginName( TFileName& aFileName ) const;
+
+ /*
+ * Get the flag if uses the inversive color
+ */
+ TBool IsInvertedColors() const;
+
+ /**
+ * Gets the timeout
+ */
+ TInt ScreensaverTimeout() const;
+
+ /*
+ * Is the New Contact Note is actived or not
+ */
+ TBool IsNCNActive() const;
+
+ /*
+ * Get the count of the missed calls
+ */
+ TInt NewMissedCalls() const;
+
+ /**
+ * Request screen lights to be turned on or off
+ *
+ * @param sSecs - lights on for aSecs seconds, 0 = off, max 30.
+ */
+ void SetSSForcedLightsOn( const TInt aSecs );
+
+ /**
+ * Publish Screensaver on/off status
+ *
+ * @param aOn ETrue - saver on, EFalse - off
+ */
+ void SetScreensaverStatus(const TBool aOn = ETrue);
+
+ /**
+ * Publish "Screensaver started from Idle" status
+ */
+ void SetSSStartedFromIdleStatus();
+
+ /*
+ * Get the flag that if the screensaver is allowed or not
+ */
+ TInt IsScreenSaverAllowed() const;
+
+ /*
+ * Get the Preview mode of screensaver
+ */
+ TInt ScreensaverPreviewMode() const;
+
+ /*
+ * Set the preview mode
+ */
+ void SetScreensaverPreviewMode( const TInt aMode );
+
+ /**
+ * Get preview state
+ */
+ TScreenSaverPreviewState ScreensaverPreviewState() const;
+
+ /**
+ * Report preview state
+ */
+ void SetScreensaverPreviewState( const TScreenSaverPreviewState aState );
+
+ /*
+ * Get keyguard status
+ *
+ * @return ETrue key guard is active.
+ * EFalse key guard is inactive.
+ */
+ TBool IsKeyguardOn() const;
+
+ /**
+ * Query power save mode usage
+ *
+ * @return ETrue, if power save mode should be used
+ */
+ TBool IsUsePowerSaveMode() const;
+
+ /**
+ * Query system startup completion status
+ *
+ * @return ETrue, if system startup is complete
+ */
+ TBool IsSystemStartupComplete();
+
+ /**
+ * Gets the default screensaver type
+ */
+ TDisplayObjectType DefaultScreensaverType() const;
+
+ /**
+ * Returns number of unread messages in inbox.
+ *
+ * @return Number of unread messages in inbox.
+ */
+ TInt UnreadMessagesNumber();
+
+ /**
+ * Return the name of currently selected profile
+ *
+ * @return Profile name descriptor.
+ */
+ const TDesC& ProfileName();
+
+ /**
+ * Query active profile.
+ *
+ * @return Id of active profile, or system error code.
+ */
+ TInt ActiveProfile();
+
+ /**
+ * Query new email status
+ *
+ * @return ETrue if there is new email
+ */
+ TBool IsHaveNewEmail() const;
+
+ /**
+ * Query new voice mail status
+ *
+ * @return ETrue, if there is new voice mail
+ */
+ TBool IsHaveNewVoicemail() const;
+
+ /**
+ * Query new instant message status
+ *
+ * @return ETrue, if there are instant messages pending
+ */
+ TBool IsHaveNewInstantMessages() const;
+
+ /**
+ * Query silent mode status
+ *
+ * @return ETrue, if silent mode is on
+ */
+ TBool IsSilentMode();
+
+ /**
+ * Query vibra mode status
+ *
+ * @return ETrue, if vibra mode is on
+ */
+ TBool IsVibraMode();
+
+ /**
+ * Query call state
+ *
+ * @return ETrue if a call is ongoing
+ */
+ TBool IsOngoingCall();
+
+public:
+ /**
+ * From MMsvSessionObserver. Not used.
+ */
+ void HandleSessionEventL(TMsvSessionEvent /*aEvent*/, TAny* /*aArg1*/,
+ TAny* /*aArg2*/, TAny* /*aArg3*/);
+
+ /**
+ * From MMsvEntryObserver. Callback function. Handles global In-box events.
+ * @param aEvent An entry event.
+ */
+ void HandleEntryEventL(TMsvEntryEvent aEvent, TAny* aArg1, TAny* aArg2,
+ TAny* aArg3);
+
+ /*
+ * Returns the pointer of the screensaver repository
+ */
+ CRepository* ScreensaverRepository() const;
+
+public:
+ /*
+ * Get the flag of display changed
+ */
+ TBool GetDisplayObjChanged() const;
+ /*
+ * Set the flag of display changed
+ */
+ void SetDisplayObjChanged( TBool aChanged );
+
+private:
+
+ /**
+ * C++ default constructor
+ */
+ CScreensaverSharedDataI();
+
+ /**
+ * Two-phased constructor
+ */
+ void ConstructL();
+
+ /**
+ * Connect to the screensaver central repository
+ */
+ void ConnectToSSCRL();
+
+ /**
+ * Connect to the Psln Setting central repository
+ */
+ void ConnectToPslnSettingCRL();
+ void ConnectToCommonTsyCRL();
+ void ConnectToInboxL();
+
+ /**
+ * Connects to Profile engine. Returns ETrue if successfully connected
+ * iProfileEngine will then point to a valid MProfileEngine
+ */
+ TBool ConnectToProfileEngine();
+
+ /**
+ * Connects to active profile. Returns ETrue if successfully connected
+ * iActiveProfile will then point to a valid MProfile
+ */
+ TBool ConnectToActiveProfile();
+
+ /*
+ * Define the screensaver properties
+ */
+ void DefineScreensaverProperties( TUint32 aKey, const TSecurityPolicy& aWritePolicy );
+
+private:
+ // Shared data key state handlers.
+
+ /**
+ * Callback fuction. Called when the timeout changed
+ */
+ static TInt HandleTimeoutChanged(TAny* aPtr);
+
+ /**
+ * Resets the inactivity timeout
+ */
+ void ResetInactivityTimeout();
+
+ /**
+ * Callback fuction. Called when the display object changed
+ */
+ static TInt HandleDisplayObjChanged(TAny* aPtr);
+
+ /*
+ * Get the default type
+ */
+ void GetDefaultType();
+
+ /*
+ * Get the default type string from the CR
+ */
+ TInt GetDefaultTypeString( TDes& DefaultScreenSaver );
+
+ /*
+ * Get the count of the voice mail
+ */
+ TInt VoiceMailCount( const TUint32 aKey ) const;
+
+ /**
+ * Invalidate cached active profile
+ */
+ void InvalidateActiveProfile();
+
+ /**
+ * Returns the AppUi
+ */
+ CScreensaverAppUi *AppUi() const;
+
+private:
+
+ /*
+ * The type of the display object
+ */
+ TDisplayObjectType iDefaultType;
+ /**
+ * not owned!
+ */
+ CScreensaverAppUi* iAppUi;
+
+ /**
+ * Screensaver specific values.
+ */
+ CRepository* iScreensaverRepository;
+ CScreensaverRepositoryWatcher* iScreensaverRepositoryWatcher;
+
+ /**
+ * General Settings.
+ */
+ CRepository* iSettingsRepository;
+ CScreensaverRepositoryWatcher* iSettingsRepositoryWatcher;
+
+ /**
+ * Common tsy repository (voice message waiting)
+ */
+ CRepository* iCTsyRepository;
+
+
+ /**
+ * Access to the profile engine
+ */
+ MProfileEngine* iProfileEngine;
+
+ /**
+ * Need to store also the profile, so that it's name
+ * can be used at any time
+ */
+ MProfile* iActiveProfile;
+
+ /**
+ * The Msv session pointer.
+ */
+ CMsvSession* iMsvSession;
+
+ /**
+ * In-box folder entry. Note that the entry is not owned by this class.
+ */
+ CMsvEntry* iInboxFolder;
+
+ /**
+ * System startup completion flag
+ */
+ TBool iStartupComplete;
+
+ /**
+ * Record display changed flag
+ */
+ TBool iDisplayChange;
+ };
+
+#endif // C_SCREENSAVERSHAREDDATAI_H
+// End of file.