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