inc/screensavershareddatai.h
branchRCL_3
changeset 26 e8d784ac1a4b
child 31 8f536f98e1f8
--- /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.