omxil/mmilapi/unittest/test_plugins/omxildummyaudiodec/omximpl.cpp
changeset 56 b6488ac24ddc
parent 47 481b3bce574a
child 57 1cbb0d5bf7f2
equal deleted inserted replaced
47:481b3bce574a 56:b6488ac24ddc
     1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 //
       
    15 
       
    16 //#include <stdio.h>
       
    17 #include "omximpl.h"
       
    18 	
       
    19 OMX_ERRORTYPE OMXComponentGetComponentVersion(
       
    20 		OMX_IN  OMX_HANDLETYPE hComponent,
       
    21         OMX_OUT OMX_STRING pComponentName,
       
    22         OMX_OUT OMX_VERSIONTYPE* pComponentVersion,
       
    23         OMX_OUT OMX_VERSIONTYPE* pSpecVersion,
       
    24         OMX_OUT OMX_UUIDTYPE* pComponentUUID);
       
    25 OMX_ERRORTYPE OMXComponentSendCommand(
       
    26         OMX_IN  OMX_HANDLETYPE hComponent,
       
    27         OMX_IN  OMX_COMMANDTYPE Cmd,
       
    28         OMX_IN  OMX_U32 nParam1,
       
    29         OMX_IN  OMX_PTR pCmdData);
       
    30 OMX_ERRORTYPE OMXComponentGetParameter(
       
    31         OMX_IN  OMX_HANDLETYPE hComponent, 
       
    32         OMX_IN  OMX_INDEXTYPE nParamIndex,  
       
    33         OMX_INOUT OMX_PTR ComponentParameterStructure);
       
    34 OMX_ERRORTYPE OMXComponentSetParameter(
       
    35         OMX_IN  OMX_HANDLETYPE hComponent, 
       
    36         OMX_IN  OMX_INDEXTYPE nIndex,
       
    37         OMX_IN  OMX_PTR ComponentParameterStructure);
       
    38 OMX_ERRORTYPE OMXComponentGetConfig(
       
    39         OMX_IN  OMX_HANDLETYPE hComponent,
       
    40         OMX_IN  OMX_INDEXTYPE nIndex, 
       
    41         OMX_INOUT OMX_PTR value);
       
    42 OMX_ERRORTYPE OMXComponentSetConfig(
       
    43         OMX_IN  OMX_HANDLETYPE hComponent,
       
    44         OMX_IN  OMX_INDEXTYPE nIndex, 
       
    45         OMX_IN  OMX_PTR value);
       
    46 OMX_ERRORTYPE OMXComponentGetExtensionIndex(
       
    47         OMX_IN  OMX_HANDLETYPE hComponent,
       
    48         OMX_IN  OMX_STRING ParameterName,
       
    49         OMX_OUT OMX_INDEXTYPE* pIndexType);
       
    50 OMX_ERRORTYPE OMXComponentGetState(
       
    51         OMX_IN  OMX_HANDLETYPE hComponent,
       
    52         OMX_OUT OMX_STATETYPE* pState);
       
    53 OMX_ERRORTYPE OMXComponentComponentTunnelRequest(
       
    54         OMX_IN  OMX_HANDLETYPE hInput,
       
    55         OMX_IN  OMX_U32 nPortInput,
       
    56         OMX_IN  OMX_HANDLETYPE hOutput,
       
    57         OMX_IN  OMX_U32 nPortOutput,
       
    58         OMX_IN  OMX_TUNNELSETUPTYPE* pTunnelSetup);
       
    59 OMX_ERRORTYPE OMXComponentUseBuffer(
       
    60         OMX_IN  OMX_HANDLETYPE hComponent,
       
    61         OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr,
       
    62         OMX_IN  OMX_U32 nPortIndex,
       
    63         OMX_IN	OMX_PTR pAppPrivate,
       
    64         OMX_IN	OMX_U32 nSizeBytes,
       
    65         OMX_IN	OMX_U8* pBuffer);
       
    66 OMX_ERRORTYPE OMXComponentAllocateBuffer(
       
    67         OMX_IN  OMX_HANDLETYPE hComponent,
       
    68         OMX_INOUT OMX_BUFFERHEADERTYPE** pBuffer,
       
    69         OMX_IN  OMX_U32 nPortIndex,
       
    70         OMX_IN	OMX_PTR pAppData,
       
    71         OMX_IN	OMX_U32 nSizeBytes);
       
    72 OMX_ERRORTYPE OMXComponentFreeBuffer(
       
    73         OMX_IN  OMX_HANDLETYPE hComponent,
       
    74         OMX_IN  OMX_U32 nPortIndex,
       
    75         OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer);
       
    76 OMX_ERRORTYPE OMXComponentEmptyThisBuffer(
       
    77         OMX_IN  OMX_HANDLETYPE hComponent,
       
    78         OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer);
       
    79 OMX_ERRORTYPE OMXComponentFillThisBuffer(
       
    80         OMX_IN  OMX_HANDLETYPE hComponent,
       
    81         OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer);
       
    82 OMX_ERRORTYPE OMXComponentSetCallbacks(
       
    83         OMX_IN  OMX_HANDLETYPE hComponent,
       
    84         OMX_IN  OMX_CALLBACKTYPE* pCallbacks, 
       
    85         OMX_IN  OMX_PTR pAppData);   
       
    86 OMX_ERRORTYPE OMXComponentDeInit(OMX_IN  OMX_HANDLETYPE hComponent);
       
    87 
       
    88 OMX_ERRORTYPE OMXComponentRoleEnum(
       
    89         OMX_IN OMX_HANDLETYPE hComponent,
       
    90 		OMX_OUT OMX_U8 *cRole,
       
    91 		OMX_IN OMX_U32 nIndex);
       
    92 
       
    93 
       
    94 void EventHandler(OMX_OUT OMX_HANDLETYPE hComponent, 
       
    95 					OMX_OUT OMX_PTR pAppData,
       
    96         			OMX_OUT OMX_EVENTTYPE eEvent, 
       
    97         			OMX_OUT OMX_U32 Data,
       
    98         			OMX_OUT OMX_STRING cExtraInfo);
       
    99         			
       
   100 void InputBufferCallback(
       
   101         OMX_OUT OMX_HANDLETYPE hComponent,
       
   102         OMX_OUT OMX_PTR pAppData,
       
   103         OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
       
   104         
       
   105 void OutputBufferCallback(
       
   106         OMX_OUT OMX_HANDLETYPE hComponent,
       
   107         OMX_OUT OMX_PTR pAppData,
       
   108         OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
       
   109         
       
   110         	
       
   111  COmxComponentImpl::COmxComponentImpl(OMX_HANDLETYPE hComponent)
       
   112 	{
       
   113 	iHandle = static_cast<OMX_COMPONENTTYPE*>(hComponent);
       
   114 	OMX_VERSIONTYPE ver = {	1,0,0,0	};
       
   115 
       
   116 	// fill in handle structure		
       
   117 	
       
   118 	iHandle->nVersion = ver;
       
   119 	iHandle->pComponentPrivate = this; 
       
   120 	iHandle->GetComponentVersion = &::OMXComponentGetComponentVersion;
       
   121 	iHandle->SendCommand = &::OMXComponentSendCommand;
       
   122 	iHandle->GetParameter = &::OMXComponentGetParameter;
       
   123 	iHandle->SetParameter = &::OMXComponentSetParameter;
       
   124 	iHandle->GetConfig = &::OMXComponentGetConfig;
       
   125 	iHandle->SetConfig = &::OMXComponentSetConfig;
       
   126 	iHandle->GetExtensionIndex = &::OMXComponentGetExtensionIndex;
       
   127 	iHandle->GetState =	&::OMXComponentGetState;
       
   128 	iHandle->ComponentTunnelRequest = &::OMXComponentComponentTunnelRequest;
       
   129 	iHandle->UseBuffer = &::OMXComponentUseBuffer;
       
   130 	iHandle->AllocateBuffer = &::OMXComponentAllocateBuffer;
       
   131 	iHandle->FreeBuffer = &::OMXComponentFreeBuffer;
       
   132 	iHandle->EmptyThisBuffer = &::OMXComponentEmptyThisBuffer;
       
   133 	iHandle->FillThisBuffer = &::OMXComponentFillThisBuffer;
       
   134 	iHandle->SetCallbacks = &::OMXComponentSetCallbacks;
       
   135 	iHandle->ComponentRoleEnum = &::OMXComponentRoleEnum;
       
   136 	iHandle->ComponentDeInit = &::OMXComponentDeInit;
       
   137 	}
       
   138 	
       
   139  COmxComponentImpl::~COmxComponentImpl()
       
   140 	{
       
   141 	
       
   142 	}
       
   143  COmxComponentImpl::operator OMX_HANDLETYPE()
       
   144 		{
       
   145 		return (OMX_HANDLETYPE)&iHandle;
       
   146 		}
       
   147 
       
   148 	
       
   149 OMX_ERRORTYPE OMXComponentGetComponentVersion(
       
   150 		OMX_IN  OMX_HANDLETYPE hComponent,
       
   151         OMX_OUT OMX_STRING pComponentName,
       
   152         OMX_OUT OMX_VERSIONTYPE* pComponentVersion,
       
   153         OMX_OUT OMX_VERSIONTYPE* pSpecVersion,
       
   154         OMX_OUT OMX_UUIDTYPE* pComponentUUID)
       
   155 	{
       
   156 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->GetComponentVersion(pComponentName,pComponentVersion,pSpecVersion, pComponentUUID);
       
   157 	}
       
   158 	
       
   159 
       
   160 OMX_ERRORTYPE OMXComponentSendCommand(
       
   161         OMX_IN  OMX_HANDLETYPE hComponent,
       
   162         OMX_IN  OMX_COMMANDTYPE Cmd,
       
   163         OMX_IN  OMX_U32 nParam1,
       
   164         OMX_IN  OMX_PTR pCmdData)
       
   165 	{
       
   166 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->SendCommand(Cmd ,nParam1, pCmdData);
       
   167 	
       
   168 	}
       
   169 OMX_ERRORTYPE OMXComponentGetParameter(
       
   170         OMX_IN  OMX_HANDLETYPE hComponent, 
       
   171         OMX_IN  OMX_INDEXTYPE nParamIndex,  
       
   172         OMX_INOUT OMX_PTR ComponentParameterStructure)
       
   173 	{
       
   174 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->GetParameter(nParamIndex, ComponentParameterStructure);
       
   175 	}
       
   176 OMX_ERRORTYPE OMXComponentSetParameter(
       
   177         OMX_IN  OMX_HANDLETYPE hComponent, 
       
   178         OMX_IN  OMX_INDEXTYPE nIndex,
       
   179         OMX_IN  OMX_PTR ComponentParameterStructure)
       
   180 	{
       
   181 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->SetParameter(nIndex, ComponentParameterStructure);
       
   182 	}
       
   183 OMX_ERRORTYPE OMXComponentGetConfig(
       
   184         OMX_IN  OMX_HANDLETYPE hComponent,
       
   185         OMX_IN  OMX_INDEXTYPE nIndex, 
       
   186         OMX_INOUT OMX_PTR value)
       
   187 	{
       
   188 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->GetConfig(nIndex, value);
       
   189 	}
       
   190 OMX_ERRORTYPE OMXComponentSetConfig(
       
   191         OMX_IN  OMX_HANDLETYPE hComponent,
       
   192         OMX_IN  OMX_INDEXTYPE nIndex, 
       
   193         OMX_IN  OMX_PTR value)
       
   194 	{
       
   195 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->SetConfig(nIndex, value);
       
   196 	}
       
   197 OMX_ERRORTYPE OMXComponentGetExtensionIndex(
       
   198         OMX_IN  OMX_HANDLETYPE hComponent,
       
   199         OMX_IN  OMX_STRING ParameterName,
       
   200         OMX_OUT OMX_INDEXTYPE* pIndexType)
       
   201 	{
       
   202 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->GetExtensionIndex(ParameterName, pIndexType);
       
   203 	}
       
   204 OMX_ERRORTYPE OMXComponentGetState(
       
   205         OMX_IN  OMX_HANDLETYPE hComponent,
       
   206         OMX_OUT OMX_STATETYPE* pState)
       
   207 	{
       
   208 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->GetState(pState);
       
   209 	}
       
   210 OMX_ERRORTYPE OMXComponentComponentTunnelRequest(
       
   211     	OMX_IN	OMX_HANDLETYPE hInput,
       
   212         OMX_IN  OMX_U32 nInputPort,
       
   213         OMX_IN  OMX_HANDLETYPE hOutput,
       
   214         OMX_IN  OMX_U32 nOutputPort,
       
   215         OMX_IN  OMX_TUNNELSETUPTYPE* pTunnelSetup)
       
   216 	{
       
   217 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hInput)->pComponentPrivate)->ComponentTunnelRequest(hInput, nInputPort, hOutput, nOutputPort, pTunnelSetup);
       
   218 	}
       
   219 OMX_ERRORTYPE OMXComponentUseBuffer(
       
   220         OMX_IN  OMX_HANDLETYPE hComponent,
       
   221         OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr,
       
   222         OMX_IN  OMX_U32 nPortIndex,
       
   223         OMX_IN	OMX_PTR pAppPrivate,
       
   224         OMX_IN  OMX_U32 nSizeBytes,
       
   225         OMX_IN  OMX_U8* pBuffer)
       
   226 	{
       
   227 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->UseBuffer(ppBufferHdr, nPortIndex, pAppPrivate, nSizeBytes, pBuffer);
       
   228 	}
       
   229 	
       
   230 OMX_ERRORTYPE OMXComponentAllocateBuffer(
       
   231         OMX_IN  OMX_HANDLETYPE hComponent,
       
   232         OMX_INOUT OMX_BUFFERHEADERTYPE** pBuffer,
       
   233         OMX_IN  OMX_U32 nPortIndex,
       
   234         OMX_IN  OMX_PTR pAppData,
       
   235         OMX_IN	OMX_U32 nSizeBytes)
       
   236 	{
       
   237 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->AllocateBuffer(pBuffer, nPortIndex, pAppData, nSizeBytes);
       
   238 	}
       
   239 
       
   240 OMX_ERRORTYPE OMXComponentFreeBuffer(
       
   241         OMX_IN  OMX_HANDLETYPE hComponent,
       
   242         OMX_IN  OMX_U32 nPortIndex,
       
   243         OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer)
       
   244 	{
       
   245 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->FreeBuffer(nPortIndex, pBuffer);
       
   246 	}
       
   247 OMX_ERRORTYPE OMXComponentEmptyThisBuffer(
       
   248         OMX_IN  OMX_HANDLETYPE hComponent,
       
   249         OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer)
       
   250 	{
       
   251 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->EmptyThisBuffer(pBuffer);
       
   252 	}
       
   253 OMX_ERRORTYPE OMXComponentFillThisBuffer(
       
   254         OMX_IN  OMX_HANDLETYPE hComponent,
       
   255         OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer)
       
   256 	{
       
   257 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->FillThisBuffer(pBuffer);
       
   258 	}
       
   259 OMX_ERRORTYPE OMXComponentSetCallbacks(
       
   260         OMX_IN  OMX_HANDLETYPE hComponent,
       
   261         OMX_IN  OMX_CALLBACKTYPE* pCallbacks, 
       
   262         OMX_IN  OMX_PTR pAppData)
       
   263 	{
       
   264 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->SetCallbacks(pCallbacks, pAppData);
       
   265 	}
       
   266 	
       
   267 OMX_ERRORTYPE OMXComponentDeInit(OMX_IN  OMX_HANDLETYPE hComponent)
       
   268 	{
       
   269 	delete ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate);
       
   270 	return OMX_ErrorNone;
       
   271 	}
       
   272 
       
   273 OMX_ERRORTYPE OMXComponentRoleEnum(
       
   274         OMX_IN OMX_HANDLETYPE hComponent,
       
   275 		OMX_OUT OMX_U8 *cRole,
       
   276 		OMX_IN OMX_U32 nIndex)	
       
   277 	{
       
   278 	return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->ComponentRoleEnum(cRole, nIndex);
       
   279 	}