omxil/omxilcomponentcommon/src/common/omxilfsm.h
branchOpenMAX-IL_SHAI
changeset 16 eedf2dcd43c6
parent 0 40261b775718
--- a/omxil/omxilcomponentcommon/src/common/omxilfsm.h	Mon May 03 13:56:28 2010 +0300
+++ b/omxil/omxilcomponentcommon/src/common/omxilfsm.h	Fri May 07 16:25:23 2010 +0100
@@ -1,221 +1,221 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILFSM_H
-#define OMXILFSM_H
-
-
-#include <e32base.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-#include <e32msgqueue.h>
-
-#include "omxilcommand.h"
-
-// forward declarations
-class COmxILPortManager;
-class COmxILConfigManager;
-class MOmxILCallbackManagerIf;
-class COmxILComponent;
-class COmxILProcessingFunction;
-
-/**
-   FSM Panic category
-*/
-_LIT(KOmxILFsmPanicCategory, "OmxILFsm");
-
-/**
-   FSM class that represents the main FSM context object of the State
-   pattern. It delegates most events for processing to the current state
-   object.
- */
-NONSHARABLE_CLASS(COmxILFsm) : public CBase
-	{
-
-public:
-
-	static const TInt KMaxMsgQueueEntries = 10;
-
-	enum TStateIndex
-		{
-		EStateInvalid		   = OMX_StateInvalid,
-		EStateLoaded		   = OMX_StateLoaded,
-		EStateIdle			   = OMX_StateIdle,
-		EStateExecuting		   = OMX_StateExecuting,
-		EStatePause			   = OMX_StatePause,
-		EStateWaitForResources = OMX_StateWaitForResources,
-		ESubStateLoadedToIdle,
-		ESubStateIdleToLoaded,
-		ESubStateExecutingToIdle,
-		ESubStatePauseToIdle,
-		EStateMax
-		};
-
-
-public:
-
-	IMPORT_C static COmxILFsm* NewL(COmxILComponent& aComponent,
-									COmxILProcessingFunction& aProcFunction,
-									COmxILPortManager& aPortManager,
-									COmxILConfigManager& aConfigManager,
-									MOmxILCallbackManagerIf& aCallbacks);
-
-	~COmxILFsm();
-
-	OMX_ERRORTYPE InitFsm();
-
-	COmxILComponent* GetComponent() const;
-
-	//
-	// OpenMAX IL API calls
-	//
-
-	OMX_ERRORTYPE GetComponentVersion(OMX_STRING aComponentName,
-									  OMX_VERSIONTYPE* pComponentVersion,
-									  OMX_VERSIONTYPE* pSpecVersion,
-									  OMX_UUIDTYPE* pComponentUUID) const;
-
-	OMX_ERRORTYPE SendCommand(OMX_COMMANDTYPE Cmd,
-							  TUint32 nParam1,
-							  TAny* apCmdData);
-
-	OMX_ERRORTYPE GetParameter(OMX_INDEXTYPE aParamIndex,
-							   TAny* apComponentParameterStructure) const;
-
-	OMX_ERRORTYPE SetParameter(OMX_INDEXTYPE aParamIndex,
-							   const TAny* apComponentParameterStructure);
-
-	OMX_ERRORTYPE GetConfig(OMX_INDEXTYPE aConfigIndex,
-							TAny* apComponentConfigStructure) const;
-
-	OMX_ERRORTYPE SetConfig(OMX_INDEXTYPE aConfigIndex,
-							const TAny* apComponentConfigStructure);
-
-	OMX_ERRORTYPE GetExtensionIndex(OMX_STRING aParameterName,
-									OMX_INDEXTYPE* apIndexType) const;
-
-	OMX_ERRORTYPE GetState(OMX_STATETYPE* apState) const;
-
-	OMX_ERRORTYPE ComponentTunnelRequest(OMX_U32 aPort,
-										 OMX_HANDLETYPE aTunneledComp,
-										 OMX_U32 aTunneledPort,
-										 OMX_TUNNELSETUPTYPE* apTunnelSetup);
-
-	OMX_ERRORTYPE UseBuffer(OMX_BUFFERHEADERTYPE** appBufferHdr,
-							OMX_U32 aPortIndex,
-							OMX_PTR apAppPrivate,
-							OMX_U32 aSizeBytes,
-							OMX_U8* apBuffer);
-
-	OMX_ERRORTYPE AllocateBuffer(OMX_BUFFERHEADERTYPE** appBufferHdr,
-								 OMX_U32 aPortIndex,
-								 OMX_PTR apAppPrivate,
-								 OMX_U32 aSizeBytes);
-
-	OMX_ERRORTYPE FreeBuffer(OMX_U32 aPortIndex,
-							 OMX_BUFFERHEADERTYPE* apBuffer);
-
-	OMX_ERRORTYPE EmptyThisBuffer(OMX_BUFFERHEADERTYPE* apBuffer);
-
-	OMX_ERRORTYPE FillThisBuffer(OMX_BUFFERHEADERTYPE* apBuffer);
-
-	OMX_ERRORTYPE SetCallbacks(const OMX_CALLBACKTYPE* apCallbacks,
-							   const OMX_PTR apAppData);
-
-    OMX_ERRORTYPE UseEGLImage(OMX_BUFFERHEADERTYPE** appBufferHdr,
-							  OMX_U32 aPortIndex,
-							  OMX_PTR aAppPrivate,
-							  void* eglImage);
-
-    OMX_ERRORTYPE ComponentRoleEnum(OMX_U8* aRole,
-									OMX_U32 aIndex) const;
-
-private:
-
-	// Declaration of nested private state classes
-	class COmxILState;
-	class COmxILStateInvalid;
-	class COmxILStateLoaded;
-	class COmxILStateLoadedToIdle;
-	class COmxILStateWaitForResources;
-	class COmxILStateIdle;
-	class COmxILStateIdleToLoaded;
-	class COmxILStateExecuting;
-	class COmxILStateExecutingToIdle;
-	class COmxILStatePause;
-	class COmxILStatePauseToIdle;
-	class MOmxILPauseOrExecutingToIdle;
-
-	// Note that the following friends don't break COmxILFsm's interface as all
-	// friends below are COmxILFsm's private nested classes and therefore they
-	// are logically part of COmxILFsm implementation
-	friend class COmxILState;
-	friend class COmxILStateInvalid;
-	friend class COmxILStateLoaded;
-	friend class COmxILStateLoadedToIdle;
-	friend class COmxILStateWaitForResources;
-	friend class COmxILStateIdle;
-	friend class COmxILStateIdleToLoaded;
-	friend class COmxILStateExecuting;
-	friend class COmxILStateExecutingToIdle;
-	friend class COmxILStatePause;
-	friend class COmxILStatePauseToIdle;
-	friend class MOmxILPauseOrExecutingToIdle;
-
-private:
-
-	COmxILFsm(COmxILComponent& aComponent,
-			  COmxILProcessingFunction& aProcFunction,
-			  COmxILPortManager& aPortManager,
-			  COmxILConfigManager& aConfigManager,
-			  MOmxILCallbackManagerIf& aCallbacks);
-
-	void ConstructL();
-
-	OMX_ERRORTYPE PopulateBuffer(OMX_BUFFERHEADERTYPE** appBufferHdr,
-								 OMX_U32 aPortIndex,
-								 OMX_PTR apAppPrivate,
-								 OMX_U32 aSizeBytes,
-								 OMX_U8* apBuffer);
-
-	OMX_ERRORTYPE FsmTransition(TStateIndex aNewState);
-
-	OMX_ERRORTYPE FsmTransition(TUint32 aNewState);
-
-	OMX_ERRORTYPE SendOmxErrorEventIfNeeded(OMX_ERRORTYPE aError) const;
-
-	OMX_ERRORTYPE SendOmxErrorEventIfNeeded(OMX_ERRORTYPE aError);
-
-private:
-
-	COmxILComponent& iComponent;
-	COmxILProcessingFunction& iProcFunction;
-	COmxILPortManager& iPortManager;
-	COmxILConfigManager& iConfigManager;
-	MOmxILCallbackManagerIf& iCallbacks;
-
-	RPointerArray<COmxILState> iStates;
-	TStateIndex iCurrentStateIndex;
-	COmxILState* ipCurrentState;
-
-	};
-
-
-#endif // OMXILFSM_H
+// Copyright (c) 2008-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:
+//
+
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef OMXILFSM_H
+#define OMXILFSM_H
+
+
+#include <e32base.h>
+#include <openmax/il/khronos/v1_x/OMX_Core.h>
+#include <e32msgqueue.h>
+
+#include "omxilcommand.h"
+
+// forward declarations
+class MOmxILPortManagerIf;
+class COmxILConfigManager;
+class MOmxILCallbackManagerIf;
+class COmxILComponent;
+class COmxILProcessingFunction;
+
+/**
+   FSM Panic category
+*/
+_LIT(KOmxILFsmPanicCategory, "OmxILFsm");
+
+/**
+   FSM class that represents the main FSM context object of the State
+   pattern. It delegates most events for processing to the current state
+   object.
+ */
+NONSHARABLE_CLASS(COmxILFsm) : public CBase
+	{
+
+public:
+
+	static const TInt KMaxMsgQueueEntries = 10;
+
+	enum TStateIndex
+		{
+		EStateInvalid		   = OMX_StateInvalid,
+		EStateLoaded		   = OMX_StateLoaded,
+		EStateIdle			   = OMX_StateIdle,
+		EStateExecuting		   = OMX_StateExecuting,
+		EStatePause			   = OMX_StatePause,
+		EStateWaitForResources = OMX_StateWaitForResources,
+		ESubStateLoadedToIdle,
+		ESubStateIdleToLoaded,
+		ESubStateExecutingToIdle,
+		ESubStatePauseToIdle,
+		EStateMax
+		};
+
+
+public:
+
+	IMPORT_C static COmxILFsm* NewL(COmxILComponent& aComponent,
+									COmxILProcessingFunction& aProcFunction,
+									MOmxILPortManagerIf& aPortManager,
+									COmxILConfigManager& aConfigManager,
+									MOmxILCallbackManagerIf& aCallbacks);
+
+	~COmxILFsm();
+
+	OMX_ERRORTYPE InitFsm();
+
+	COmxILComponent* GetComponent() const;
+
+	//
+	// OpenMAX IL API calls
+	//
+
+	OMX_ERRORTYPE GetComponentVersion(OMX_STRING aComponentName,
+									  OMX_VERSIONTYPE* pComponentVersion,
+									  OMX_VERSIONTYPE* pSpecVersion,
+									  OMX_UUIDTYPE* pComponentUUID) const;
+
+	OMX_ERRORTYPE SendCommand(OMX_COMMANDTYPE Cmd,
+							  TUint32 nParam1,
+							  TAny* apCmdData);
+
+	OMX_ERRORTYPE GetParameter(OMX_INDEXTYPE aParamIndex,
+							   TAny* apComponentParameterStructure) const;
+
+	OMX_ERRORTYPE SetParameter(OMX_INDEXTYPE aParamIndex,
+							   const TAny* apComponentParameterStructure);
+
+	OMX_ERRORTYPE GetConfig(OMX_INDEXTYPE aConfigIndex,
+							TAny* apComponentConfigStructure) const;
+
+	OMX_ERRORTYPE SetConfig(OMX_INDEXTYPE aConfigIndex,
+							const TAny* apComponentConfigStructure);
+
+	OMX_ERRORTYPE GetExtensionIndex(OMX_STRING aParameterName,
+									OMX_INDEXTYPE* apIndexType) const;
+
+	OMX_ERRORTYPE GetState(OMX_STATETYPE* apState) const;
+
+	OMX_ERRORTYPE ComponentTunnelRequest(OMX_U32 aPort,
+										 OMX_HANDLETYPE aTunneledComp,
+										 OMX_U32 aTunneledPort,
+										 OMX_TUNNELSETUPTYPE* apTunnelSetup);
+
+	OMX_ERRORTYPE UseBuffer(OMX_BUFFERHEADERTYPE** appBufferHdr,
+							OMX_U32 aPortIndex,
+							OMX_PTR apAppPrivate,
+							OMX_U32 aSizeBytes,
+							OMX_U8* apBuffer);
+
+	OMX_ERRORTYPE AllocateBuffer(OMX_BUFFERHEADERTYPE** appBufferHdr,
+								 OMX_U32 aPortIndex,
+								 OMX_PTR apAppPrivate,
+								 OMX_U32 aSizeBytes);
+
+	OMX_ERRORTYPE FreeBuffer(OMX_U32 aPortIndex,
+							 OMX_BUFFERHEADERTYPE* apBuffer);
+
+	OMX_ERRORTYPE EmptyThisBuffer(OMX_BUFFERHEADERTYPE* apBuffer);
+
+	OMX_ERRORTYPE FillThisBuffer(OMX_BUFFERHEADERTYPE* apBuffer);
+
+	OMX_ERRORTYPE SetCallbacks(const OMX_CALLBACKTYPE* apCallbacks,
+							   const OMX_PTR apAppData);
+
+    OMX_ERRORTYPE UseEGLImage(OMX_BUFFERHEADERTYPE** appBufferHdr,
+							  OMX_U32 aPortIndex,
+							  OMX_PTR aAppPrivate,
+							  void* eglImage);
+
+    OMX_ERRORTYPE ComponentRoleEnum(OMX_U8* aRole,
+									OMX_U32 aIndex) const;
+
+private:
+
+	// Declaration of nested private state classes
+	class COmxILState;
+	class COmxILStateInvalid;
+	class COmxILStateLoaded;
+	class COmxILStateLoadedToIdle;
+	class COmxILStateWaitForResources;
+	class COmxILStateIdle;
+	class COmxILStateIdleToLoaded;
+	class COmxILStateExecuting;
+	class COmxILStateExecutingToIdle;
+	class COmxILStatePause;
+	class COmxILStatePauseToIdle;
+	class MOmxILPauseOrExecutingToIdle;
+
+	// Note that the following friends don't break COmxILFsm's interface as all
+	// friends below are COmxILFsm's private nested classes and therefore they
+	// are logically part of COmxILFsm implementation
+	friend class COmxILState;
+	friend class COmxILStateInvalid;
+	friend class COmxILStateLoaded;
+	friend class COmxILStateLoadedToIdle;
+	friend class COmxILStateWaitForResources;
+	friend class COmxILStateIdle;
+	friend class COmxILStateIdleToLoaded;
+	friend class COmxILStateExecuting;
+	friend class COmxILStateExecutingToIdle;
+	friend class COmxILStatePause;
+	friend class COmxILStatePauseToIdle;
+	friend class MOmxILPauseOrExecutingToIdle;
+
+private:
+
+	COmxILFsm(COmxILComponent& aComponent,
+			  COmxILProcessingFunction& aProcFunction,
+			  MOmxILPortManagerIf& aPortManager,
+			  COmxILConfigManager& aConfigManager,
+			  MOmxILCallbackManagerIf& aCallbacks);
+
+	void ConstructL();
+
+	OMX_ERRORTYPE PopulateBuffer(OMX_BUFFERHEADERTYPE** appBufferHdr,
+								 OMX_U32 aPortIndex,
+								 OMX_PTR apAppPrivate,
+								 OMX_U32 aSizeBytes,
+								 OMX_U8* apBuffer);
+
+	OMX_ERRORTYPE FsmTransition(TStateIndex aNewState);
+
+	OMX_ERRORTYPE FsmTransition(TUint32 aNewState);
+
+	OMX_ERRORTYPE SendOmxErrorEventIfNeeded(OMX_ERRORTYPE aError) const;
+
+	OMX_ERRORTYPE SendOmxErrorEventIfNeeded(OMX_ERRORTYPE aError);
+
+private:
+
+	COmxILComponent& iComponent;
+	COmxILProcessingFunction& iProcFunction;
+	MOmxILPortManagerIf& iPortManager;
+	COmxILConfigManager& iConfigManager;
+	MOmxILCallbackManagerIf& iCallbacks;
+
+	RPointerArray<COmxILState> iStates;
+	TStateIndex iCurrentStateIndex;
+	COmxILState* ipCurrentState;
+
+	};
+
+
+#endif // OMXILFSM_H