uiacceltk/hitchcock/plugins/alftranseffect/alfgfxtransadapter/inc/gfxtransenginetfx.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiacceltk/hitchcock/plugins/alftranseffect/alfgfxtransadapter/inc/gfxtransenginetfx.h Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,335 @@
+/*
+* 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: Adapter to the GfxTransEffect client. This is the entry point into
+* the Nokia specific parts of the KML transition sollution, from the
+* GfxTransEffect client.
+*
+*/
+
+
+
+#ifndef _GFXTRANSENGINESTUB_H_
+#define _GFXTRANSENGINESTUB_H_
+
+#include <e32base.h>
+
+#include <gfxtranseffect/gfxtransadapter.h>
+#include <alfdecoderserverclient.h>
+#include <alf/AlfTransEffectPlugin.h>
+#include <alftfxserverobserver.h>
+
+class CWsTransControlGraphic;
+class CWsAdapterGraphic;
+//class CTransControlDrawerInfo;
+class CSubWOControl;
+class CAlfTransitionRequest;
+
+/**
+ * gfxtranseffect engine adapter
+ *
+ * This class is loaded by the GfxTransEffect client and used by it to request
+ * transition effects.
+ *
+ * @since S60 3.2
+ */
+ NONSHARABLE_CLASS(CGfxTransAdapterTfx) : public CBase,
+ public MGfxTransAdapter,
+ public MTfxServerObserver
+ {
+ friend class MGfxTransAdapter;
+private:
+
+ /**
+ * constructor
+ *
+ * @since S60 3.2
+ *
+ * @param aClient the GfxTrans client side.
+ */
+ CGfxTransAdapterTfx(MGfxTransClient* aClient);
+
+ /**
+ * default destructor
+ *
+ * @since S60 3.2
+ *
+ */
+ ~CGfxTransAdapterTfx();
+public:
+
+ /**
+ * 2nd phase constructor
+ *
+ * @since S60 3.2
+ *
+ */
+ void ConstructL();
+
+ /**
+ * From MGfxTransEngine
+ *
+ * Notifies the adaptor of the different states its in while collecting data for a transition.
+ *
+ * @since S60 3.2
+ *
+ * @param aState the state the client is currently in
+ * @param aKey the control that is now processed
+ * @param aHandle the handle for this transition.
+ * @return KErrNone if successful, any other error code if the client should abort.
+ */
+ TInt HandleClientState(TClientState aState, const CCoeControl* aKey, TInt aHandle);
+
+ /**
+ * From MGfxTransEngine
+ *
+ * Tests if adapter is active (trying to make it active if needed).
+ * @since S60 3.2
+ *
+ * @return ETrue if active, otherwise EFalse.
+ */
+ TBool IsActive();
+
+ /**
+ * From MGfxTransEngine
+ *
+ * Called by client to start the specific transition
+ * @since S60 3.2
+ *
+ * @param aHandle the handle of the transition to start.
+ */
+ void StartTransition(TInt aHandle);
+
+ /**
+ * From MGfxTransEngine
+ *
+ * Starts the policy-request system between client and server.
+ *
+ * @since S60 3.2
+ *
+ * @param aCount. Reference where the number of available policies will be returned.
+ * @return Pointer to a TControlPolicy array or NULL.
+ */
+ TControlPolicy* GetTransitionPolicies(TInt &aCount);
+
+ /**
+ * From MGfxTransEngine
+ *
+ * Starts a fullscreen effect
+ *
+ * @since S60 3.2
+ *
+ * @param aAction the fullscreen transition action number
+ * @param aEffectArea an optional rectangle the fs effect can use
+ */
+ void BeginFullScreen(TUint aAction, const TRect &aEffectArea);
+
+ /**
+ * From MGfxTransEngine
+ *
+ * Starts a fullscreen effect, extended version
+ *
+ * @since S60 3.2
+ *
+ * @param aAction the fullscreen transition action number
+ * @param aEffectArea an optional rectangle the fs effect can use
+ * @param aType an integer identifying the format of aParams
+ * @param aParams a buffer to be interpreted by the TfxServer containing more information
+ */
+ void BeginFullScreen(TUint aAction, const TRect &aEffectArea,
+ TUint aType, const TDesC8& aParams);
+
+ /**
+ * From MGfxTransEngine
+ *
+ * Sends an EndFullscreen notification
+ *
+ * @since S60 3.2
+ *
+ */
+ void EndFullScreen();
+
+ /**
+ * From MGfxTransEngine
+ *
+ * Tells TfxServer to abort the current fullscreen effect, if any is ongoing.
+ *
+ * @since S60 3.2
+ *
+ */
+ void AbortFullScreen();
+
+ /**
+ * From MGfxTransEngine
+ *
+ * Handles updates of participants, during the transition
+ *
+ * @since S60 3.2
+ */
+ void HandleParticpantUpdate(TInt aHandle,
+ const CParticipantData* aParticipant,
+ RWsGraphicMsgBuf* aCommandBuffer,
+ const TRect& aDrawRect,
+ const TRect& aBoundingRect);
+
+ /**
+ * From MGfxTransEngine
+ *
+ * Not used.
+ *
+ * @since S60 3.2
+ */
+ void NotifyExternalState(TInt aState, const TDesC8* aArg);
+
+ /**
+ * From MTfxServerObserver
+ *
+ * Called when a policy update request has completed.
+ * @param aPolicy a new control policy
+ */
+ void PolicyUpdate(TControlPolicy* aPolicy);
+
+ /**
+ * From MTfxServerObserver
+ *
+ * Called when all policies needs to be cleared.
+ */
+ void ClearAllPolicies();
+
+ /**
+ * From MTfxServerObserver
+ *
+ * called when a transitionfinished notification request has completed
+ * @param aHandle the handle of the transition that finished.
+ */
+// void TransitionFinished(TInt aHandle );
+
+ /*
+ *
+ */
+ void GetNewPoliciesL( TUint aCount );
+
+ /*
+ *
+ */
+ void CancelPolicyUpdates();
+
+ void SendGroupCommand(TInt aGroupId, TBool aGroupFinished);
+ /**
+ * Send the policy update request to effect plugin
+ */
+ TInt RequestPolicyUpdates();
+
+private:
+
+ /**
+ * Starts the transition
+ *
+ * @since S60 3.2
+ *
+ * @param aHandle handle of the transition to start
+ * @param aTransData the transition specification collected by the client
+ */
+ void DoStartTransitionL(TInt aHandle, const CTransitionData* aTransData);
+
+ /*
+ * Generate start transition from begin capture in case of contol exit transition
+ */
+ void GenerateTransitionL( const CCoeControl* aKey, const CTransitionData* aTransData);
+
+ /*
+ * Connect to server and load plugin
+ */
+ void ConnectToServer();
+
+ /**
+ * Finds a component transition handler crp
+ *
+ * @since S60 3.2
+ *
+ * @param aHandle the transition handle to find the crp for.
+ * @return a pointer to the crp
+ */
+// CWsTransControlGraphic* FindDrawer(TInt aHandle);
+
+ /**
+ * Finds a component transition
+ *
+ * @since S60 3.2
+ *
+ * @param aHandle the transition handle to find the control for.
+ * @return a pointer to the CTransControlDrawerInfo
+ */
+// CTransControlDrawerInfo* FindControl(TInt aHandle);
+ void SubConEnd(const CCoeControl* aControl);
+ void SubConBegin(const CCoeControl* aControl);
+ void SubConAbort( const CCoeControl* aControl );
+
+
+private: // data
+ /**
+ * pointer to the client side
+ * Not owned.
+ */
+ MGfxTransClient* iClient;
+
+ /**
+ * A connection to the tfx server
+ */
+ //RTfxServer iTfxServer;
+
+ RAlfTfxClient iTfxServer;
+
+ // We need plugin implementation id to send to RAlfTfxClient,
+ // we need to do the resolution from interface uid to implementation uid ourselves,
+ // alf does not do any resolution
+ TUid iPluginImplementation;
+ TBool iConnected;
+ TBool iHasPlugin;
+
+ // The value in central repository to keep track if effects are allowed
+ TInt iEffectValue;
+
+ /**
+ * Each currently active transition has an entry in this array.
+ * It owns the pointers in it.
+ */
+// RPointerArray<CTransControlDrawerInfo> iControlInfo;
+
+ TInt iCurrHandle;
+
+// TBool iIsWO;
+
+ TThreadId iClientId;
+
+ HBufC8* iTransferBuffer;
+ HBufC8* iReturnBuffer;
+ HBufC8* iAsyncTransferBuffer;
+ HBufC8* iAsyncReturnBuffer;
+
+ CAlfTransitionRequest* iPolicyReq;
+
+// CCoeEnv* iCoeEnv;
+ ///
+// TUint iActiveAction;
+// TUid iActiveUid;
+// TInt iSubCons;
+// TInt iCurrZ;
+ const CCoeControl* iMainControl;
+// RPointerArray<CSubWOControl> iSubWOControls;
+// RPointerArray<const CCoeControl> iIgnoredWOChildControls;
+
+// TInt iSequence;
+ };
+
+#endif