1c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* 2c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Copyright (c) 2010, Texas Instruments Incorporated 3c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * All rights reserved. 4c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 5c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Redistribution and use in source and binary forms, with or without 6c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * modification, are permitted provided that the following conditions 7c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * are met: 8c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 9c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * * Redistributions of source code must retain the above copyright 10c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * notice, this list of conditions and the following disclaimer. 11c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 12c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * * Redistributions in binary form must reproduce the above copyright 13c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * notice, this list of conditions and the following disclaimer in the 14c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * documentation and/or other materials provided with the distribution. 15c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 16c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * * Neither the name of Texas Instruments Incorporated nor the names of 17c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * its contributors may be used to endorse or promote products derived 18c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * from this software without specific prior written permission. 19c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 20c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 22c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 27c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 28c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 29c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 30c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 32c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 33c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 34c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @file omx_rpc_skel.c 35c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * This file contains methods that provides the functionality for 36c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * the OpenMAX1.1 DOMX Framework RPC Skeleton implementations. 37c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 38c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @path \WTSD_DucatiMMSW\framework\domx\omx_rpc\src 39c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 40c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @rev 1.0 41c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 42c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 43c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*============================================================== 44c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! Revision History 45c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! ============================ 46c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! 29-Mar-2010 Abhishek Ranka : Revamped DOMX implementation 47c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! 48c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! 19-August-2009 B Ravi Kiran ravi.kiran@ti.com: Initial Version 49c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *================================================================*/ 50c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 51c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/****************************************************************** 52c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * INCLUDE FILES 53c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev ******************************************************************/ 54c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 55c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <stdio.h> 56c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <string.h> 57c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 58c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <timm_osal_interfaces.h> 59c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <OMX_TI_Common.h> 60c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 61c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include "omx_rpc.h" 62c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include "omx_proxy_common.h" 63c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include "omx_rpc_skel.h" 64c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include "omx_rpc_utils.h" 65c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include "omx_rpc_internal.h" 66c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 67c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* FUNCTION LIST*/ 68c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* 69c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_EmptyBufferDone(uint32_t size, uint32_t *data) 70c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_FillBufferDone(uint32_t size, uint32_t *data) 71c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_EventHandler(uint32_t size, uint32_t *data) 72c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/ 73c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 74c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 75c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 76c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 77c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name RPC_SKEL_FillBufferDone() 78c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief Skeleton for OMX_AllocateBuffer() 79c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param size : Size of the incoming RCM message (parameter used in the RCM alloc call) 80c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param *data : Pointer to the RCM message/buffer received 81c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return RPC_OMX_ErrorNone = Successful 82c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @sa TBD 83c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 84c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 85c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 86c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_EmptyBufferDone(void *data) 87c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 88c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 89c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_HANDLETYPE hComp; 90c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ERRORTYPE tRPCError = RPC_OMX_ErrorNone; 91c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nfilledLen = 0; 92c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nOffset = 0; 93c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nFlags = 0; 94c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 bufferHdr; 95c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_COMPONENTTYPE *pHandle = NULL; 96c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev PROXY_COMPONENT_PRIVATE *pCompPrv = NULL; 97c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nPos = 0; 98c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev //RPC_OMX_MESSAGE *recdMsg; 99c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U8 *pMsgBody = NULL; 100c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev //recdMsg = (RPC_OMX_MESSAGE *) (data); 101c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 102c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev pMsgBody = data; //&recdMsg->msgBody[0]; 103c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 104c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_ENTER(""); 105c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 106c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev //Marshalled:[>hComp|>bufferHdr|>nFilledLen|>nOffset|>nFlags] 107c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 108c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, hComp, OMX_HANDLETYPE); 109c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev pHandle = (OMX_COMPONENTTYPE *) hComp; 110c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev pCompPrv = (PROXY_COMPONENT_PRIVATE *) pHandle->pComponentPrivate; 111c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 112c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, bufferHdr, OMX_U32); 113c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 114c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, nfilledLen, OMX_U32); 115c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, nOffset, OMX_U32); 116c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, nFlags, OMX_U32); 117c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 118c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev tRPCError = 119c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev pCompPrv->proxyEmptyBufferDone(hComp, bufferHdr, nfilledLen, 120c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev nOffset, nFlags); 121c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 122c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_EXIT(""); 123c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return tRPCError; 124c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 125c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 126c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 127c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 128c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name RPC_SKEL_FillBufferDone() 129c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief Skeleton for OMX_AllocateBuffer() 130c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param size : Size of the incoming RCM message (parameter used in the RCM alloc call) 131c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param *data : Pointer to the RCM message/buffer received 132c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return RPC_OMX_ErrorNone = Successful 133c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @sa TBD 134c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 135c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 136c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 137c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_FillBufferDone(void *data) 138c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 139c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 140c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_HANDLETYPE hComp; 141c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ERRORTYPE tRPCError = RPC_OMX_ErrorNone; 142c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nfilledLen = 0; 143c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nOffset = 0; 144c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nFlags = 0; 145c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_TICKS nTimeStamp; 146c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 bufferHdr; 147c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_COMPONENTTYPE *pHandle = NULL; 148c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev PROXY_COMPONENT_PRIVATE *pCompPrv = NULL; 149c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nPos = 0; 150c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev //RPC_OMX_MESSAGE *recdMsg; 151c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U8 *pMsgBody = NULL; 152c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_HANDLETYPE hMarkTargetComponent = NULL; 153c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_PTR pMarkData = NULL; 154c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev //recdMsg = (RPC_OMX_MESSAGE *) (data); 155c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 156c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev pMsgBody = data; //&recdMsg->msgBody[0]; 157c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 158c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_ENTER(""); 159c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 160c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev //Marshalled:[>hComp|>bufferHdr|>nFilledLen|>nOffset|>nFlags|>nTimeStamp] 161c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 162c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, hComp, OMX_HANDLETYPE); 163c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev pHandle = (OMX_COMPONENTTYPE *) hComp; 164c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev pCompPrv = (PROXY_COMPONENT_PRIVATE *) pHandle->pComponentPrivate; 165c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 166c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, bufferHdr, OMX_U32); 167c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, nfilledLen, OMX_U32); 168c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, nOffset, OMX_U32); 169c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, nFlags, OMX_U32); 170c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, nTimeStamp, OMX_TICKS); 171c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, hMarkTargetComponent, 172c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_HANDLETYPE); 173c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, pMarkData, OMX_PTR); 174c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 175c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev tRPCError = 176c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev pCompPrv->proxyFillBufferDone(hComp, bufferHdr, nfilledLen, 177c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev nOffset, nFlags, nTimeStamp, hMarkTargetComponent, pMarkData); 178c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 179c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_EXIT(""); 180c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return tRPCError; 181c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 182c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 183c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 184c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 185c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 186c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 187c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name RPC_SKEL_EventHandler() 188c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief Skeleton for OMX_AllocateBuffer() 189c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param size : Size of the incoming RCM message (parameter used in the RCM alloc call) 190c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param *data : Pointer to the RCM message/buffer received 191c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return RPC_OMX_ErrorNone = Successful 192c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @sa TBD 193c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 194c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 195c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 196c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_EventHandler(void *data) 197c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 198c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_HANDLETYPE hComp; 199c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ERRORTYPE tRPCError = RPC_OMX_ErrorNone; 200c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_COMPONENTTYPE *pHandle = NULL; 201c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev PROXY_COMPONENT_PRIVATE *pCompPrv = NULL; 202c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_EVENTTYPE eEvent; 203c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nData1; 204c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nData2; 205c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_PTR pEventData; 206c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nPos = 0; 207c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev //RPC_OMX_MESSAGE *recdMsg; 208c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U8 *pMsgBody = NULL; 209c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev //recdMsg = (RPC_OMX_MESSAGE *) (data); 210c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev pMsgBody = data; //&recdMsg->msgBody[0]; 211c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 212c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_ENTER(""); 213c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 214c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev //Marshalled:[>hComp|>eEvent|>nData1|>nData2|>pEventData] 215c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 216c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, hComp, OMX_HANDLETYPE); 217c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev pHandle = (OMX_COMPONENTTYPE *) hComp; 218c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev pCompPrv = (PROXY_COMPONENT_PRIVATE *) pHandle->pComponentPrivate; 219c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 220c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, eEvent, OMX_EVENTTYPE); 221c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, nData1, OMX_U32); 222c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, nData2, OMX_U32); 223c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_GETFIELDVALUE(pMsgBody, nPos, pEventData, OMX_PTR); 224c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 225c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_DEBUG 226c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev ("\n**__**Got eventhandler from Remote Core succesffuly - values are : **__**"); 227c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_DEBUG 228c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev ("hComp :0x%x,eEvent: 0x%x,nData1: 0x%x,nData2: 0x%x,pEventData: 0x%x", 229c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev hComp, eEvent, nData1, nData2, pEventData); 230c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_DEBUG("Just Before Entering Proxy Event handler call"); 231c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 232c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev tRPCError = 233c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev pCompPrv->proxyEventHandler(hComp, pCompPrv->pILAppData, eEvent, 234c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev nData1, nData2, pEventData); 235c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 236c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_EXIT(""); 237c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return tRPCError; 238c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 239c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 240c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 241c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 242c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 243c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name EMPTY-SKEL 244c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief 245c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param 246c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return 247c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 248c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 249c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 250c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_GetHandle(uint32_t size, uint32_t * data) 251c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 252c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 253c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 254c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 255c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_SetParameter(uint32_t size, uint32_t * data) 256c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 257c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 258c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 259c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 260c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_GetParameter(uint32_t size, uint32_t * data) 261c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 262c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 263c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 264c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 265c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_FreeHandle(uint32_t size, uint32_t * data) 266c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 267c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 268c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 269c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 270c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_EmptyThisBuffer(uint32_t size, uint32_t * data) 271c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 272c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 273c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 274c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 275c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_FillThisBuffer(uint32_t size, uint32_t * data) 276c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 277c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 278c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 279c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 280c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_UseBuffer(uint32_t size, uint32_t * data) 281c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 282c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 283c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 284c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 285c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_FreeBuffer(uint32_t size, uint32_t * data) 286c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 287c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 288c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 289c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 290c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_SetConfig(uint32_t size, uint32_t * data) 291c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 292c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 293c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 294c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 295c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_GetConfig(uint32_t size, uint32_t * data) 296c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 297c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 298c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 299c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 300c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_GetState(uint32_t size, uint32_t * data) 301c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 302c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 303c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 304c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 305c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_SendCommand(uint32_t size, uint32_t * data) 306c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 307c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 308c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 309c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 310c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_GetComponentVersion(uint32_t size, uint32_t * data) 311c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 312c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 313c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 314c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 315c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_GetExtensionIndex(uint32_t size, uint32_t * data) 316c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 317c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 318c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 319c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 320c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_AllocateBuffer(uint32_t size, uint32_t * data) 321c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 322c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 323c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 324c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 325c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_SKEL_ComponentTunnelRequest(uint32_t size, 326c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev uint32_t * data) 327c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 328c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 329c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 330