diff -r 000000000000 -r 0e4a32b9112d omxil_generic/omxilcomplib/src/omxilcomponentimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omxil_generic/omxilcomplib/src/omxilcomponentimpl.h Wed Aug 25 12:40:50 2010 +0300 @@ -0,0 +1,183 @@ +// 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 OMXILCOMPONENTIMPL_H +#define OMXILCOMPONENTIMPL_H + +#include +#include + +// forward declarations +class COmxILFsm; +class COmxILConfigManager; +class MOmxILCallbackManagerIf; +class MOmxILPortManagerIf; +class MOmxILCallbackNotificationIf; +class COmxILProcessingFunction; +class COmxILPort; + +class COmxILComponentImpl : public CBase + { +public: + static COmxILComponentImpl* NewL(COmxILComponent* aComponent, OMX_HANDLETYPE aHandle); + virtual ~COmxILComponentImpl(); + + void InitComponentL(); + void ConstructL(OMX_HANDLETYPE aComponent); + MOmxILCallbackNotificationIf* CreateCallbackManagerL(COmxILComponent::TCallbackManagerType aCallbackManagerType); + void CreatePortManagerL(COmxILComponent::TPortManagerType aType, + const OMX_VERSIONTYPE& aOmxVersion, + OMX_U32 aNumberOfAudioPorts, + OMX_U32 aStartAudioPortNumber, + OMX_U32 aNumberOfImagePorts, + OMX_U32 aStartImagePortNumber, + OMX_U32 aNumberOfVideoPorts, + OMX_U32 aStartVideoPortNumber, + OMX_U32 aNumberOfOtherPorts, + OMX_U32 aStartOtherPortNumber, + OMX_BOOL aImmediateReturnTimeBuffer); + TInt AddPort(const COmxILPort* aPort, OMX_DIRTYPE aDirection); + void RegisterProcessingFunction(const COmxILProcessingFunction* aProcessingFunction); + void RegisterConfigurationManager(const COmxILConfigManager* aConfigManager); + //Getters + OMX_COMPONENTTYPE* GetHandle() const; + OMX_PTR GetAppData() const; + OMX_CALLBACKTYPE* GetCallbacks() const; + COmxILConfigManager* GetConfigManager() const; + COmxILProcessingFunction* GetProcessingFunction() const; + MOmxILCallbackNotificationIf* GetCallbackNotificationIf() const; + //Setters + void SetPortManagerForConfigManager(); + +private: + COmxILComponentImpl(COmxILComponent* aComponent, OMX_HANDLETYPE aHandle); + void ConstructL(); + static OMX_ERRORTYPE GetComponentVersion( + OMX_HANDLETYPE aComponent, + OMX_STRING aComponentName, + OMX_VERSIONTYPE* apComponentVersion, + OMX_VERSIONTYPE* apSpecVersion, + OMX_UUIDTYPE* apComponentUUID); + + static OMX_ERRORTYPE SendCommand( + OMX_HANDLETYPE aComponent, + OMX_COMMANDTYPE aCmd, + OMX_U32 aParam1, + OMX_PTR aCmdData); + + static OMX_ERRORTYPE GetParameter( + OMX_HANDLETYPE aComponent, + OMX_INDEXTYPE aParamIndex, + OMX_PTR aComponentParameterStructure); + + static OMX_ERRORTYPE SetParameter( + OMX_HANDLETYPE aComponent, + OMX_INDEXTYPE aIndex, + OMX_PTR aComponentParameterStructure); + + static OMX_ERRORTYPE GetConfig( + OMX_HANDLETYPE aComponent, + OMX_INDEXTYPE aIndex, + OMX_PTR aComponentConfigStructure); + + static OMX_ERRORTYPE SetConfig( + OMX_HANDLETYPE aComponent, + OMX_INDEXTYPE aIndex, + OMX_PTR aComponentConfigStructure); + + static OMX_ERRORTYPE GetExtensionIndex( + OMX_HANDLETYPE aComponent, + OMX_STRING aParameterName, + OMX_INDEXTYPE* aIndexType); + + static OMX_ERRORTYPE GetState( + OMX_HANDLETYPE aComponent, + OMX_STATETYPE* aState); + + static OMX_ERRORTYPE ComponentTunnelRequest( + OMX_HANDLETYPE aComp, + OMX_U32 aPort, + OMX_HANDLETYPE aTunneledComp, + OMX_U32 aTunneledPort, + OMX_TUNNELSETUPTYPE* aTunnelSetup); + + static OMX_ERRORTYPE UseBuffer( + OMX_HANDLETYPE aComponent, + OMX_BUFFERHEADERTYPE** appBufferHdr, + OMX_U32 aPortIndex, + OMX_PTR apAppPrivate, + OMX_U32 aSizeBytes, + OMX_U8* aBuffer); + + static OMX_ERRORTYPE AllocateBuffer( + OMX_HANDLETYPE aComponent, + OMX_BUFFERHEADERTYPE** apBuffer, + OMX_U32 aPortIndex, + OMX_PTR aAppData, + OMX_U32 aSizeBytes); + + static OMX_ERRORTYPE FreeBuffer( + OMX_HANDLETYPE aComponent, + OMX_U32 aPortIndex, + OMX_BUFFERHEADERTYPE* aBuffer); + + static OMX_ERRORTYPE EmptyThisBuffer( + OMX_HANDLETYPE aComponent, + OMX_BUFFERHEADERTYPE* aBuffer); + + static OMX_ERRORTYPE FillThisBuffer( + OMX_HANDLETYPE aComponent, + OMX_BUFFERHEADERTYPE* aBuffer); + + static OMX_ERRORTYPE SetCallbacks( + OMX_HANDLETYPE aComponent, + OMX_CALLBACKTYPE* aCallbacks, + OMX_PTR aAppData); + + static OMX_ERRORTYPE ComponentDeInit( + OMX_HANDLETYPE aComponent); + + static OMX_ERRORTYPE UseEGLImage( + OMX_HANDLETYPE aComponent, + OMX_BUFFERHEADERTYPE** appBufferHdr, + OMX_U32 aPortIndex, + OMX_PTR aAppPrivate, + void* eglImage); + + static OMX_ERRORTYPE ComponentRoleEnum( + OMX_HANDLETYPE aComponent, + OMX_U8* aRole, + OMX_U32 aIndex); + +private: + COmxILComponent* ipComponent; + RBuf8 iComponentName; + OMX_COMPONENTTYPE* ipHandle; + OMX_PTR ipAppData; + OMX_CALLBACKTYPE* ipCallbacks; + COmxILFsm* ipFsm; + COmxILConfigManager* ipConfigManager; + MOmxILCallbackManagerIf* ipCallbackManager; + MOmxILPortManagerIf* ipPortManager; + COmxILProcessingFunction* ipProcessingFunction; + }; + +#endif // OMXILCOMPONENTIMPL_H