--- /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 <uiacceltk/HuiEnv.h>
+#include <uiacceltk/huigifanimationtexture.h>
+
+#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<MAlfTransEffectPlugin> iEffectPlugins;
+
+ // Map for linking contexts to the effect implementations.
+ RArray<CAlfSrvTransEffect::TEffectMapItem> 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