diff -r 000000000000 -r 15bf7259bb7c uiacceltk/hitchcock/ServerCore/Inc/alfsrvtranseffect.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiacceltk/hitchcock/ServerCore/Inc/alfsrvtranseffect.h Tue Feb 02 07:56:43 2010 +0200 @@ -0,0 +1,180 @@ +/* +* 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: Transition effect framework +* +*/ + + + + +#ifndef C_ALFTRANSEFFECT_H +#define C_ALFTRANSEFFECT_H + +#include +#include + +#include "alf/AlfTransEffectPlugin.h" + +class CAlfCenRep; + +/** + * This class implements an effect framework that can be used to integrate + * effects to Alf server. The class will call ECom plugins for actual effect + * implementations. + * + */ +NONSHARABLE_CLASS( CAlfSrvTransEffect ) : public CBase + { +public: + + /** + * Destructor + */ + ~CAlfSrvTransEffect(); + + /** + * Constructor + */ + static CAlfSrvTransEffect* NewL(); + + /** + * Returns the state of the effect system. + * + * @return Effect system boolean state. + */ + TBool CAlfSrvTransEffect::IsEnabled(); + + /** + * Starts a new phase in the effect. + * + * @param aPhaseId Phase that is started. + * @param aContext Effect context. + * @param aEffectEnv Effect environment for this session. + * @param aUidValue UID which effect is related to (e.g. current application UID). + * @param aKey Key which effect is related to (e.g. current application window group). + * @param aUidValue2 UID which effect is related to (e.g. previous application UID). + * @param aKey2 Key which effect is related to (e.g. previous application window group). + * @param aParams Other parameters. + * @return System error code. + */ + TInt StartPhase( TInt aPhaseId, + TInt aContext, + CAlfSrvEffectEnv& aEffectEnv, + TInt aUidValue = 0, + TInt aKey = 0, + TInt aUidValue2 = 0, + TInt aKey2 = 0, + const TDesC8* aParams = NULL); + + /** + * Returns an available control group based on its index. Zero as a parameter means "all". + * + * Not yet implemnted + * + * @param aContext Effect context that will be aborted. + * @param aUidValue UID which effect is related to (e.g. current application UID). + * @param aKey Key which effect is related to (e.g. current application window group). + * @return System error code. + */ + TInt Abort( TInt aContext = 0, + TInt aUidValue = 0, + TInt aKey = 0 ); + + /** + * Not yet implemented + */ + TInt SetProperty( TInt aProperty, TInt aValue, TInt aUidValue = 0, TInt aKey = 0 ); + + /** + * Not yet implemented + */ + TInt GetProperty( TInt aProperty, TInt& aValue, TInt aUidValue = 0, TInt aKey = 0 ); + + /** + * Not yet implemented + */ + TInt AddEventObserver( + MAlfTransEffectObserver* aObserver, + TInt aEvents, + const TDesC8* aParams = NULL ); + + /** + * Not yet implemented + */ + TInt RemoveEventObserver( MAlfTransEffectObserver* aObserver, TInt aEvents ); + + /** + * Not yet implemented + */ + TInt GetEventState( TInt aEvent, TInt* aState, TDes8* aParams = NULL ); + +private: + + /** + * Not yet implemented + */ + struct TEffectMapItem + { + TEffectMapItem( TInt aEffectId, MAlfTransEffectPlugin* aPluginPtr) + :iEffectId( aEffectId ), iPluginPtr( aPluginPtr ) + {}; + TInt iEffectId; + MAlfTransEffectPlugin* iPluginPtr; + }; + +private: + + /** + * Constructor + */ + CAlfSrvTransEffect(); + + /** + * Second phase constructor. + */ + void ConstructL(); + + /** + * Fills the effect plugins and effect map arrays. + */ + void PopulateEffectArrayL(); + + /** + * Find the correct effect implementations for the context. + */ + TInt FindPlugin( TInt aContext, MAlfTransEffectPlugin** aPlugIn ); + + + private: // Data + + // All effect plugins + RPointerArray iEffectPlugins; + + // Map for linking contexts to the effect implementations. + RArray iEffectMap; + + // Listener for Avkon effect state + CAlfCenRep* iAvkonTfxStateListener; + + // Whether the effect system is enabled + TBool iIsEnabled; + + // Current context + TInt iCurrContext; + + // Current phase + TInt iCurrPhase; + }; + +#endif // C_ALFTRANSEFFECT_H