mmdevicefw/mdfunittest/codecapi/omx/pcmcodec/src/OmxImpl.cpp
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmdevicefw/mdfunittest/codecapi/omx/pcmcodec/src/OmxImpl.cpp	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,275 @@
+// Copyright (c) 2005-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:
+//
+
+#include <stdio.h>
+#include "OmxImpl.h"
+
+	
+OMX_ERRORTYPE OMXComponentGetComponentVersion(
+		OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_OUT OMX_STRING pComponentName,
+        OMX_OUT OMX_VERSIONTYPE* pComponentVersion,
+        OMX_OUT OMX_VERSIONTYPE* pSpecVersion,
+        OMX_OUT OMX_UUIDTYPE* pComponentUUID);
+OMX_ERRORTYPE OMXComponentSendCommand(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_COMMANDTYPE Cmd,
+        OMX_IN  OMX_U32 nParam1,
+        OMX_IN  OMX_PTR pCmdData);
+OMX_ERRORTYPE OMXComponentGetParameter(
+        OMX_IN  OMX_HANDLETYPE hComponent, 
+        OMX_IN  OMX_INDEXTYPE nParamIndex,  
+        OMX_INOUT OMX_PTR ComponentParameterStructure);
+OMX_ERRORTYPE OMXComponentSetParameter(
+        OMX_IN  OMX_HANDLETYPE hComponent, 
+        OMX_IN  OMX_INDEXTYPE nIndex,
+        OMX_IN  OMX_PTR ComponentParameterStructure);
+OMX_ERRORTYPE OMXComponentGetConfig(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_INDEXTYPE nIndex, 
+        OMX_INOUT OMX_PTR value);
+OMX_ERRORTYPE OMXComponentSetConfig(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_INDEXTYPE nIndex, 
+        OMX_IN  OMX_PTR value);
+OMX_ERRORTYPE OMXComponentGetExtensionIndex(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_STRING ParameterName,
+        OMX_OUT OMX_INDEXTYPE* pIndexType);
+OMX_ERRORTYPE OMXComponentGetState(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_OUT OMX_STATETYPE* pState);
+OMX_ERRORTYPE OMXComponentComponentTunnelRequest(
+        OMX_IN  OMX_HANDLETYPE hInput,
+        OMX_IN  OMX_U32 nPortInput,
+        OMX_IN  OMX_HANDLETYPE hOutput,
+        OMX_IN  OMX_U32 nPortOutput,
+        OMX_IN  OMX_TUNNELSETUPTYPE* pTunnelSetup);
+OMX_ERRORTYPE OMXComponentUseBuffer(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr,
+        OMX_IN  OMX_U32 nPortIndex,
+        OMX_IN	OMX_PTR pAppPrivate,
+        OMX_IN	OMX_U32 nSizeBytes,
+        OMX_IN	OMX_U8* pBuffer);
+OMX_ERRORTYPE OMXComponentAllocateBuffer(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** pBuffer,
+        OMX_IN  OMX_U32 nPortIndex,
+        OMX_IN	OMX_PTR pAppData,
+        OMX_IN	OMX_U32 nSizeBytes);
+OMX_ERRORTYPE OMXComponentFreeBuffer(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_U32 nPortIndex,
+        OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer);
+OMX_ERRORTYPE OMXComponentEmptyThisBuffer(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer);
+OMX_ERRORTYPE OMXComponentFillThisBuffer(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer);
+OMX_ERRORTYPE OMXComponentSetCallbacks(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_CALLBACKTYPE* pCallbacks, 
+        OMX_IN  OMX_PTR pAppData);   
+OMX_ERRORTYPE OMXComponentDeInit(OMX_IN  OMX_HANDLETYPE hComponent);
+
+
+void EventHandler(OMX_OUT OMX_HANDLETYPE hComponent, 
+					OMX_OUT OMX_PTR pAppData,
+        			OMX_OUT OMX_EVENTTYPE eEvent, 
+        			OMX_OUT OMX_U32 Data,
+        			OMX_OUT OMX_STRING cExtraInfo);
+        			
+void InputBufferCallback(
+        OMX_OUT OMX_HANDLETYPE hComponent,
+        OMX_OUT OMX_PTR pAppData,
+        OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
+        
+void OutputBufferCallback(
+        OMX_OUT OMX_HANDLETYPE hComponent,
+        OMX_OUT OMX_PTR pAppData,
+        OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
+        
+COmxComponentImpl::COmxComponentImpl(OMX_HANDLETYPE hComponent)
+	{
+	iHandle = static_cast<OMX_COMPONENTTYPE*>(hComponent);
+	OMX_VERSIONTYPE ver = 
+		{
+		1,0
+		};
+
+	// fill in handle structure
+	iHandle->nVersion = ver;
+	iHandle->pComponentPrivate = this; 
+	iHandle->GetComponentVersion = &::OMXComponentGetComponentVersion;
+	iHandle->SendCommand = &::OMXComponentSendCommand;
+	iHandle->GetParameter = &::OMXComponentGetParameter;
+	iHandle->SetParameter = &::OMXComponentSetParameter;
+	iHandle->GetConfig = &::OMXComponentGetConfig;
+	iHandle->SetConfig = &::OMXComponentSetConfig;
+	iHandle->GetExtensionIndex = &::OMXComponentGetExtensionIndex;
+	iHandle->GetState =	&::OMXComponentGetState;
+	iHandle->ComponentTunnelRequest = &::OMXComponentComponentTunnelRequest;
+	iHandle->UseBuffer = &::OMXComponentUseBuffer;
+	iHandle->AllocateBuffer = &::OMXComponentAllocateBuffer;
+	iHandle->FreeBuffer = &::OMXComponentFreeBuffer;
+	iHandle->EmptyThisBuffer = &::OMXComponentEmptyThisBuffer;
+	iHandle->FillThisBuffer = &::OMXComponentFillThisBuffer;
+	iHandle->SetCallbacks = &::OMXComponentSetCallbacks;
+	iHandle->ComponentDeInit = &::OMXComponentDeInit;
+	}
+	
+COmxComponentImpl::~COmxComponentImpl()
+	{
+	}
+	
+COmxComponentImpl::operator OMX_HANDLETYPE()
+	{
+	return (OMX_HANDLETYPE)&iHandle;
+	}
+	
+OMX_ERRORTYPE OMXComponentGetComponentVersion(
+		OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_OUT OMX_STRING pComponentName,
+        OMX_OUT OMX_VERSIONTYPE* pComponentVersion,
+        OMX_OUT OMX_VERSIONTYPE* pSpecVersion,
+        OMX_OUT OMX_UUIDTYPE* pComponentUUID)
+	{
+	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->GetComponentVersion(pComponentName,pComponentVersion,pSpecVersion, pComponentUUID);
+	}
+
+OMX_ERRORTYPE OMXComponentSendCommand(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_COMMANDTYPE Cmd,
+        OMX_IN  OMX_U32 nParam1,
+        OMX_IN  OMX_PTR pCmdData)
+	{
+	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->SendCommand(Cmd ,nParam1, pCmdData);	
+	}
+	
+OMX_ERRORTYPE OMXComponentGetParameter(
+        OMX_IN  OMX_HANDLETYPE hComponent, 
+        OMX_IN  OMX_INDEXTYPE nParamIndex,  
+        OMX_INOUT OMX_PTR ComponentParameterStructure)
+	{
+	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->GetParameter(nParamIndex, ComponentParameterStructure);
+	}
+	
+OMX_ERRORTYPE OMXComponentSetParameter(
+        OMX_IN  OMX_HANDLETYPE hComponent, 
+        OMX_IN  OMX_INDEXTYPE nIndex,
+        OMX_IN  OMX_PTR ComponentParameterStructure)
+	{
+	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->SetParameter(nIndex, ComponentParameterStructure);
+	}
+	
+OMX_ERRORTYPE OMXComponentGetConfig(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_INDEXTYPE nIndex, 
+        OMX_INOUT OMX_PTR value)
+	{
+	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->GetConfig(nIndex, value);
+	}
+	
+OMX_ERRORTYPE OMXComponentSetConfig(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_INDEXTYPE nIndex, 
+        OMX_IN  OMX_PTR value)
+	{
+	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->SetConfig(nIndex, value);
+	}
+	
+OMX_ERRORTYPE OMXComponentGetExtensionIndex(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_STRING ParameterName,
+        OMX_OUT OMX_INDEXTYPE* pIndexType)
+	{
+	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->GetExtensionIndex(ParameterName, pIndexType);
+	}
+	
+OMX_ERRORTYPE OMXComponentGetState(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_OUT OMX_STATETYPE* pState)
+	{
+	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->GetState(pState);
+	}
+	
+OMX_ERRORTYPE OMXComponentComponentTunnelRequest(
+    	OMX_IN	OMX_HANDLETYPE hInput,
+        OMX_IN  OMX_U32 nInputPort,
+        OMX_IN  OMX_HANDLETYPE hOutput,
+        OMX_IN  OMX_U32 nOutputPort,
+        OMX_IN  OMX_TUNNELSETUPTYPE* pTunnelSetup)
+	{
+	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hInput)->pComponentPrivate)->ComponentTunnelRequest(hInput, nInputPort, hOutput, nOutputPort, pTunnelSetup);
+	}
+	
+OMX_ERRORTYPE OMXComponentUseBuffer(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr,
+        OMX_IN  OMX_U32 nPortIndex,
+        OMX_IN	OMX_PTR pAppPrivate,
+        OMX_IN  OMX_U32 nSizeBytes,
+        OMX_IN  OMX_U8* pBuffer)
+	{
+	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->UseBuffer(ppBufferHdr, nPortIndex, pAppPrivate, nSizeBytes, pBuffer);
+	}
+	
+OMX_ERRORTYPE OMXComponentAllocateBuffer(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** pBuffer,
+        OMX_IN  OMX_U32 nPortIndex,
+        OMX_IN  OMX_PTR pAppData,
+        OMX_IN	OMX_U32 nSizeBytes)
+	{
+	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->AllocateBuffer(pBuffer, nPortIndex, pAppData, nSizeBytes);
+	}
+
+OMX_ERRORTYPE OMXComponentFreeBuffer(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_U32 nPortIndex,
+        OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer)
+	{
+	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->FreeBuffer(nPortIndex, pBuffer);
+	}
+	
+OMX_ERRORTYPE OMXComponentEmptyThisBuffer(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer)
+	{
+	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->EmptyThisBuffer(pBuffer);
+	}
+	
+OMX_ERRORTYPE OMXComponentFillThisBuffer(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer)
+	{
+	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->FillThisBuffer(pBuffer);
+	}
+	
+OMX_ERRORTYPE OMXComponentSetCallbacks(
+        OMX_IN  OMX_HANDLETYPE hComponent,
+        OMX_IN  OMX_CALLBACKTYPE* pCallbacks, 
+        OMX_IN  OMX_PTR pAppData)
+	{
+	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->SetCallbacks(pCallbacks, pAppData);
+	}
+	
+OMX_ERRORTYPE OMXComponentDeInit(OMX_IN  OMX_HANDLETYPE hComponent)
+	{
+	delete ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate);
+	return OMX_ErrorNone;
+	}