omxil/omxilcomponentcommon/src/common/omxilfsm.h
changeset 56 b6488ac24ddc
parent 47 481b3bce574a
child 57 1cbb0d5bf7f2
--- a/omxil/omxilcomponentcommon/src/common/omxilfsm.h	Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,221 +0,0 @@
-// 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