diff -r 000000000000 -r 2e3d3ce01487 contextframework/cfwplugins/ApplicationStateSourcePlugIn/inc/ApplicationStateSourcePlugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contextframework/cfwplugins/ApplicationStateSourcePlugIn/inc/ApplicationStateSourcePlugin.h Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,168 @@ +/* +* Copyright (c) 2009 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: ?Description +* +*/ + + +#ifndef C_APPLICATIONSTATESOURCEPLUGIN_H +#define C_APPLICATIONSTATESOURCEPLUGIN_H + +// INCLUDES +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS +#include +#else +#include +#include +#endif +#include +#include +#include + +#include "cfapplicationstatesettings.h" +#include "uidorientationpair.h" + +// FORWARD DECLARATIONS +class CRepository; +class CCenRepNotifyHandler; + +// CLASS DECLARATION + +/** + * Application state source plugin. + * Application state source plugin is responsible for listening view activations + * from view server client session and mapping them to foreground application and + * view contexts. + * + * @lib - + * @since S60 4.0 + */ +NONSHARABLE_CLASS( CApplicationStateSourcePlugIn ): + public CCFContextSourcePlugIn, + public MVwsSessionWrapperObserver, + public MCenRepNotifyHandlerCallback + { +public: // Constructors and destructor + + // Two phased constructors + static CApplicationStateSourcePlugIn* NewL( + TContextSourceInitParams* aParams ); + static CApplicationStateSourcePlugIn* NewLC( + TContextSourceInitParams* aParams ); + + // Destructor + ~CApplicationStateSourcePlugIn(); + +public: // From CCFContextSourcePlugIn + + // @see CCFContextSourcePlugIn + void HandleSettingL( CCFContextSourceSettingArray* aSettingList ); + + // @see CCFContextSourcePlugIn + void DefineContextsL(); + + // @see CCFContextSourcePlugIn + void InitializeL(); + +public: // From MVwsSessionWrapperObserver + + // @see MVwsSessionWrapperObserver + void HandleViewEventL( const TVwsViewEvent& aEvent ); + +public: // From MCenRepNotifyHandlerCallback + + // @see MCenRepNotifyHandlerCallback + void HandleNotifyGeneric( TUint32 aId ); + +private: // Constructors + + // C++ constrcutor + CApplicationStateSourcePlugIn( TContextSourceInitParams* aParams ); + + // Symbian second-phase constructor + void ConstructL(); + +private: // New functions + + /** + * Converts string to hex. + * + * @since S60 v4.0 + * @param aString Hexadecimal number as string having "0x" prefix. + * @param aValue Storage for the unsigned integer. + * @return KErrNone if successful, KErrNotFound otherwise. + */ + TInt ConvertToHex( const TDesC& aString, TUint32& aValue ); + + // Initialize application settings from XML + void InitializeApplicationsFromXMLL(); + + // Initialize the fg application context + void InitializeFgApplicationL(); + + // Handles the view server event + void DoHandleViewEventL( const TVwsViewEvent& aEvent ); + + // Resolve fg app orientation + TPtrC ResolveFgAppOrientation( const TUid& aUid ); + + // Find app from cache by uid + TInt FindByUid( const TUid& aUid ) const; + +private: // Data + + // Buffers for default settings. + HBufC* iDefaultAppName; + HBufC* iDefaultViewName; + HBufC* iApplDefaultState; + TInt iDefStateSetManyTimes; + + // View server client session for foreground application notifications. + CVwsSessionWrapper* iVws; + + // Context instance for all the generated contexts. + CCFContextObject* iContext; + + // The name of the previous foreground application used by background + // application context publishing when the application was closed. + // Additionally, used to control context publishing based on change. + TPtrC iPreviousForegroundApplication; + + // The name of the previous foreground view used to control context + // publishing based on change. + TPtrC iPreviousForegroundView; + + // My settings. + CCFContextSourceSettingArray* iSettings; + + // Foreground application setting list + RApplicationStateSettingsPointerArray iApplicationSettings; + + // Previous foreground application orientation + TPtrC iPreviousOrientation; + + // KCRUidDefaultAppOrientation cenrep + CRepository* iCRAppOrientation; + + // Default application orientation + TInt iDefaultFgAppOrientation; + + // Application uid and orientation cache + RUidOrientationList iUidOrientationList; + + // KCRUidDefaultAppOrientation listener + CCenRepNotifyHandler* iCRAppOrientationListener; + }; + +#endif // C_APPLICATIONSTATESOURCEPLUGIN_H