1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2014 - 2016 MStar Semiconductor, Inc. All rights reserved.
5 // All software, firmware and related documentation herein ("MStar Software") are
6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7 // law, including, but not limited to, copyright law and international treaties.
8 // Any use, modification, reproduction, retransmission, or republication of all
9 // or part of MStar Software is expressly prohibited, unless prior written
10 // permission has been granted by MStar.
11 //
12 // By accessing, browsing and/or using MStar Software, you acknowledge that you
13 // have read, understood, and agree, to be bound by below terms ("Terms") and to
14 // comply with all applicable laws and regulations:
15 //
16 // 1. MStar shall retain any and all right, ownership and interest to MStar
17 // Software and any modification/derivatives thereof.
18 // No right, ownership, or interest to MStar Software and any
19 // modification/derivatives thereof is transferred to you under Terms.
20 //
21 // 2. You understand that MStar Software might include, incorporate or be
22 // supplied together with third party`s software and the use of MStar
23 // Software may require additional licenses from third parties.
24 // Therefore, you hereby agree it is your sole responsibility to separately
25 // obtain any and all third party right and license necessary for your use of
26 // such third party`s software.
27 //
28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29 // MStar`s confidential information and you agree to keep MStar`s
30 // confidential information in strictest confidence and not disclose to any
31 // third party.
32 //
33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34 // kind. Any warranties are hereby expressly disclaimed by MStar, including
35 // without limitation, any warranties of merchantability, non-infringement of
36 // intellectual property rights, fitness for a particular purpose, error free
37 // and in conformity with any international standard. You agree to waive any
38 // claim against MStar for any loss, damage, cost or expense that you may
39 // incur related to your use of MStar Software.
40 // In no event shall MStar be liable for any direct, indirect, incidental or
41 // consequential damages, including without limitation, lost of profit or
42 // revenues, lost or damage of data, and unauthorized system use.
43 // You agree that this Section 4 shall still apply without being affected
44 // even if MStar Software has been modified by MStar in accordance with your
45 // request or instruction for your use, except otherwise agreed by both
46 // parties in writing.
47 //
48 // 5. If requested, MStar may from time to time provide technical supports or
49 // services in relation with MStar Software to you for your use of
50 // MStar Software in conjunction with your or your customer`s product
51 // ("Services").
52 // You understand and agree that, except otherwise agreed by both parties in
53 // writing, Services are provided on an "AS IS" basis and the warranty
54 // disclaimer set forth in Section 4 above shall apply.
55 //
56 // 6. Nothing contained herein shall be construed as by implication, estoppels
57 // or otherwise:
58 // (a) conferring any license or right to use MStar name, trademark, service
59 // mark, symbol or any other identification;
60 // (b) obligating MStar or any of its affiliates to furnish any person,
61 // including without limitation, you and your customers, any assistance
62 // of any kind whatsoever, or any information; or
63 // (c) conferring any license or right under any intellectual property right.
64 //
65 // 7. These terms shall be governed by and construed in accordance with the laws
66 // of Taiwan, R.O.C., excluding its conflict of law rules.
67 // Any and all dispute arising out hereof or related hereto shall be finally
68 // settled by arbitration referred to the Chinese Arbitration Association,
69 // Taipei in accordance with the ROC Arbitration Law and the Arbitration
70 // Rules of the Association by three (3) arbitrators appointed in accordance
71 // with the said Rules.
72 // The place of arbitration shall be in Taipei, Taiwan and the language shall
73 // be English.
74 // The arbitration award shall be final and binding to both parties.
75 //
76 //******************************************************************************
77 //<MStar Software>
78 ////////////////////////////////////////////////////////////////////////////////
79 //
80 // Copyright (c) 2014-2016 MStar Semiconductor, Inc.
81 // All rights reserved.
82 //
83 // Unless otherwise stipulated in writing, any and all information contained
84 // herein regardless in any format shall remain the sole proprietary of
85 // MStar Semiconductor Inc. and be kept in strict confidence
86 // ("MStar Confidential Information") by the recipient.
87 // Any unauthorized act including without limitation unauthorized disclosure,
88 // copying, use, reproduction, sale, distribution, modification, disassembling,
89 // reverse engineering and compiling of the contents of MStar Confidential
90 // Information is unlawful and strictly prohibited. MStar hereby reserves the
91 // rights to any and all damages, losses, costs and expenses resulting therefrom.
92 //
93 ////////////////////////////////////////////////////////////////////////////////
94
95 ////////////////////////////////////////////////////////////////////////////////////////////////////
96 ///
97 /// file DMX_adp.c
98 /// @brief Demux adaption API
99 /// @author MStar Semiconductor,Inc.
100 ////////////////////////////////////////////////////////////////////////////////////////////////////
101 #ifdef MSOS_TYPE_LINUX_KERNEL
102 #include <linux/uaccess.h>
103 #include <linux/kernel.h>
104 #include <linux/string.h>
105 #include <linux/slab.h>
106
107 #include "MsTypes.h"
108 #include "utopia.h"
109 #include "apiAUDIO.h"
110 #include "apiAUDIO_v2.h"
111 #include "drvAUDIO_if.h"
112
113 #include "utopia_adp.h"
114 #include "AUDIO_adp.h"
115
116 //-------------------------------------------------------------------------------------------------
117 // Driver Compiler Options
118 //-------------------------------------------------------------------------------------------------
119
120 //-------------------------------------------------------------------------------------------------
121 // Global Variables
122 //-------------------------------------------------------------------------------------------------
123 extern UADP_STRUCT_POINTER_TABLE spt_MS_U32[];
124 extern UADP_STRUCT_POINTER_TABLE spt_MS_U16[];
125 extern UADP_STRUCT_POINTER_TABLE spt_MS_U8[];
126 extern UADP_STRUCT_POINTER_TABLE spt_MS_NULL[];
127
128
129 //-------------------------------------------------------------------------------------------------
130 // Local Defines
131 //-------------------------------------------------------------------------------------------------
132 #ifdef MSOS_TYPE_LINUX_KERNEL
133 #define CPY_FROM_USER copy_from_user
134 #define CPY_to_USER copy_to_user
135 #else
136 #define CPY_FROM_USER memcpy
137 #define CPY_to_USER memcpy
138 #endif
139
140 #define AUDIO_ADP_MSG(_f, _a...) //printf("\033[1;35m"_f"\033[0m", ##_a)
141
142 UADP_SPT_NAMEnNXT_DEF(MS_PHY_AUDIO,0);
143
144 //-------------------------------------------------------------------------------------------------
145 // Local Structures
146 //-------------------------------------------------------------------------------------------------
147 typedef struct __attribute__((packed)) {
148 MS_U32 value1;
149 MS_U32 value2;
150 } u32param2_t;
151
152 typedef struct __attribute__((packed)) {
153 MS_U32 value1;
154 MS_U32 value2;
155 MS_U32 value3;
156 MS_U32 value4;
157 } u32param4_t;
158
159 #define SIF_THRTBL_LENGTH 74
160 #define AUDIO_STRING_NAME_MAX_LENGTH 64
161
162 //-------------------------------------------------------------------------------------------------
163 // Local Variables
164 //-------------------------------------------------------------------------------------------------
165
166
167 //-------------------------------------------------------------------------------------------------
168 // Local Functions
169 //-------------------------------------------------------------------------------------------------
170
171
172 //-------------------------------------------------------------------------------------------------
173 // Global Functions
174 //-------------------------------------------------------------------------------------------------
AUDIO_adp_Init(FUtopiaIOctl * pIoctl)175 MS_U32 AUDIO_adp_Init(FUtopiaIOctl *pIoctl)
176 {
177 UADP_SDT_NAME0(MS_PHY_AUDIO, MS_PHY);
178 *pIoctl= (FUtopiaIOctl)AUDIO_adp_Ioctl;
179 return 0;
180 }
181
AUDIO_adp_Ioctl(void * pInstanceTmp,MS_U32 u32Cmd,void * const pArgs)182 MS_U32 AUDIO_adp_Ioctl(void* pInstanceTmp, MS_U32 u32Cmd, void* const pArgs)
183 {
184 MS_U32 u32Ret = UTOPIA_STATUS_FAIL, u32data = 1;
185
186 char buffer_arg[1024];
187 PAUDIO_ST_DECODER_COMMAND pDecodeCommandSrc = NULL, pDecodeCommandDes = NULL;
188 PAUDIO_ST_SPDIF_OP pSPDIF_OpSrc = NULL, pSPDIF_OpDes = NULL;
189 PAUDIO_ST_SPDIF_SCMS pSPDIF_SCMSSrc = NULL, pSPDIF_SCMSDes = NULL;
190 PAUDIO_ST_HDMI_NONPCM_OP pHDMI_NonPCM_OpSrc = NULL, pHDMI_NonPCM_OpDes = NULL;
191 PAUDIO_ST_KTV_OP pKTV_OpSrc = NULL, pKTV_OpDes = NULL;
192 PAUDIO_ST_DMAREADER_WRITEPCM pDMAReader_WritePCMSrc = NULL, pDMAReader_WrtiePCMDes = NULL;
193 PAUDIO_ST_PCMCAPTURE_READ pPCMCaptureReadSrc = NULL, pPCMCaptureReadDes = NULL;
194 PAUDIO_ST_GETAUDIOINFO2 pGetAudioInfo2Src = NULL, pGetAudioInfo2Des = NULL;
195 PAUDIO_ST_OUTPUT_SOURCE pOutputSourceSrc = NULL, pOutputSourceDes = NULL;
196 PAUDIO_ST_COPY_PARAMETER pCopyParamterSrc = NULL, pCopyParamterDes = NULL;
197 PAUDIO_ST_SET_AUDIOPARAM2 pSetAudioParam2Src = NULL, pSetAudioParam2Des = NULL;
198 PAUDIO_ST_PCM_GET pPcmGetSrc = NULL, pPcmGetDes = NULL;
199 PAUDIO_ST_PCM_READ pPcmReadSrc = NULL, pPcmReadDes = NULL;
200 PAUDIO_ST_PCM_WRITE pPcmWriteSrc = NULL, pPcmWriteDes = NULL;
201 PAUDIO_ST_ENCODER_READ pEncoderReadSrc = NULL, pEncoderReadDes = NULL;
202
203 UADP_STRUCT_POINTER_TABLE spt_AUDIO_tmp[10];
204 UADP_STRUCT_POINTER_TABLE spt_AUDIO_tmp1[10];
205 UADP_STRUCT_POINTER_TABLE spt_AUDIO_tmp2[10];
206
207 #if 0
208 char buffer_array0[1024];
209 MS_U32 *pu32Src = NULL, *pu32Des = NULL;
210 MS_S32 *ps32Src = NULL, *ps32Des = NULL;
211 PAUDIO_ST_DECODESYSTEM pDecodeSystemSrc = NULL, pDecodeSystemDes = NULL;
212 PAUDIO_ST_DIGITALOUT_GETCHANNELSTATUS pDigitalOut_GetChannelStatusSrc = NULL, pDigitalOut_GetChannelStatusDes = NULL;
213 PAUDIO_ST_SETDECODEPARAM pSetDecodeParamSrc = NULL, pSetDecodeParamDes = NULL;
214 PAUDIO_ST_SPDIF_CHANNELSTATUS pSPDIF_ChannelStatusSrc = NULL , pSPDIF_ChannelStatusDes = NULL;
215 #endif
216
217 AUDIO_ADP_MSG("[V] ADA Cmd %d \n", (int)u32Cmd);
218
219 switch(u32Cmd)
220 {
221 //============================================================
222 // AUDIO_SYSTEM RELATIONAL API FUNCTION
223 //============================================================
224
225 case MApi_CMD_AUDIO_Initialize:
226 // void MApi_AUDIO_Initialize(void)
227 AUDIO_ADP_MSG("MApi_CMD_AUDIO_Initialize cmd %d\n", (int)u32Cmd);
228
229 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
230
231 break;
232
233 case MApi_CMD_AUDIO_SetPowerOn:
234 //void MApi_AUDIO_SetPowerOn(MS_BOOL bFlag)
235
236 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
237 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
238
239 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
240 break;
241
242 case MApi_CMD_AUDIO_SetDSPBaseAddr:
243 AUDIO_ADP_MSG("MApi_CMD_AUDIO_SetDSPBaseAddr cmd %d\n", (int)u32Cmd);
244
245 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_DSPBASEADDR));
246 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
247
248 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
249 break;
250
251 case MApi_CMD_AUDIO_GetDSPBaseAddr:
252
253 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_GET_DSPBASEADDR));
254 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
255
256 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
257 break;
258
259 case MApi_CMD_AUDIO_WriteDecMailBox:
260
261 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_WRITE_DECMAILBOX));
262 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
263
264 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
265 break;
266
267 case MApi_CMD_AUDIO_TriggerSIFPLL:
268
269 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
270 break;
271
272 case MApi_CMD_AUDIO_Monitor:
273 //void MApi_Audio_Monitor(void)
274 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
275 break;
276
277 case MApi_CMD_AUDIO_SetSystemInfo:
278 AUDIO_ADP_MSG("MApi_CMD_AUDIO_SetDSPBaseAddr cmd %d\n", (int)u32Cmd);
279 //void MApi_AUDIO_SetSystemInfo(AUDIO_INIT_INFO *pau_info)
280 //u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_ST_AUDIO_INIT_INFO, NULL, buffer_arg,sizeof(buffer_arg));
281 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_INIT_INFO));
282 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
283
284 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
285 break;
286
287 case MApi_CMD_AUDIO_ASF_Data_To_DDR:
288 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
289 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
290
291 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
292 break;
293
294 case MApi_CMD_AUDIO_R2_DEBUG_MSG:
295 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
296 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
297
298 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
299 break;
300
301 case MApi_CMD_AUDIO_R2_DDR_LETENCY_MSG:
302 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
303 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
304
305 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
306 break;
307
308 case MApi_CMD_AUDIO_SetOutConnectivity:
309 //void MApi_AUDIO_SetOutConnectivity(void)
310 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
311 break;
312
313 case MApi_CMD_AUDIO_SetPathInfo:
314 //void MApi_AUDIO_SetPathInfo(AUDIO_PATH_INFO *path_info)
315 //u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_ST_AUDIO_PATH_INFO, NULL, buffer_arg,sizeof(buffer_arg));
316 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_PATH_INFO));
317 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
318
319 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
320 break;
321
322 case MApi_CMD_AUDIO_GetPathInfo:
323 //void MApi_AUDIO_GetPathInfo(AUDIO_PATH_INFO *path_info)
324 //u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_ST_AUDIO_PATH_INFO, NULL, buffer_arg,sizeof(buffer_arg));
325 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_PATH_INFO));
326 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
327
328 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
329 break;
330
331 case MApi_CMD_AUDIO_SetOutputInfo:
332 //void MApi_AUDIO_SetOutputInfo(AUDIO_OUT_INFO *pout_info)
333 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_OUT_INFO));
334 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
335
336 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
337 break;
338
339 case MApi_CMD_AUDIO_SetSourceInfo:
340 //void MApi_AUDIO_SetSourceInfo(AUDIO_SOURCE_INFO_TYPE eSourceType)
341 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
342 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
343
344 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
345 break;
346
347 case MApi_CMD_AUDIO_InputSwitch:
348 //void MApi_AUDIO_InputSwitch(AUDIO_INPUT_TYPE enSource, AUDIO_SWITCH_GROUP enGroup)
349 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_INPUTSWITCH));
350 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
351
352 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
353 break;
354
355 case MApi_CMD_AUDIO_Set_Input_Scale:
356 //void MApi_AUDIO_SetInputScale(int Step)
357 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
358 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
359
360 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
361 break;
362
363 case MApi_CMD_AUDIO_Set_Scart_Scale:
364 //void MApi_AUDIO_SetScartScale(int Step)
365 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
366 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
367
368 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
369 break;
370
371 #if 0
372 case MApi_CMD_AUDIO_AUDYSSEY_VXT_SET_THRESH_LEVEL_TABLE:
373 //MS_BOOL MApi_AUDIO_Audyssey_VXT_Set_THRESH_LEVEL_TABLE(int *thresh_level_table)
374 pAudysseyVXTSetThreshLevelTableSrc = (PAUDIO_ST_AUDYSSEY_VXT_SET_THRESH_LEVEL_TABLE)pArgs;
375 pAudysseyVXTSetThreshLevelTableDes = (PAUDIO_ST_AUDYSSEY_VXT_SET_THRESH_LEVEL_TABLE)buffer_arg;
376 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(AUDIO_ST_AUDYSSEY_VXT_SET_THRESH_LEVEL_TABLE));
377
378 pAudysseyVXTSetThreshLevelTableDes->pthresh_level_table = (int*)buffer_array0;
379 CPY_FROM_USER((void*)buffer_array0, (void*)pAudysseyVXTSetThreshLevelTableSrc->pthresh_level_table, sizeof(int)); //Fix me
380
381 u32Ret = UtopiaIoctl(pInstanceTmp, u32Cmd, (void*)buffer_arg);
382 CPY_to_USER((void*)(&(pAudysseyVXTSetThreshLevelTableSrc->bStatus)), (void*)(&pAudysseyVXTSetThreshLevelTableDes->bStatus), sizeof(MS_BOOL));
383 break;
384 #endif
385 case MApi_CMD_AUDIO_SPDIF_CHANNELSTATUS:
386 #if 0
387 // todo stanley
388 pSPDIF_ChannelStatusSrc = (PAUDIO_ST_SPDIF_CHANNELSTATUS)pArgs;
389 pSPDIF_ChannelStatusDes = (PAUDIO_ST_SPDIF_CHANNELSTATUS)buffer_arg;
390 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(AUDIO_ST_SPDIF_CHANNELSTATUS));
391 u32Ret = UtopiaIoctl(pInstanceTmp, u32Cmd, (void*)buffer_arg);
392
393 if(pSPDIF_ChannelStatusSrc->bSet== FALSE)
394 {
395 CPY_to_USER((void*)(&(pSPDIF_ChannelStatusSrc->u32Ret)), (void*)(&(pSPDIF_ChannelStatusDes->u32Ret)), sizeof(MS_U32));
396 }
397 #endif
398 break;
399
400 case MApi_CMD_AUDIO_SetDataCaptureSource:
401 //MS_BOOL MApi_AUDIO_SetDataCaptureSource(AUDIO_DEVICE_TYPE eID, AUDIO_CAPTURE_SOURCE_TYPE eSource)
402 // u32Param[0] = 0(MS_BOOL); u32Param[1] = ((MS_U32)eID) & 0xFFFF; u32Param[2] = ((MS_U32)eSource) & 0xFFFF;
403 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_DATACAPTURESOURCE));
404 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
405
406 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
407 break;
408
409 case MApi_CMD_AUDIO_OutputSourceInfo:
410 //void MApi_AUDIO_SetOutputSourceInfo(OUTPUT_SOURCE_INFO *pSourceInfo)
411 //Status.bSet = TRUE/FALSE; Status.stOutputSourceInfo = pSourceInfo;
412 //u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_ST_OUTPUT_SOURCE, NULL, buffer_arg,sizeof(buffer_arg));
413 pOutputSourceSrc = (PAUDIO_ST_OUTPUT_SOURCE)pArgs;
414 pOutputSourceDes = (PAUDIO_ST_OUTPUT_SOURCE)buffer_arg;
415 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(AUDIO_ST_OUTPUT_SOURCE));
416
417 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(OUTPUT_SOURCE_INFO));
418 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
419
420 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_OUTPUT_SOURCE));
421 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_OUTPUT_SOURCE, UADP_SDT_P2N, stOutputSourceInfo, spt_AUDIO_tmp1);
422 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
423
424 if (pOutputSourceDes->bSet == FALSE)
425 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
426 else
427 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
428 break;
429
430 case MApi_CMD_AUDIO_ReadMailBox:
431 //MS_U16 MApi_AUDIO_ReadMailBox(MS_BOOL bDspType, MS_U8 u8ParamNum)
432 //u32Param[0] = return; u32Param[1] = bDspType; u32Param[2] = u8ParamNum;
433 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_READ_MAILBOX));
434 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
435
436 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
437 break;
438
439 case MApi_CMD_AUDIO_WriteMailBox:
440 //void MApi_AUDIO_WriteMailBox(MS_BOOL bDspType, MS_U8 u8ParamNum, MS_U16 u16Data)
441 //u32Param[0] = bDspType; u32Param[1] = u8ParamNum; u32Param[2] = u16Data;
442 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_WRITE_MAILBOX));
443 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
444
445 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
446 break;
447
448 case MApi_CMD_AUDIO_FwTriggerDSP:
449 //void MApi_AUDIO_FwTriggerDSP(MS_U16 u16Cmd)
450 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
451 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
452
453 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
454 break;
455
456 case MApi_CMD_AUDIO_SetFwStatus:
457 //void MApi_AUDIO_SetFwStatus(MS_BOOL bBootOnDDR)
458 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
459 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
460
461 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
462 break;
463
464 case MApi_CMD_AUDIO_ExitAudioSystem:
465 //void MApi_AUDIO_ExitAudioSystem(void)
466 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
467 break;
468
469 case MApi_CMD_AUDIO_RebootDSP:
470 //void MApi_AUDIO_RebootDsp(MS_BOOL bDspType)
471 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
472 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
473
474 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
475 break;
476
477 case MApi_CMD_AUDIO_SendIntrupt:
478 //void MApi_AUDIO_SendIntrupt(MS_BOOL bDspType,MS_U8 u8Cmd)
479 //u32Param[0] = bDspType;u32Param[1] = u8Cmd);
480 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SEND_INTERRUPT));
481 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
482
483 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
484 break;
485
486 case MApi_CMD_AUDIO_I2S_SetMode:
487 //void MApi_AUDIO_I2S_SetMode(AUDIO_I2S_MODE_TYPE u8Mode, AUDIO_I2S_MODE_VALUE u8Val)
488 //u32Param[0] = u8Mode; u32Param[1] = u8Val;
489 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_I2S_SETMODE));
490 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
491
492 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
493 break;
494
495 case MApi_CMD_AUDIO_WritePreInitTable:
496 //void MApi_AUDIO_WritePreInitTable(void)
497 AUDIO_ADP_MSG("MApi_CMD_AUDIO_WritePreInitTable cmd %d\n", (int)u32Cmd);
498
499 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
500 break;
501
502 case MApi_CMD_AUDIO_EnaEarphone_LowPower_Stage:
503 //void MApi_AUDIO_EnaEarphone_LowPower_Stage(void)
504 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
505
506 break;
507
508 case MApi_CMD_AUDIO_EnaEarphone_HighDriving_Stage:
509 //void MApi_AUDIO_EnaEarphone_HighDriving_Stage(void)
510 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
511
512 break;
513
514 //=============================================================
515 // AUDIO_SOUND RELATIONAL API FUNCTION
516 //=============================================================
517 case MApi_CMD_SND_ProcessEnable:
518 //MS_BOOL MApi_SND_ProcessEnable(Sound_ENABLE_Type Type, MS_BOOL enable)
519 //u32Param[0] = return, u32Param[1] = Type; u32Param[2] = enable;
520 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SND_PROCESSENABLE));
521 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
522
523 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
524
525 break;
526
527 case MApi_CMD_SND_SetParam1:
528 //MS_BOOL MApi_SND_SetParam1( Sound_SET_PARAM_Type Type, MS_U16 param1, MS_U16 param2)
529 //u32Param[0] = return; u32Param[1] = Type; u32Param[2] = param1; u32Param[3] = param2;
530 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SND_SETPARAM1));
531 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
532
533 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
534
535 break;
536
537 case MApi_CMD_SND_GetParam1:
538 //MS_U16 MApi_SND_GetParam1( Sound_GET_PARAM_Type Type, MS_U16 param1)
539 //u32Param[0] = return; u32Param[1] = Type; u32Param[2] = param1;
540 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SND_GETPARAM1));
541 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
542
543 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
544 break;
545
546 case MApi_CMD_AUDIO_Sound_SetParam:
547 //MS_BOOL MApi_AUDIO_SOUND_SetParam(Sound_SET_Type Type, MS_U32 *p_param )
548 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(u32param4_t));
549 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
550
551 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SOUND_SETPARAM));
552 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_SOUND_SETPARAM, UADP_SDT_P2N, pParam, spt_AUDIO_tmp1);
553 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
554
555
556 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
557
558 break;
559
560 case MApi_CMD_AUDIO_SetEq_7band:
561 //void MApi_AUDIO_SetEq_7band(MS_U8 u8band, MS_U8 u8level)
562 //u32Param[0] = u8band; u32Param[1] = u8level;
563 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SETEQ_7BAND));
564 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
565
566 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
567
568 break;
569
570 case MApi_CMD_AUDIO_SetAvcThreshold:
571 //void _MApi_AUDIO_SetAvcThreshold(MS_U8 Level);
572 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
573 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
574
575 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
576
577 break;
578
579 case MApi_CMD_AUDIO_SetAvcMode:
580 //void _MApi_AUDIO_SetAvcMode(MS_U8 AvcMode);
581 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
582 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
583
584 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
585 break;
586
587 case MApi_CMD_AUDIO_SetAvcAT:
588 //void _MApi_AUDIO_SetAvcAT(MS_U8 AvcAT);
589 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
590 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
591
592 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
593 break;
594
595 case MApi_CMD_AUDIO_SetAvcRT:
596 //void _MApi_AUDIO_SetAvcRT(MS_U8 AvcRT);
597 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
598 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
599
600 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
601 break;
602
603 case MApi_CMD_AUDIO_SetSurroundXA:
604 //void _MApi_AUDIO_SetSurroundXA(MS_U8 mode);
605 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
606 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
607
608 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
609 break;
610
611 case MApi_CMD_AUDIO_SetSurroundXB:
612 //void _MApi_AUDIO_SetSurroundXB(MS_U8 mode);
613 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
614 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
615
616 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
617 break;
618
619 case MApi_CMD_AUDIO_SetSurroundXK:
620 //void _MApi_AUDIO_SetSurroundXK(MS_U8 mode);
621 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
622 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
623
624 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
625 break;
626
627 case MApi_CMD_AUDIO_SetSurroundLPFGain:
628 //void _MApi_AUDIO_SetSurroundLPFGain(MS_U8 mode);
629 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
630 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
631
632 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
633 break;
634
635 case MApi_CMD_AUDIO_SetAbsoluteVolume:
636 //void MApi_AUDIO_SetAbsoluteVolume(MS_U8 u8Path, MS_U8 u8Vol1, MS_U8 u8Vol2)
637 //u32Param[0] = u8Path; u32Param[1] = u8Vol1; u32Param[2] = u8Vol2;
638 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_ABSOLUTEVOLUME));
639 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
640
641 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
642 break;
643
644 case MApi_CMD_AUDIO_SourceConnect:
645 //void MApi_AUDIO_SourceConnect(AUDIO_OUTPORT_SOURCE_TYPE eConnectSourceType, MS_BOOL bConnect )
646 //u32Param[0] = eConnectSourceType; u32Param[1] = bConnect;
647 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SOURCECONNECT));
648 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
649
650 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
651 break;
652
653 case MApi_CMD_AUDIO_SetDynamicBass:
654 //void MApi_AUDIO_SetDynamicBass(MS_U8 u8DynamicBass )
655 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
656 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
657
658 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
659 break;
660
661 case MApi_CMD_AUDIO_AbsoluteTreble:
662 //void MApi_AUDIO_AbsoluteTreble(MS_U8 u8Treble )
663 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
664 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
665
666 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
667 break;
668
669 case MApi_CMD_AUDIO_SetBufferProcess:
670 //void MApi_AUDIO_SetBufferProcess(MS_U8 DelayTime)
671 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
672 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
673
674 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
675 break;
676
677 case MApi_CMD_AUDIO_ConvertVolumeUnit:
678 //MS_U8 MApi_AUDIO_ConvertVolumeUnit(MS_U8 UiVolume)
679 //u32Param[0] = return; u32Param[1] = UiVolume;
680 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_CONVERT_VOLUMEUNIT));
681 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
682
683 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
684 break;
685
686 case MApi_CMD_AUDIO_SetPEQCoef:
687 //void MApi_AUDIO_SetPEQCoef(AUDIO_PEQ_COEF *peq_coef)
688 //u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_ST_AUDIO_PEQ_COEF, NULL, buffer_arg,sizeof(buffer_arg));
689 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_PEQ_COEF));
690 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
691
692 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
693 break;
694
695 case MApi_CMD_AUDIO_EnableDcRemove:
696 //MS_BOOL MApi_AUDIO_EnableDcRemove(MS_BOOL EnDcRemove)
697 //u32Param[0] = return; u32Param[1] = EnDcRemove;
698 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_ENABLE_DCREMOVE));
699 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
700
701 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
702 break;
703 //============================================================
704 // AUDIO_DTV RELATIONAL API FUNCTION
705 //============================================================
706 #if 0
707 case MApi_CMD_AUDIO_DecodeSystem:
708 //MS_BOOL MApi_AUDIO_ReleaseDecodeSystem(AUDIO_DEC_ID DecId)
709 //Status.bStatus = return; Status.eType = DECODE_SYS_RELEASE; Status.DecId = DecId;
710 pDecodeSystemSrc = (PAUDIO_ST_DECODESYSTEM)pArgs;
711 pDecodeSystemDes = (PAUDIO_ST_DECODESYSTEM)buffer_arg;
712
713 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(AUDIO_ST_DECODESYSTEM));
714 u32Ret = UtopiaIoctl(pInstanceTmp, u32Cmd, (void*)buffer_arg);
715 if(pDecodeSystemSrc->eType == DECODE_SYS_GET)
716 {
717 CPY_to_USER((void*)(&(pDecodeSystemSrc->p_AudioDecStatus)), (void*)(&(pDecodeSystemDes->p_AudioDecStatus)), sizeof(AudioDecStatus_t));
718 }
719 CPY_to_USER((void*)(&(pDecodeSystemSrc->bStatus)), (void*)(&(pDecodeSystemDes->bStatus)), sizeof(MS_BOOL));
720 break;
721 #endif
722
723 case MApi_CMD_AUDIO_OpenDecodeSystem:
724 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(AudioDecStatus_t));
725 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
726
727 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_OPEN_DECODESYSTEM));
728 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_OPEN_DECODESYSTEM, UADP_SDT_P2N, p_AudioDecStatus, spt_AUDIO_tmp1);
729 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
730
731 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
732
733 break;
734
735 case MApi_CMD_AUDIO_ReleaseDecodeSystem:
736 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_RELEASE_DECODESYSTEM));
737 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
738
739 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
740 break;
741
742 case MApi_CMD_AUDIO_GetDecodeSystem:
743 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(AudioDecStatus_t));
744 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
745
746 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_GET_DECODESYSTEM));
747 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_GET_DECODESYSTEM, UADP_SDT_P2N, p_AudioDecStatus, spt_AUDIO_tmp1);
748 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
749
750 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
751 break;
752
753 case MApi_CMD_AUDIO_SetDecodeSystem:
754 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(AudioDecStatus_t));
755 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
756
757 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_DECODESYSTEM));
758 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_SET_DECODESYSTEM, UADP_SDT_P2N, p_AudioDecStatus, spt_AUDIO_tmp1);
759 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
760
761 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
762 break;
763
764 case MApi_CMD_AUDIO_SetDecodeCmd:
765 //MS_BOOL MApi_AUDIO_SetDecodeCmd(AUDIO_DEC_ID DecId, En_DVB_decCmdType enDecComamnd)
766 //u32Param[0] = return; u32Param[1] = DecId; u32Param[2] = enDecComamnd;
767 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_DECCMD));
768 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
769
770 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
771 break;
772
773 case MApi_CMD_AUDIO_SetSystem:
774 //MS_BOOL MApi_AUDIO_SetSystem(En_DVB_decSystemType enDecSystem)
775 //u32Param[0] = return; u32Param[1] = enDecSystem;
776 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_SYSTEM));
777 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
778
779 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
780 break;
781
782 case MApi_CMD_AUDIO_GetDecSysSupportStatus:
783 //MS_BOOL MApi_AUDIO_GetDecSysSupportStatus(En_DVB_decSystemType enDecSystem)
784 //u32Param[0] = return; u32Param[1] = enDecSystem;
785 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_GET_DECSYSSUPPORTSTATUS));
786 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
787
788 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
789 break;
790
791 case MApi_CMD_AUDIO_IsMadLock:
792 //MS_BOOL MApi_AUDIO_IsMadLock(void)
793 //u32param[1] = return;
794 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
795 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
796
797 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
798 break;
799
800 case MApi_CMD_AUDIO_GetDecStatus:
801 //En_DVB_decCmdType MApi_AUDIO_GetDecStatus(void)
802 //u32param[1] = return;
803 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
804 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
805
806 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
807 break;
808
809 case MApi_CMD_AUDIO_Decode_Command:
810 //AU_DVB_DECCMD MApi_AUDIO_GetCommand(En_DVB_AudioDecoder AdoDecoderNo)
811 //Status.bSet = TRUE/FALSE; Status.eDecCmd = Return; Status.eAdoDecoderNo = AdoDecoderNo;
812 pDecodeCommandSrc = (PAUDIO_ST_DECODER_COMMAND)pArgs;
813 pDecodeCommandDes = (PAUDIO_ST_DECODER_COMMAND)buffer_arg;
814
815 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(AUDIO_ST_DECODER_COMMAND));
816
817 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_DECODER_COMMAND));
818 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
819
820 if(pDecodeCommandDes->bSet == FALSE)
821 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
822 else
823 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
824 break;
825
826 case MApi_CMD_AUDIO_GetMAD_Lock:
827 //MS_BOOL MApi_AUDIO_GetMAD_LOCK(void)
828 //u32param[1] = return;
829 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
830 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
831
832 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
833 break;
834
835 case MApi_CMD_AUDIO_SETAD:
836 //void MApi_AUDIO_SetADOutputMode(MS_U8 out_mode)
837 //Status.eType = AD_OUTPUT_MODE; Status.u8Data = out_mode/AD_ABSOLUTE_VOLUME/AD_SET_MUTE/SET_MAIN_VOLUME ; Status.bMute = FALSE;
838 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_AD));
839 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
840
841 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
842 break;
843
844 //============================================================
845 // AUDIO_PVR RELATED FUNCTIONS
846 //============================================================
847 case MApi_CMD_AUDIO_SetEncInit:
848 //void MApi_AUDIO_SetEncInit(AU_DVB_ENCBR BitRate, MS_U8 u8EncFrameNum)
849 //u32Param[0] = BitRate; u32Param[1] = u8EncFrameNum;
850 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_ENCINIT));
851 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
852
853 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
854 break;
855
856 case MApi_CMD_AUDIO_SetEncCommand:
857 //void MApi_AUDIO_SetEncCommand(AU_DVB_ENCCMD enEncComamnd)
858 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
859 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
860
861 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
862 break;
863
864 case MApi_CMD_AUDIO_GetEncodeFrameInfo: //HAL is empty
865 //void MApi_AUDIO_GetEncodeFrameInfo(AU_DVB_ENC_FRAME_INFO *EncFrameInfo)
866 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AU_DVB_ENC_FRAME_INFO));
867 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
868
869 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
870 break;
871
872 case MApi_CMD_AUDIO_GetEncodeDoneFlag:
873 //MS_BOOL MApi_AUDIO_GetEncodeDoneFlag(void)
874 //u32param[1] = return;
875 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
876 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
877
878 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
879 break;
880
881 //============================================================
882 // AUDIO_ATV RELATIONAL API FUNCTION
883 //============================================================
884 case MApi_CMD_AUDIO_SIF_SetStandard:
885 //void MApi_AUDIO_SIF_SetStandard(AUDIOSTANDARD_TYPE standard_type)
886 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
887 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
888
889 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
890 break;
891
892 case MApi_CMD_AUDIO_SIF_GetSoundMode:
893 //MS_U8 MApi_AUDIO_SIF_GetSoundMode(void)
894 //u32param[1] = return;
895 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
896 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
897
898 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
899 break;
900
901 case MApi_CMD_AUDIO_SIF_SetSoundMode:
902 //MS_BOOL MApi_AUDIO_SIF_SetSoundMode(MS_U8 u8SifSoundMode)
903 //u32Param[0] = return; u32Param[1] = u8SifSoundMode;
904 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SIF_SET_SOUNDMODE));
905 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
906
907 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
908 break;
909
910 case MApi_CMD_AUDIO_SIF_GetAudioStatus:
911 //MS_BOOL MApi_AUDIO_SIF_GetAudioStatus(AUDIOSTATUS * eAudioStatus)
912 //Status.bStatus = return; Status.p_eAudioStatus = E_STATE_AUDIO_NO_CARRIER;
913 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(AUDIOSTATUS));
914 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
915
916 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SIF_GET_AUDIO_STATUS));
917 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_SIF_GET_AUDIO_STATUS, UADP_SDT_P2N, p_eAudioStatus, spt_AUDIO_tmp1);
918 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
919
920 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
921 break;
922
923 case MApi_CMD_AUDIO_SIF_StartAutoStandardDetection:
924 //void MApi_AUDIO_SIF_StartAutoStandardDetection(void)
925 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
926 break;
927
928 case MApi_CMD_AUDIO_SIF_GetResultOfAutoStandardDetection:
929 //AUDIOSTANDARD_TYPE MApi_AUDIO_SIF_GetResultOfAutoStandardDetection(void)
930 //u32param[1] = return;
931 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
932 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
933
934 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
935 break;
936
937 case MApi_CMD_AUDIO_SIF_ConvertToBasicAudioStandard:
938 //AUDIOSTANDARD_TYPE MApi_AUDIO_SIF_ConvertToBasicAudioStandard(AUDIOSTANDARD_TYPE eStandard)
939 //u32Param[0] = return; u32param[1] = eStandard;
940 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SIF_SIF_CONVERTTOBASICAUDIOSTANDARD));
941 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
942
943 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
944 break;
945
946 case MApi_CMD_AUDIO_SIF_SetThreshold:
947 //void MApi_AUDIO_SIF_SetThreshold(THR_TBL_TYPE code *ThrTbl)
948 //u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_ST_THR_TBLL_TYPE, NULL, buffer_arg,sizeof(buffer_arg));
949 //UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(THR_TBL_TYPE));
950 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U16) * SIF_THRTBL_LENGTH);
951 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
952
953 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
954 break;
955
956 case MApi_CMD_AUDIO_SIF_SetPrescale:
957 //void MApi_AUDIO_SIF_SetPrescale(MS_U8 gain_type, int db_value)
958 //u32Param[0] = gain_type; u32Param[1] = db_value;
959 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SIF_SETPRESCALE));
960 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
961
962 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
963 break;
964
965 case MApi_CMD_AUDIO_SIF_IsPALType:
966 //MS_BOOL MApi_AUDIO_SIF_IsPALType(AUDIO_SIF_PAL_TYPE pal_type)
967 //u32Param[0] = return; u32param[1] = pal_type;
968 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SIF_SIF_ISPALTYPE));
969 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
970
971 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
972 break;
973
974 case MApi_CMD_AUDIO_SIF_SetPALType:
975 //void MApi_AUDIO_SIF_SetPALType(AUDIO_SIF_PAL_TYPE pal_type)
976 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
977 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
978
979 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
980 break;
981
982 case MApi_CMD_AUDIO_SIF_SendCmd:
983 //void MApi_AUDIO_SIF_SendCmd(En_AUD_SIF_CmdType enAudSifCommand, MS_U8 comm_arg1, MS_U8 comm_arg2)
984 //u32Param[0] = enAudSifCommand; u32Param[1] = comm_arg1; u32Param[2] = comm_arg2;
985 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SIF_SENDCMD));
986 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
987
988 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
989 break;
990
991 case MApi_CMD_AUDIO_SIF_Shift:
992 //void MApi_AUDIO_SIF_Shift(En_AUD_VIF_Type type)
993 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
994 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
995
996 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
997 break;
998
999 //============================================================
1000 // AUDIO_FM_RADIO RELATIONAL API FUNCTION
1001 //============================================================
1002 case MApi_CMD_AUDIO_FM_RADIO_GetSoundMode:
1003 //MS_U8 MApi_AUDIO_FM_RADIO_GetSoundMode(void)
1004 //u32param[1] = return;
1005 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1006 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1007
1008 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1009 break;
1010
1011 case MApi_CMD_AUDIO_FM_RADIO_SetSoundMode:
1012 //void MApi_AUDIO_FM_RADIO_SetSoundMode(MS_U8 u8FMRadioSoundMode)
1013 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1014 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1015
1016 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1017 break;
1018
1019 case MApi_CMD_AUDIO_FM_RADIO_DeEmphassisOption:
1020 //void MApi_AUDIO_FM_RADIO_DeEmphassisOption(MS_BOOL Is_Europe)
1021 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1022 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1023
1024 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1025 break;
1026
1027 case MApi_CMD_AUDIO_FM_RADIO_GetDC_Amp:
1028 //MS_S8 MApi_AUDIO_FM_RADIO_GET_DC_AMP(void)
1029 //u32param[1] = return;
1030 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1031 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1032
1033 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1034 break;
1035
1036 case MApi_CMD_AUDIO_FM_RADIO_Get_NSR:
1037 //MS_U8 MApi_AUDIO_FM_RADIO_GET_NSR(void)
1038 //u32param[1] = return;
1039 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1040 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1041
1042 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1043 break;
1044
1045 case MApi_CMD_AUDIO_FM_RADIO_Reset:
1046 //void MApi_AUDIO_FM_RADIO_RESET(void)
1047 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
1048 break;
1049
1050 //=============================================================
1051 // AUDIO_SPDIF RELATIONAL API FUNCTION
1052 //=============================================================
1053 case MApi_CMD_AUDIO_SPDIF_OP:
1054 //void MApi_AUDIO_SPDIF_HWEN(MS_BOOL spdif_en)
1055 //Status.eType = SPDIF_HWEN/SPDIF_SETMUTE/SPDIF_SETMODE/SPDIF_GETMODE; Status.spdif_hwen = spdif_en; Status.mute_en = FALSE; Status.spdif_mode = SPDIF_OUT_NONE;
1056 pSPDIF_OpSrc = (PAUDIO_ST_SPDIF_OP)pArgs;
1057 pSPDIF_OpDes = (PAUDIO_ST_SPDIF_OP)buffer_arg;
1058 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(AUDIO_ST_SPDIF_OP));
1059
1060 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SPDIF_OP));
1061 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1062
1063 if (pSPDIF_OpDes->eType == SPDIF_GETMODE)
1064 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1065 else
1066 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1067
1068 break;
1069
1070 case MApi_CMD_AUDIO_SPDIF_SCMS:
1071 //void MApi_AUDIO_SPDIF_SetSCMS(MS_U8 C_bit_en, MS_U8 L_bit_en)
1072 //Status.bSetSCMS = TRUE/FALSE; Status.C_bit_en = C_bit_en; Status.L_bit_en = L_bit_en; Status.Ret_bit = 0;
1073 pSPDIF_SCMSSrc = (PAUDIO_ST_SPDIF_SCMS)pArgs;
1074 pSPDIF_SCMSDes = (PAUDIO_ST_SPDIF_SCMS)buffer_arg;
1075 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(AUDIO_ST_SPDIF_SCMS));
1076
1077 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SPDIF_SCMS));
1078 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1079
1080 if (pSPDIF_SCMSDes->bSetSCMS == FALSE)
1081 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1082 else
1083 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1084 break;
1085 case MApi_CMD_AUDIO_SPDIF_Monitor:
1086 //void MApi_Audio_SPDIF_Monitor(void)
1087 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
1088 break;
1089
1090 case MApi_CMD_AUDIO_SPDIF_ChannelStatus_CTRL:
1091 //MS_BOOL MApi_AUDIO_SPDIF_ChannelStatus_CTRL(AUDIO_SPDIF_CS_TYPE cs_mode, AUDIO_SPDIF_CS_TYPE_STATUS status)
1092 //u32Param[0] = return; u32param[1] = cs_mode; u32param[2] = status;
1093 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SPDIF_CHANNELSTATUS_CTRL));
1094 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1095
1096 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1097 break;
1098
1099 case MApi_CMD_AUDIO_DigitalOut_SetChannelStatus:
1100 //MS_BOOL MApi_AUDIO_DigitalOut_SetChannelStatus(DIGITAL_OUTPUT_TYPE ePath, Digital_Out_Channel_Status_t *stChannelStatus)
1101 //Status.bStatus = return; Status.ePath = ePath; Status.stChannelStatus = stChannelStatus;
1102 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(Digital_Out_Channel_Status_t));
1103 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
1104
1105 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_DIGITALOUT_SETCHANNELSTATUS));
1106 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_DIGITALOUT_SETCHANNELSTATUS, UADP_SDT_P2N, stChannelStatus, spt_AUDIO_tmp1);
1107 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
1108
1109 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1110 break;
1111
1112 case MApi_CMD_AUDIO_DigitalOut_SetDeviceCapability:
1113 //MS_BOOL _MApi_AUDIO_DigitalOut_SetDeviceCapability(DIGITAL_OUTPUT_TYPE eoutType, AUDIO_FORMAT_CODE ecodecType, Digital_Out_Device_Capability_t *p_codecCapability)
1114 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(Digital_Out_Device_Capability_t));
1115 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
1116
1117 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_DIGITALOUT_SETDEVICECAP));
1118 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_DIGITALOUT_SETDEVICECAP, UADP_SDT_P2N, p_codecCapability, spt_AUDIO_tmp1);
1119 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
1120
1121 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1122 break;
1123
1124 case MApi_CMD_AUDIO_DigitalOut_GetChannelStatus:
1125 #if 0
1126 // todo stanley
1127 pDigitalOut_GetChannelStatusSrc = (PAUDIO_ST_DIGITALOUT_GETCHANNELSTATUS)pArgs;
1128 pDigitalOut_GetChannelStatusDes = (PAUDIO_ST_DIGITALOUT_GETCHANNELSTATUS)buffer_arg;
1129 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(AUDIO_ST_DIGITALOUT_GETCHANNELSTATUS));
1130 u32Ret = UtopiaIoctl(pInstanceTmp,u32Cmd,(void*)buffer_arg);
1131 CPY_to_USER((void*)(&(pDigitalOut_GetChannelStatusSrc->stChannelStatus->u8Category)), (void*)(&(pDigitalOut_GetChannelStatusDes->stChannelStatus->u8Category)), sizeof(MS_U8));
1132 CPY_to_USER((void*)(&(pDigitalOut_GetChannelStatusSrc->stChannelStatus->stCopyRight.CBit)), (void*)(&(pDigitalOut_GetChannelStatusDes->stChannelStatus->stCopyRight.CBit)), sizeof(MS_BOOL));
1133 CPY_to_USER((void*)(&(pDigitalOut_GetChannelStatusSrc->stChannelStatus->stCopyRight.LBit)), (void*)(&(pDigitalOut_GetChannelStatusDes->stChannelStatus->stCopyRight.LBit)), sizeof(MS_BOOL));
1134 #endif
1135 break;
1136
1137 //=============================================================
1138 // AUDIO_HDMI RELATIONAL API FUNCTION
1139 //=============================================================
1140 case MApi_CMD_AUDIO_HDMI_Tx_SetMute:
1141 //void MApi_AUDIO_HDMI_Tx_SetMute(MS_BOOL mute_en)
1142 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1143 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1144
1145 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1146 break;
1147
1148 case MApi_CMD_AUDIO_HDMI_Tx_GetStatus:
1149 //void MApi_AUDIO_HDMI_Tx_GetStatus(MS_BOOL *onOff, AUDIO_FS_TYPE *hdmi_SmpFreq, HDMI_TX_OUTPUT_TYPE *outType )
1150 //Status.onOff = return; Status.hdmi_smpFreq = return; Status.outType = return;
1151 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_HDMI_TX_GETSTATUS));
1152 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1153
1154 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1155 break;
1156
1157 case MApi_CMD_AUDIO_HDMI_Monitor:
1158 //MS_U8 MApi_AUDIO_HDMI_Monitor(void)
1159 //u32param[1] = return;
1160 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1161 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1162
1163 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1164 break;
1165
1166 case MApi_CMD_AUDIO_HDMI_GetNonpcmFlag:
1167 //MS_BOOL MApi_AUDIO_HDMI_GetNonpcmFlag(void)
1168 //u32param[1] = return;
1169 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1170 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1171
1172 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1173 break;
1174
1175 case MApi_CMD_AUDIO_HDMI_SetNonpcm:
1176 //void MApi_AUDIO_HDMI_SetNonpcm(MS_U8 nonPCM_en)
1177 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1178 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1179
1180 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1181 break;
1182
1183 case MApi_CMD_AUDIO_HDMI_Nonpcm_OP:
1184 //AUDIO_HDMI_RX_TYPE MApi_AUDIO_HDMI_RX_SetNonpcm(MS_U8 nonPCM_en)
1185 //Status.bSet = TRUE/FALSE; Status.nonPCM_en = nonPCM_en;Status.eRet = return;
1186 pHDMI_NonPCM_OpSrc = (PAUDIO_ST_HDMI_NONPCM_OP)pArgs;
1187 pHDMI_NonPCM_OpDes = (PAUDIO_ST_HDMI_NONPCM_OP)buffer_arg;
1188 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(AUDIO_ST_HDMI_NONPCM_OP));
1189
1190 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_HDMI_NONPCM_OP));
1191 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1192
1193 if(pHDMI_NonPCM_OpDes->bSet == FALSE)
1194 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1195 else
1196 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1197
1198 break;
1199
1200 case MApi_CMD_AUDIO_DTV_HDMI_CFG:
1201 //void MApi_AUDIO_DTV_HDMI_CFG(MS_U8 ctrl)
1202 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1203 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1204
1205 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1206 break;
1207
1208 case MApi_CMD_AUDIO_HDMI_GetSynthFreq:
1209 //MS_U16 MApi_AUDIO_HDMI_GetSynthFreq(void)
1210 //u32param[1] = return;
1211 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1212 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1213
1214 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1215 break;
1216
1217 case MApi_CMD_AUDIO_HDMI_SetDownSample:
1218 //void MApi_AUDIO_HDMI_SetDownSample(MS_U8 ratio)
1219 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1220 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1221
1222 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1223 break;
1224
1225 case MApi_CMD_AUDIO_HDMI_TX_SetMode:
1226 //void MApi_AUDIO_HDMI_TX_SetMode(HDMI_TX_OUTPUT_TYPE outType)
1227 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1228 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1229
1230 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1231 break;
1232
1233 case MApi_CMD_AUDIO_HDMI_RX_GetHdmiInAudioStatus:
1234 //MS_BOOL MApi_AUDIO_HDMI_RX_GetHdmiInAudioStatus(ST_HDMI_AUDIO_STATUS *p_hdmiAudioSts)
1235 //Status.bStatus = Return; Status.pHdmi_status = p_hdmiAudioSts;
1236 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(ST_HDMI_AUDIO_STATUS));
1237 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
1238
1239 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_RX_HDMI_AUDIO_STATUS));
1240 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_RX_HDMI_AUDIO_STATUS, UADP_SDT_P2N, pHdmi_status, spt_AUDIO_tmp1);
1241 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
1242
1243 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1244 break;
1245 //=============================================================
1246 // AUDIO_ADVANCE_SOUND RELATIONAL API FUNCTION
1247 //=============================================================
1248 case MApi_CMD_AUDIO_ADVSOUND_ProcessEnable:
1249 //pAdvSound_ProcessEnable = (PAUDIO_ST_ADVSOUND_PROCESSENABLE)pArgs;
1250 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(char)*AUDIO_STRING_NAME_MAX_LENGTH);
1251 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
1252 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_ADVSOUND_PROCESSENABLE));
1253 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_ADVSOUND_PROCESSENABLE, UADP_SDT_P2N, eType, spt_AUDIO_tmp1);
1254 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
1255
1256 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1257 break;
1258
1259 case MApi_CMD_AUDIO_ADVSOUND_SubProcessEnable:
1260 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(char)*AUDIO_STRING_NAME_MAX_LENGTH);
1261 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
1262 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_ADVSOUND_SUBPROCESSENABLE));
1263 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_ADVSOUND_SUBPROCESSENABLE, UADP_SDT_P2N, eProc, spt_AUDIO_tmp1);
1264 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
1265 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1266 break;
1267
1268 case MApi_CMD_AUDIO_ADVSOUND_SetParam:
1269 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(char)*AUDIO_STRING_NAME_MAX_LENGTH);
1270 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
1271 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_ADVSOUND_SETPARAM));
1272 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_ADVSOUND_SETPARAM, UADP_SDT_P2N, eParam, spt_AUDIO_tmp1);
1273 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
1274
1275 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1276 break;
1277
1278 case MApi_CMD_AUDIO_ADVSND_SetParam:
1279 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(char)*AUDIO_STRING_NAME_MAX_LENGTH);
1280 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
1281 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_ADVSND_SETPARAM));
1282 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_ADVSND_SETPARAM, UADP_SDT_P2N, eParam, spt_AUDIO_tmp1);
1283 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
1284
1285 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1286 break;
1287 #if 0
1288 case MApi_CMD_AUDIO_ADVSOUND_GetParam:
1289 //MS_U32 MApi_AUDIO_ADVSOUND_GetParam(ADVSND_GET_PARAM param)
1290 //u32Param[0] = return; u32param[1] = param;
1291 pu32Src = (MS_U32*)pArgs;
1292 pu32Des = (MS_U32*)buffer_arg;
1293 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(MS_U32) * 2);
1294 u32Ret = UtopiaIoctl(pInstanceTmp,u32Cmd,(void*)buffer_arg);
1295 CPY_to_USER((void*)(&(pu32Src[0])), (void*)(&(pu32Des[0])), sizeof(MS_U32));
1296 break;
1297 #endif
1298
1299 case MApi_CMD_AUDIO_SetVDS:
1300 //void MApi_AUDIO_SetVDS(MS_U8 u8enVDS)
1301 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1302 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1303
1304 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1305 break;
1306
1307 case MApi_CMD_AUDIO_SetVSPK:
1308 //void MApi_AUDIO_SetVSPK(MS_U8 u8enVSPK)
1309 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1310 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1311
1312 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1313 break;
1314
1315 case MApi_CMD_AUDIO_SetSRS:
1316 //void MApi_AUDIO_SetSRS(MS_U8 u8enSRS)
1317 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1318 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1319
1320 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1321 break;
1322
1323 case MApi_CMD_AUDIO_SetBBE:
1324 //void MApi_AUDIO_SetBBE(MS_U8 u8enBBE , MS_U8 u8BBEMode)
1325 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SETBBE));
1326 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1327
1328 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1329 break;
1330
1331 case MApi_CMD_AUDIO_VSPK_WMod:
1332 //void MApi_AUDIO_VSPK_WMod(MS_U8 u8VSPK_WMode)
1333 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1334 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1335
1336 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1337 break;
1338
1339 case MApi_CMD_AUDIO_VSPK_SMod:
1340 //void MApi_AUDIO_VSPK_SMod(MS_U8 u8VSPK_SMode)
1341 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1342 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1343
1344 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1345 break;
1346
1347 case MApi_CMD_AUDIO_SRS_DC:
1348 //void MApi_AUDIO_SRS_DC(MS_U8 u8SRSenDC)
1349 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1350 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1351
1352 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1353 break; //void MApi_AUDIO_SRS_DC(MS_U8 u8SRSenDC)
1354
1355 case MApi_CMD_AUDIO_SRS_TruBass:
1356 //void MApi_AUDIO_SRS_TruBass(MS_U8 u8SRSenTruBass)
1357 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1358 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1359
1360 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1361 break;
1362
1363 case MApi_CMD_AUDIO_SRSTsxtPara:
1364 //void MApi_AUDIO_SRS_SetTsxtPara(MS_U8 u8mode, MS_U8 u8value)
1365 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SRS_SETTSXTPARA));
1366 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1367
1368 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1369 break;
1370
1371 case MApi_CMD_AUDIO_SetSRSTSHD:
1372 //void MApi_AUDIO_SetSRSTSHD(MS_U8 u8enTSHD)
1373 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1374 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1375
1376 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1377 break;
1378
1379 case MApi_CMD_AUDIO_TSHD_TruBass:
1380 //void MApi_AUDIO_TSHD_TruBass(MS_U8 u8TSHDenTruBass)
1381 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1382 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1383
1384 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1385 break;
1386
1387 case MApi_CMD_AUDIO_TSHD_Definition:
1388 //void MApi_AUDIO_TSHD_Definition(MS_U8 u8TSHDenDefinition)
1389 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1390 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1391
1392 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1393 break;
1394
1395 case MApi_CMD_AUDIO_TSHD_Clarity:
1396 //void MApi_AUDIO_TSHD_Clarity(MS_U8 u8TSHDenClarity)
1397 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1398 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1399
1400 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1401 break;
1402
1403 case MApi_CMD_AUDIO_SRSSetTshdPara:
1404 //void MApi_AUDIO_SRS_SetTshdPara(MS_U8 u8mode, MS_U8 u8value)
1405 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SRS_SETTSHDPARA));
1406 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1407
1408 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1409 break;
1410
1411 case MApi_CMD_AUDIO_ADVSOUND_SET_ASF_PARAM:
1412 //MS_BOOL MApi_AUDIO_ADVSOUND_SetASFParam(ADVSND_PARAM param, MS_S16 s16value1, MS_S16 s16value2)
1413 //s32Param[0] = return; s32param[1] = param; s32param[2] = s16value1; s32param[3] = s16value2
1414 #if 0
1415 // todo stanley
1416 ps32Src = (MS_S32*)pArgs;
1417 ps32Des = (MS_S32*)buffer_arg;
1418 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(MS_S32) * 4);
1419 u32Ret = UtopiaIoctl(pInstanceTmp,u32Cmd,(void*)buffer_arg);
1420 CPY_to_USER((void*)(&(ps32Src[0])), (void*)(&(ps32Des[0])), sizeof(MS_S32));
1421 #endif
1422 break;
1423 #if 0
1424 case MApi_CMD_AUDIO_ADVSOUND_GET_ASF_PARAM:
1425 //MS_U32 MApi_AUDIO_ADVSOUND_GetASFParam(ADVSND_GET_PARAM param)
1426 //u32Param[0] = return; u32param[1] = param;
1427 pu32Src = (MS_U32*)pArgs;
1428 pu32Des = (MS_U32*)buffer_arg;
1429 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(MS_U32) * 2);
1430 u32Ret = UtopiaIoctl(pInstanceTmp,u32Cmd,(void*)buffer_arg);
1431 CPY_to_USER((void*)(&(pu32Src[0])), (void*)(&(pu32Des[0])), sizeof(MS_U32));
1432 break;
1433 #endif
1434 case MApi_CMD_AUDIO_ADVSOUND_GetInfo:
1435 //MS_U32 MApi_AUDIO_ADVSOUND_GetInfo(AdvSound_GET_Type Type)
1436 //u32Param[0] = return; u32param[1] = Type;
1437 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SRS_ADVSOUND_GETINFO));
1438 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1439
1440 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1441 break;
1442
1443 case MApi_CMD_AUDIO_DBXTV_SetMode:
1444 //void MApi_DBXTV_SetMode(EN_DBXTV_TotSonMode totsonmode, EN_DBXTV_TotVolMode totvolmode, EN_DBXTV_TotSurMode totsurmode,MS_U32 enable)
1445 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_DBXTV_SETMODE));
1446 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1447
1448 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1449 break;
1450
1451 case MApi_CMD_AUDIO_SeInit:
1452 //void MApi_AUDIO_SeInit(void)
1453 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
1454 break;
1455
1456 case MApi_CMD_AUDIO_SetAdvSndSys:
1457 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(char)*AUDIO_STRING_NAME_MAX_LENGTH);
1458 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
1459 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SETADVSNDSYS));
1460 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_SETADVSNDSYS, UADP_SDT_P2N, eType, spt_AUDIO_tmp1);
1461 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
1462
1463 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1464 break;
1465
1466 /*case MApi_CMD_AUDIO_ADV_SOUND_SET:
1467 //void MApi_AUDIO_ADVSND_Set_Sound_Param(AdvSound_SET_Type Type, MS_U32 *pParam) // New api for cover below functions
1468 pADV_Sound_SetParamSrc = (PAUDIO_ST_ADV_SOUND_SETPARAM)pArgs;
1469 pADV_Sound_SetParamDes = (PAUDIO_ST_ADV_SOUND_SETPARAM)buffer_arg;
1470 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(AUDIO_ST_ADV_SOUND_SETPARAM));
1471
1472 pADV_Sound_SetParamDes->pParam = (MS_U32*)buffer_array0;
1473 CPY_FROM_USER((void*)buffer_array0, (void*)pADV_Sound_SetParamSrc->pParam, sizeof(MS_U32) * 2);
1474
1475 u32Ret = UtopiaIoctl(pInstanceTmp,u32Cmd,(void*)buffer_arg);
1476 break;*/
1477
1478 case MApi_CMD_AUDIO_Copy_Parameter:
1479 pCopyParamterSrc = (PAUDIO_ST_COPY_PARAMETER)pArgs;
1480 pCopyParamterDes = (PAUDIO_ST_COPY_PARAMETER)buffer_arg;
1481 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(AUDIO_ST_COPY_PARAMETER));
1482 // printf("\n AUDIO_ST_COPY_PARAMETER size:%d at kernel mode.\n", sizeof(AUDIO_ST_COPY_PARAMETER));
1483
1484 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], (pCopyParamterDes->parameter_size+pCopyParamterDes->type_size));
1485 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
1486 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_COPY_PARAMETER));
1487 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_COPY_PARAMETER, UADP_SDT_P2N, Parameter_ptr, spt_AUDIO_tmp1);
1488 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
1489 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1490 break;
1491 //=============================================================
1492 // AUDIO_KTV RELATIONAL API FUNCTION
1493 //=============================================================
1494 case MApi_CMD_AUDIO_KTV_OP:
1495 //MS_BOOL MApi_AUDIO_SetKTVInfo(AUDIO_KTV_MODEL modelType, AUDIO_KTV_PARAMTYPE paramType, MS_U32 param1, MS_U32 param2)
1496 //Status.eType = KTV_SET_INFO; Status.modelType = modelType; Status.paramType = AUD_KTV_ParamType1; Status.param1 = param1; Status.param2 = param2; Status.bRet = Return;
1497 pKTV_OpSrc = (PAUDIO_ST_KTV_OP)pArgs;
1498 pKTV_OpDes = (PAUDIO_ST_KTV_OP)buffer_arg;
1499 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(AUDIO_ST_KTV_OP));
1500
1501 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_KTV_OP));
1502 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1503
1504 if(pKTV_OpDes->eType == KTV_SET_INFO || pKTV_OpDes->eType == KTV_GET_INFO)
1505 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1506 else
1507 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1508 break;
1509
1510 case MApi_CMD_AUDIO_PlayMenuSound:
1511 //void MApi_AUDIO_PlayMenuSound(void)
1512 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
1513 break;
1514 //=============================================================
1515 // AUDIO_MM RELATIONAL API FUNCTION
1516 //=============================================================
1517 case MApi_CMD_AUDIO_SetCommAudioInfo:
1518 //MS_BOOL MApi_AUDIO_SetCommAudioInfo( Audio_COMM_infoType infoType, MS_U32 param1, MS_U32 param2 )
1519 //u32Param[0] = return u32param[1] = infoType; u32param[2] = param1; u32param[3] = param2;
1520 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_COMMAUDIOINFO));
1521 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_SET_COMMAUDIOINFO, UADP_SDT_AT, Param1, spt_MS_NULL);
1522 UADP_SDT_KIND(&spt_AUDIO_tmp[2], AUDIO_ST_SET_COMMAUDIOINFO, UADP_SDT_AT, Param2, spt_MS_NULL);
1523 UADP_SDT_FIN(&spt_AUDIO_tmp[3]);
1524
1525 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1526 break;
1527 #if 0
1528 case MApi_CMD_AUDIO_SetDecodeParam:
1529 //MS_BOOL MApi_ADEC_SetDecodeParam( AUDIO_DEC_ID DecId, Audio_ParamType paramType, MS_U32* Param )
1530 //Status.DecID = DecId; Status.paramType = paramType; Status.Param = Param;
1531 pSetDecodeParamSrc = (PAUDIO_ST_SETDECODEPARAM)pArgs;
1532 pSetDecodeParamDes = (PAUDIO_ST_SETDECODEPARAM)buffer_arg;
1533 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(AUDIO_ST_SETDECODEPARAM));
1534
1535 pSetDecodeParamDes->Param = (MS_U32*)buffer_array0;
1536 CPY_FROM_USER((void*)buffer_array0, (void*)pSetDecodeParamSrc->Param, sizeof(MS_U32) * 6);
1537
1538 u32Ret = UtopiaIoctl(pInstanceTmp,u32Cmd,(void*)buffer_arg);
1539 if(!(pSetDecodeParamSrc->paramType == Audio_ParamType_setXPCMDecParam))
1540 {
1541 CPY_to_USER((void*)(&(pSetDecodeParamSrc->bStatus)), (void*)(&(pSetDecodeParamDes->bStatus)), sizeof(MS_BOOL));
1542 }
1543 break;
1544 #endif
1545 case MApi_CMD_AUDIO_SetMpegInfo:
1546 //MS_BOOL _MApi_AUDIO_SetMpegInfo( Audio_MPEG_infoType infoType, MS_U32 param1, MS_U32 param2 );
1547 //u32Param[0] = return u32param[1] = infoType; u32param[2] = param1; u32param[3] = param2;
1548 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_MPEGINFO));
1549 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_SET_MPEGINFO, UADP_SDT_AT, Param1, spt_MS_NULL);
1550 UADP_SDT_KIND(&spt_AUDIO_tmp[2], AUDIO_ST_SET_MPEGINFO, UADP_SDT_AT, Param2, spt_MS_NULL);
1551 UADP_SDT_FIN(&spt_AUDIO_tmp[3]);
1552
1553 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1554 break;
1555
1556 case MApi_CMD_AUDIO_SetAC3Info:
1557 //MS_BOOL _MApi_AUDIO_SetAC3Info(Audio_AC3_infoType infoType, MS_U32 param1, MS_U32 param2 )
1558 //u32Param[0] = return u32param[1] = infoType; u32param[2] = param1; u32param[3] = param2;
1559 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_AC3INFO));
1560 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_SET_AC3INFO, UADP_SDT_AT, Param1, spt_MS_NULL);
1561 UADP_SDT_KIND(&spt_AUDIO_tmp[2], AUDIO_ST_SET_AC3INFO, UADP_SDT_AT, Param2, spt_MS_NULL);
1562 UADP_SDT_FIN(&spt_AUDIO_tmp[3]);
1563
1564 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1565 break;
1566
1567 case MApi_CMD_AUDIO_SetAC3PInfo:
1568 //MS_BOOL _MApi_AUDIO_SetAC3PInfo(Audio_AC3P_infoType infoType, MS_U32 param1, MS_U32 param2 );
1569 //u32Param[0] = return u32param[1] = infoType; u32param[2] = param1; u32param[3] = param2;
1570 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_AC3PINFO));
1571 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_SET_AC3PINFO, UADP_SDT_AT, Param1, spt_MS_NULL);
1572 UADP_SDT_KIND(&spt_AUDIO_tmp[2], AUDIO_ST_SET_AC3PINFO, UADP_SDT_AT, Param2, spt_MS_NULL);
1573 UADP_SDT_FIN(&spt_AUDIO_tmp[3]);
1574
1575 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1576 break;
1577
1578 case MApi_CMD_AUDIO_SetAACInfo:
1579 //MS_BOOL _MApi_AUDIO_SetAACInfo( Audio_AAC_infoType infoType, MS_U32 param1, MS_U32 param2 );
1580 //u32Param[0] = return u32param[1] = infoType; u32param[2] = param1; u32param[3] = param2;
1581 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_AACINFO));
1582 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_SET_AACINFO, UADP_SDT_AT, Param1, spt_MS_NULL);
1583 UADP_SDT_KIND(&spt_AUDIO_tmp[2], AUDIO_ST_SET_AACINFO, UADP_SDT_AT, Param2, spt_MS_NULL);
1584 UADP_SDT_FIN(&spt_AUDIO_tmp[3]);
1585
1586 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1587 break;
1588
1589 case MApi_CMD_AUDIO_SetWMAInfo:
1590 //MS_BOOL _MApi_AUDIO_SetWmaInfo(Audio_WMA_infoType infoType, MS_U32 param1, MS_U32 param2 );
1591 //u32Param[0] = return u32param[1] = infoType; u32param[2] = param1; u32param[3] = param2;
1592 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_WMAINFO));
1593 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_SET_WMAINFO, UADP_SDT_AT, Param1, spt_MS_NULL);
1594 UADP_SDT_KIND(&spt_AUDIO_tmp[2], AUDIO_ST_SET_WMAINFO, UADP_SDT_AT, Param2, spt_MS_NULL);
1595 UADP_SDT_FIN(&spt_AUDIO_tmp[3]);
1596
1597 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1598 break;
1599
1600 case MApi_CMD_AUDIO_SetDTSCommonCtrl:
1601 //MS_BOOL _MApi_AUDIO_SetDTSCommonCtrl( Audio_DTS_infoType infoType, Audio_DTS_CtrlType ctrl_type );
1602 //u32Param[0] = return u32param[1] = infoType u32param[2] = ctrl_type
1603 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_DTSCOMMONCTRL));
1604 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1605
1606 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1607 break;
1608
1609 case MApi_CMD_AUDIO_MM2_InitAesInfo:
1610 //MS_BOOL _MApi_AUDIO_MM2_initAesInfo( AUDIO_DEC_ID dec_id );
1611 //u32Param[0] = return u32param[1] = dec_id
1612 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_MM2_INITAESINFO));
1613 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1614
1615 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1616 break;
1617
1618 case MApi_CMD_AUDIO_SetXPCMParam:
1619 //void _MApi_AUDIO_SetXPCMParam(XPCM_TYPE audioType, MS_U8 channels, MS_U16 sampleRate, MS_U8 bitsPerSample, MS_U16 blockSize, MS_U16 samplePerBlock);
1620 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_XPCMPARAM));
1621 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1622
1623 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1624 break;
1625
1626 case MApi_CMD_AUDIO_GetCommAudioInfo:
1627 //long long MApi_AUDIO_GetCommAudioInfo( Audio_COMM_infoType infoType )
1628 //(long long)u64param[0] = return, u64param[1] = infoType;
1629 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_GET_COMMAUDIOINFO));
1630 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1631
1632 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1633 break;
1634
1635 case MApi_CMD_AUDIO_GetMpegInfo:
1636 //MS_U32 MApi_AUDIO_GetMpegInfo( Audio_MPEG_infoType infoType )
1637 //u32Param[0] = return u32param[1] = infoType;
1638 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_GET_MPEGINFO));
1639 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1640
1641 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1642 break;
1643
1644 case MApi_CMD_AUDIO_GetAC3Info:
1645 //MS_U32 MApi_AUDIO_GetAC3Info(Audio_AC3_infoType infoType )
1646 //u32Param[0] = return u32param[1] = infoType;
1647 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_GET_AC3INFO));
1648 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1649
1650 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1651 break;
1652
1653 case MApi_CMD_AUDIO_GetAC3PInfo:
1654 //MS_U32 MApi_AUDIO_GetAC3PInfo( Audio_AC3P_infoType infoType )
1655 //u32Param[0] = return u32param[1] = infoType;
1656 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_GET_AC3PINFO));
1657 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1658
1659 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1660 break;
1661
1662 case MApi_CMD_AUDIO_GetAACInfo:
1663 //MS_U32 MApi_AUDIO_GetAACInfo( Audio_AAC_infoType infoType )
1664 //u32Param[0] = return u32param[1] = infoType;
1665 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_GET_AACINFO));
1666 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1667
1668 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1669 break;
1670
1671 case MApi_CMD_AUDIO_GetWmaInfo:
1672 //MS_U32 MApi_AUDIO_GetWmaInfo( Audio_WMA_infoType infoType )
1673 //u32Param[0] = return u32param[1] = infoType;
1674 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_GET_WMAINFO));
1675 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1676
1677 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1678 break;
1679
1680 case MApi_CMD_AUDIO_GetDTSInfo:
1681 //MS_U32 MApi_AUDIO_GetDTSInfo( Audio_DTS_infoType infoType )
1682 //u32Param[0] = return u32param[1] = infoType;
1683 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_GET_DTSINFO));
1684 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1685
1686 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1687 break;
1688
1689 case MApi_CMD_AUDIO_XPCM_Param:
1690 //MS_U8 MApi_AUDIO_XPCM_Param(XPCM_TYPE audioType, MS_U8 channels, MS_U16 sampleRate, MS_U8 bitsPerSample, MS_U16 blockSize, MS_U16 samplePerBlock)
1691 //u32Param[0] = return u32param[1] = audioType; u32param[2] = channels, u32param[3] = sampleRate, u32param[4] = bitsPerSample, u32param[5] = blockSize, u32param[6] = samplePerBlock;
1692 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_XPCMPARAM));
1693 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1694
1695 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1696 break;
1697
1698
1699 case MApi_CMD_AUDIO_XPCM2_Param:
1700 //void MApi_AUDIO_XPCM2_Param(XPCM_TYPE audioType, MS_U8 channels, MS_U16 sampleRate, MS_U8 bitsPerSample, MS_U16 blockSize, MS_U16 samplePerBlock)
1701 //u32Param[0] = audioType u32param[1] = channels; u32param[2] = sampleRate, u32param[3] = bitsPerSample, u32param[4] = blockSize, u32param[5] = samplePerBlock
1702 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_XPCMPARAM));
1703 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1704
1705 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1706 break;
1707
1708 case MApi_CMD_AUDIO_XPCM2_CheckIntStatus:
1709 //MS_U16 MApi_AUDIO_XPCM2_CheckIntStatus(void)
1710 //u32Param[1] = return
1711 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1712 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1713
1714 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1715 break;
1716
1717 case MApi_CMD_AUDIO_RA8_Param:
1718 //MS_U8 MApi_AUDIO_RA8_Param(MS_U16 mNumCodecs, MS_U16 mSamples, MS_U16 mSampleRate, MS_U16* Channels, MS_U16* Regions, MS_U16* cplStart, MS_U16* cplQbits, MS_U16* FrameSize)
1719 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_RA8_Param));
1720 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_RA8_Param, UADP_SDT_P2N, pChannels, spt_MS_U16);
1721 UADP_SDT_KIND(&spt_AUDIO_tmp[2], AUDIO_ST_RA8_Param, UADP_SDT_P2N, pRegions, spt_MS_U16);
1722 UADP_SDT_KIND(&spt_AUDIO_tmp[3], AUDIO_ST_RA8_Param, UADP_SDT_P2N, pcplStart, spt_MS_U16);
1723 UADP_SDT_KIND(&spt_AUDIO_tmp[4], AUDIO_ST_RA8_Param, UADP_SDT_P2N, pcplQbits, spt_MS_U16);
1724 UADP_SDT_KIND(&spt_AUDIO_tmp[5], AUDIO_ST_RA8_Param, UADP_SDT_P2N, pFrameSize, spt_MS_U16);
1725 UADP_SDT_FIN(&spt_AUDIO_tmp[6]);
1726
1727 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1728 break;
1729
1730 case MApi_CMD_AUDIO_Init:
1731 //void MApi_AUDIO_Init(En_DVB_decSystemType enDecSystem)
1732 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1733 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1734
1735 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1736 break;
1737
1738 case MApi_CMD_AUDIO_StartDecode:
1739 //void MApi_AUDIO_StartDecode(void)
1740 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
1741 break;
1742
1743 case MApi_CMD_AUDIO_StartBroswe:
1744 //void MApi_AUDIO_StartBrowse(void)
1745 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
1746 break;
1747
1748 case MApi_CMD_AUDIO_StopDecode:
1749 //void MApi_AUDIO_StopDecode(void)
1750 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
1751 break;
1752
1753 case MApi_CMD_AUDIO_PauseDecode:
1754 //void MApi_AUDIO_PauseDecode(void)
1755 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
1756 break;
1757
1758 case MApi_CMD_AUDIO_CheckPlayDone:
1759 //MS_U8 MApi_AUDIO_CheckPlayDone(void)
1760 //u32param[1] = return;
1761 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1762 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1763
1764 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1765 break;
1766
1767 case MApi_CMD_AUDIO_GetResidualBufferSize:
1768 //MS_U16 MApi_AUDIO_GetResidualBufferSize(void)
1769 //u32param[1] = return;
1770 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1771 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1772
1773 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1774 break;
1775
1776 case MApi_CMD_AUDIO_GetPCMBufferSize:
1777 //MS_U16 MApi_AUDIO_GetPCMBufferSize(MS_U16 u16BitRate)
1778 //u32Param[0] = return; u32param[1] = u16BitRate;
1779 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_GET_PCMBUFFERSIZE));
1780 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1781
1782 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1783 break;
1784
1785 case MApi_CMD_AUDIO_GetPCMBufferSize2:
1786 //MS_U16 MApi_AUDIO_GetPCMBufferSize2(MS_U16 u16BitRate,MS_U16 u16SampleRate)
1787 //u32Param[0] = return u32param[1] = u16BitRate; u32param[2] = u16SampleRate;
1788 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_GET_PCMBUFFERSIZE2));
1789 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1790
1791 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1792 break;
1793
1794 case MApi_CMD_AUDIO_GetCurrentFrameNumber:
1795 //MS_U32 MApi_AUDIO_GetCurrentFrameNumber(void)
1796 //u32param[1] = return;
1797 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1798 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1799
1800 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1801 break;
1802
1803 case MApi_CMD_AUDIO_GetSampleRates:
1804 //MS_U16 MApi_AUDIO_GetSampleRate(void)
1805 //u32param[1] = return;
1806 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1807 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1808
1809 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1810 break;
1811
1812 case MApi_CMD_AUDIO_GetBitRates:
1813 //MS_U32 MApi_AUDIO_GetBitRate(void)
1814 //u32param[1] = return;
1815 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1816 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1817
1818 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1819 break;
1820
1821 case MApi_CMD_AUDIO_GetLayer:
1822 //Audio_MP3_LAYER MApi_AUDIO_GetLayer(void)
1823 //u32param[1] = return;
1824 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1825 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1826
1827 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1828 break;
1829
1830 case MApi_CMD_AUDIO_CheckInputRequest:
1831 //MS_U8 MApi_AUDIO_CheckInputRequest(MS_U32 *pU32WrtAddr, MS_U32 *pU32WrtBytes)
1832 //Status.u8Status = return; Status.pU32WrtAddr = pU32WrtAddr; Status.pU32WrtBytes = pU32WrtBytes;
1833 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_CHECK_INPUT_REQ));
1834 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_CHECK_INPUT_REQ, UADP_SDT_P2N, pPHYWrtAddr, spt_MS_PHY_AUDIO);
1835 UADP_SDT_KIND(&spt_AUDIO_tmp[2], AUDIO_ST_CHECK_INPUT_REQ, UADP_SDT_P2N, pU32WrtBytes, spt_MS_U32);
1836 UADP_SDT_FIN(&spt_AUDIO_tmp[3]);
1837
1838 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1839 break;
1840
1841 case MApi_CMD_AUDIO_SetInput:
1842 //void MApi_AUDIO_SetInput(void)
1843 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
1844 break;
1845
1846 case MApi_CMD_AUDIO_SetSampleRateIndex:
1847 //void MApi_AUDIO_SetSampleRateIndex(MS_U16 u16Index)
1848 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1849 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1850
1851 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1852 break;
1853
1854 case MApi_CMD_AUDIO_FileEndNotification:
1855 //void MApi_AUDIO_FileEndNotification(void)
1856 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
1857 break;
1858
1859 case MApi_CMD_AUDIO_FileEndDataHandle:
1860 //void MApi_AUDIO_FileEndDataHandle(MS_U32 u32DataLeft)
1861 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1862 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1863
1864 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1865 break;
1866
1867 case MApi_CMD_AUDIO_GetPlayTick:
1868 //MS_U32 MApi_AUDIO_GetPlayTick(void)
1869 //u32param[1] = return;
1870 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1871 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1872
1873 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1874 break;
1875
1876 case MApi_CMD_AUDIO_GetEsMEMCnt:
1877 //MS_U16 MApi_AUDIO_GetEsMEMCnt(void)
1878 //u32param[1] = return;
1879 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1880 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1881
1882 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1883 break;
1884
1885 case MApi_CMD_AUDIO_SetASFParm:
1886 //void MApi_AUDIO_SetASFParm(WMA_ASF_PARMTYPE parm_type, MS_U32 value)
1887 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_ASFPARM));
1888 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1889
1890 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1891 break;
1892
1893 case MApi_CMD_AUDIO_MM_SetInput:
1894 //void MApi_AUDIO_MM_SetInput (En_DVB_AudioDecoder AUDDecoderNo, MS_U8 u8IntTag)
1895 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_MM_SETINPUT));
1896 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1897
1898 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1899 break;
1900
1901 case MApi_CMD_AUDIO_MM_CheckPlayDone:
1902 //MS_U32 MApi_AUDIO_MM_CheckPlayDone (En_DVB_AudioDecoder AUDDecoderNo)
1903 //u32Param[0] = return u32param[1] = AUDDecoderNo;
1904 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_MM_CHECKPLAYDONE));
1905 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1906
1907 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1908 break;
1909
1910 case MApi_CMD_AUDIO_MM_CheckInputRequest:
1911 //MS_U8 MApi_AUDIO_MM_CheckInputRequest(En_DVB_AudioDecoder AUDDecoderNo, MS_U32 *pU32WrtAddr, MS_U32 *pU32WrtBytes)
1912 //Status.u8Status = return; Status.AUDDecoderNo = AUDDecoderNo;Status.pU32WrtAddr = pU32WrtAddr; Status.pU32WrtBytes = pU32WrtBytes;
1913 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_MM_CHECK_INPUT_REQ));
1914 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_MM_CHECK_INPUT_REQ, UADP_SDT_P2N, pPHYWrtAddr, spt_MS_PHY_AUDIO);
1915 UADP_SDT_KIND(&spt_AUDIO_tmp[2], AUDIO_ST_MM_CHECK_INPUT_REQ, UADP_SDT_P2N, pU32WrtBytes, spt_MS_U32);
1916 UADP_SDT_FIN(&spt_AUDIO_tmp[3]);
1917
1918 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1919 break;
1920
1921 case MApi_CMD_AUDIO_DmaReader_Init:
1922 //void MApi_AUDIO_DmaReader_Init(SAMPLE_RATE sampleRate)
1923 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1924 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1925
1926 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1927 break;
1928
1929 case MApi_CMD_AUDIO_DmaReader_AllInput_Init:
1930 //void MApi_AUDIO_DmaReader_AllInput_Init(void)
1931 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
1932 break;
1933
1934 case MApi_CMD_AUDIO_DmaReader_WritePCM:
1935 //MS_BOOL MApi_AUDIO_DmaReader_WritePCM(void* buffer, MS_U32 bytes)
1936 //Status.bStatus = return; Status.pBuffer = buffer; Status.bytes = bytes;
1937 pDMAReader_WritePCMSrc = (PAUDIO_ST_DMAREADER_WRITEPCM)pArgs;
1938 pDMAReader_WrtiePCMDes = (PAUDIO_ST_DMAREADER_WRITEPCM)buffer_arg;
1939 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(AUDIO_ST_DMAREADER_WRITEPCM));
1940
1941 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], pDMAReader_WrtiePCMDes->bytes);
1942 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
1943
1944 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_DMAREADER_WRITEPCM));
1945 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_DMAREADER_WRITEPCM, UADP_SDT_P2N, pBuffer, spt_AUDIO_tmp1);
1946 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
1947
1948 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1949 break;
1950
1951 case MApi_CMD_AUDIO_DmaWrite_Init:
1952 //void MApi_AUDIO_DmaWriter_Init(void)
1953 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,NULL,NULL,0);
1954 break;
1955
1956 case MApi_CMD_AUDIO_USBPCM_Enable:
1957 //void MApi_AUDIO_USBPCM_Enable(MS_BOOL bEnable)
1958 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1959 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1960
1961 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1962 break;
1963
1964 case MApi_CMD_AUDIO_USBPCM_SetFlag:
1965 //void MApi_AUDIO_USBPCM_SetFlag(MS_BOOL bEnable)
1966 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
1967 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1968
1969 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1970 break;
1971
1972 case MApi_CMD_AUDIO_USBPCM_GetFlag:
1973 //MS_BOOL MApi_AUDIO_USBPCM_GetFlag(void)
1974 //u32param[1] = return;
1975 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
1976 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1977
1978 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1979 break;
1980
1981 case MApi_CMD_AUDIO_USBPCM_GetMemInfo:
1982 //void MApi_AUDIO_USBPCM_GetMemInfo(AUDIO_UPLOAD_INFO *uploadInfo)
1983 //u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_ST_UPLOAD_INFO, NULL, buffer_arg,sizeof(buffer_arg));
1984 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_UPLOAD_INFO));
1985 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1986
1987 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
1988 break;
1989
1990 case MApi_CMD_AUDIO_PCMCapture_Init:
1991 //MS_BOOL MApi_AUDIO_PCMCapture_Init(const AUDIO_DEVICE_TYPE eID, const AUDIO_CAPTURE_SOURCE_TYPE eSource)
1992 // Status.bStatus = return; Status.eID = eID; Status.eSource = eSource;
1993 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_PCMCAPTURE_INIT));
1994 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
1995
1996 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
1997 break;
1998
1999 case MApi_CMD_AUDIO_PCMCapture_Start:
2000 //MS_BOOL MApi_AUDIO_PCMCapture_Start(const AUDIO_DEVICE_TYPE eID)
2001 // Status.bStatus = Return; Status.eID = eID;
2002 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_PCMCAPTURE_INIT));
2003 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2004
2005 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2006 break;
2007
2008 case MApi_CMD_AUDIO_PCMCapture_Stop:
2009 //MS_BOOL MApi_AUDIO_PCMCapture_Stop(const AUDIO_DEVICE_TYPE eID)
2010 // Status.bStatus = Return; Status.eID = eID;
2011 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_PCMCAPTURE_INIT));
2012 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2013
2014 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2015 break;
2016
2017 case MApi_CMD_AUDIO_PCMCapture_Read:
2018 //MS_BOOL MApi_AUDIO_PCMCapture_Read(const AUDIO_DEVICE_TYPE eID, void *buffer, const MS_U32 bytes)
2019 // Status.bStatus = Return;Status.eID = eID;Status.pBuffer = buffer;Status.bytes = bytes;
2020 pPCMCaptureReadSrc = (PAUDIO_ST_PCMCAPTURE_READ)pArgs;
2021 pPCMCaptureReadDes = (PAUDIO_ST_PCMCAPTURE_READ)buffer_arg;
2022 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(pPCMCaptureReadDes->bytes));
2023
2024 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(pPCMCaptureReadDes->bytes));
2025 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
2026
2027 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_PCMCAPTURE_READ));
2028 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_PCMCAPTURE_READ, UADP_SDT_P2N, pBuffer,spt_AUDIO_tmp1);
2029 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
2030
2031 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2032 break;
2033
2034 case MApi_CMD_AUDIO_VoIP_Config:
2035 //MS_BOOL MApi_AUDIO_VoIP_Config(AUDIO_VoIP_CONFIG_TYPE configType, MS_U32 param1, MS_U32 param2)
2036 //u32Param[0] = return u32param[1] = configType; u32param[2] = param1; u32param[3] = param2;
2037 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_VOIP_CONFIG));
2038 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2039
2040 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2041 break;
2042
2043 case MApi_CMD_AUDIO_ALSA_Check:
2044 //MS_BOOL MApi_AUDIO_ALSA_Check(void)
2045 //u32param[1] = Return;
2046 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
2047 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2048
2049 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2050 break;
2051
2052 case MApi_CMD_AUDIO_ALSA_Enable:
2053 //MS_BOOL MApi_AUDIO_ALSA_Enable(MS_BOOL bEnable)
2054 //u32Param[0] = return u32param[1] = bEnable;
2055 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_ALSA_ENABLE));
2056 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2057
2058 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2059 break;
2060
2061 case MApi_CMD_AUDIO_UNI_CheckDecodeDone:
2062 //MS_BOOL MApi_AUDIO_UNI_CheckDecodeDone(MS_U32 *pU32WrtAddr, MS_U32 *pU32WrtBytes)
2063 // Status.bStatus = return ;Status.pU32WrtAddr = pU32WrtAddr; Status.pU32WrtBytes = pU32WrtBytes;
2064 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_UNI_CHECK_DECODEDONE));
2065 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_UNI_CHECK_DECODEDONE, UADP_SDT_P2N, pPHYWrtAddr, spt_MS_PHY_AUDIO);
2066 UADP_SDT_KIND(&spt_AUDIO_tmp[2], AUDIO_ST_UNI_CHECK_DECODEDONE, UADP_SDT_P2N, pU32WrtBytes, spt_MS_U32);
2067 UADP_SDT_FIN(&spt_AUDIO_tmp[3]);
2068
2069 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2070 break;
2071
2072 case MApi_CMD_AUDIO_UNI_SetOutput:
2073 //void MApi_AUDIO_UNI_SetOutput (MS_U32 PCMOutCnt)
2074 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
2075 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2076
2077 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
2078 break;
2079
2080 case MApi_CMD_AUDIO_UNI_Set_PCMInputWriteAddr:
2081 //void MApi_AUDIO_UNI_Set_PCMInputWriteAddr (MS_U32 PCMIn_Wptr)
2082 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(MS_U32));
2083 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2084
2085 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,NULL,NULL,0);
2086 break;
2087
2088 case MApi_CMD_AUDIO_UNI_Get_OutPCMLevel:
2089 //MS_U32 MApi_AUDIO_UNI_Get_OutPCMLevel (void)
2090 //u32param[1] = return
2091 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(u32param2_t));
2092 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2093
2094 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2095 break;
2096
2097 case MApi_CMD_AUDIO_RingTask:
2098 //void MApi_AUDIO_RingTask(audioRingTask* auRingTask)
2099 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(audioBufMonitor));
2100 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
2101
2102 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(audioRingTask));
2103 UADP_SDT_KIND(&spt_AUDIO_tmp[1], audioRingTask, UADP_SDT_ES, _stBufInfo, spt_AUDIO_tmp1);
2104 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
2105
2106 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2107 break;
2108
2109 case MApi_CMD_AUDIO_Ring_DataTransfer:
2110 //void MApi_AUDIO_Ring_DataTransfer(audioRingTask* auRingTask, audioRingTask* auRingTask_1)
2111 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(audioBufMonitor));
2112 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
2113
2114 UADP_SDT_BGN(&spt_AUDIO_tmp2[0], sizeof(audioRingTask));
2115 UADP_SDT_KIND(&spt_AUDIO_tmp2[1], audioRingTask, UADP_SDT_ES, _stBufInfo, spt_AUDIO_tmp1);
2116 UADP_SDT_FIN(&spt_AUDIO_tmp2[2]);
2117
2118 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_RING_DATA_TRANS));
2119 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_RING_DATA_TRANS, UADP_SDT_P2N, pauRingTask, spt_AUDIO_tmp2);
2120 UADP_SDT_KIND(&spt_AUDIO_tmp[2], AUDIO_ST_RING_DATA_TRANS, UADP_SDT_P2N, pauRingTask_1, spt_AUDIO_tmp2);
2121 UADP_SDT_FIN(&spt_AUDIO_tmp[3]);
2122
2123 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2124 break;
2125
2126 case MApi_CMD_AUDIO_MM2_CheckAesInfo:
2127 //MS_BOOL MApi_AUDIO_MM2_checkAesInfo( AUDIO_DEC_ID dec_id, AES_INFO *aes_info )
2128 // Status.bStatus = FALSE; Status.dec_id = dec_id; Status.paes_info = aes_info;
2129 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(AES_INFO));
2130 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
2131
2132 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_MM2_CHECKAESINFO));
2133 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_MM2_CHECKAESINFO, UADP_SDT_P2N, paes_info, spt_AUDIO_tmp1);
2134 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
2135
2136 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2137 break;
2138
2139 case MApi_CMD_AUDIO_MM2_InputAesFinished:
2140 //MS_BOOL MApi_AUDIO_MM2_inputAesFinished( AUDIO_DEC_ID dec_id, MS_U32 es_size, MS_BOOL ptsExist, MS_U64 pts )
2141 // Status.bStatus = Return; Status.dec_id = dec_id; Status.es_size = es_size; Status.ptsExist = ptsExist; Status.pts = pts;
2142 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_MM2_INPUTAES_FINISH));
2143 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2144
2145 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2146 break;
2147
2148 case MApi_CMD_AUDIO_SetAudioParam2:
2149 //MS_BOOL MApi_AUDIO_SetAudioParam2( AUDIO_DEC_ID DecId, Audio_ParamType paramType, MS_U32 Param )
2150 //u32Param[0] = return u32param[1] = DecId; u32param[2] = paramType; u32param[3] = Param;
2151 pSetAudioParam2Src = (PAUDIO_ST_SET_AUDIOPARAM2)pArgs;
2152 pSetAudioParam2Des = (PAUDIO_ST_SET_AUDIOPARAM2)buffer_arg;
2153 CPY_FROM_USER((void *)&pSetAudioParam2Des->eParamType, (void *)&pSetAudioParam2Src->eParamType, sizeof(MS_U32));
2154
2155 if (pSetAudioParam2Des->eParamType == Audio_ParamType_CommonCmd)
2156 {
2157 UADP_SDT_BGN(&spt_AUDIO_tmp2[0], sizeof(AUDIO_OUTPUT_DEVICE_SELECTION_t));
2158 UADP_SDT_FIN(&spt_AUDIO_tmp2[1]);
2159
2160 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(AUDIO_COMMON_CMD_t));
2161 UADP_SDT_KIND(&spt_AUDIO_tmp1[1], AUDIO_COMMON_CMD_t, UADP_SDT_P2N, pData, spt_AUDIO_tmp2);
2162 UADP_SDT_FIN(&spt_AUDIO_tmp1[2]);
2163
2164 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_AUDIOPARAM2));
2165 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_SET_AUDIOPARAM2, UADP_SDT_P2N, Param, spt_AUDIO_tmp1);
2166 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
2167 }
2168 else
2169 {
2170 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_SET_AUDIOPARAM2));
2171 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_SET_AUDIOPARAM2, UADP_SDT_AT, Param, spt_MS_NULL);
2172 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
2173 }
2174
2175 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2176 break;
2177
2178 case MApi_CMD_AUDIO_GetAudioInfo2:
2179 pGetAudioInfo2Src = (PAUDIO_ST_GETAUDIOINFO2)pArgs;
2180 pGetAudioInfo2Des = (PAUDIO_ST_GETAUDIOINFO2)buffer_arg;
2181 CPY_FROM_USER((void *)&pGetAudioInfo2Des->infoType, (void *)&pGetAudioInfo2Src->infoType, sizeof(MS_U32));
2182
2183 if (pGetAudioInfo2Des->infoType == Audio_infoType_esBuf_req) {
2184 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(Audio_MM_Data_Request));
2185 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
2186 }
2187 else if (pGetAudioInfo2Des->infoType == Audio_infoType_UNI_PCM1_Info)
2188 {
2189 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(Audio_MM_PCM_Info));
2190 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
2191 }
2192 else if (pGetAudioInfo2Des->infoType == Audio_infoType_hashkey)
2193 {
2194 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(Audio_Hashkey_Info));
2195 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
2196 }
2197 else
2198 {
2199 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(MS_U32));
2200 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
2201 }
2202
2203 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_GETAUDIOINFO2));
2204 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_GETAUDIOINFO2, UADP_SDT_P2N, pInfo, spt_AUDIO_tmp1);
2205 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
2206
2207 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2208 break;
2209
2210 case MApi_CMD_AUDIO_GetDDRInfo:
2211 //MS_U32 MApi_AUDIO_GetDDRInfo(AUDIO_DEC_ID DecId, EN_AUDIO_DDRINFO DDRInfo)
2212 //u32Param[0] = return u32param[1] = DecId; u32param[2] = DDRInfo;
2213 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_GET_DDRINFO));
2214 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2215
2216 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2217 break;
2218
2219 case MApi_CMD_AUDIO_GetCaps:
2220 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_GETCAPS));
2221 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_GETCAPS, UADP_SDT_P2N, pu32Caps, spt_MS_U32);
2222 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
2223
2224 u32Ret = UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AUDIO_tmp,spt_AUDIO_tmp,NULL,0);
2225 break;
2226
2227 case MApi_CMD_AUDIO_PcmOpen:
2228 {
2229 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(AUDIO_PCM_INFO_t));
2230 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
2231
2232 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_PCM_OPEN));
2233 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_PCM_OPEN, UADP_SDT_P2N, pData, spt_AUDIO_tmp1);
2234 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
2235
2236 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2237 break;
2238 }
2239
2240 case MApi_CMD_AUDIO_PcmClose:
2241 {
2242 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_PCM_CLOSE));
2243 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2244
2245 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2246 break;
2247 }
2248
2249 case MApi_CMD_AUDIO_PcmStart:
2250 {
2251 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_PCM_START));
2252 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2253
2254 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2255 break;
2256 }
2257
2258 case MApi_CMD_AUDIO_PcmStop:
2259 {
2260 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_PCM_STOP));
2261 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2262
2263 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2264 break;
2265 }
2266
2267 case MApi_CMD_AUDIO_PcmSet:
2268 {
2269 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_PCM_SET));
2270 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_PCM_SET, UADP_SDT_P2N, pData, spt_MS_U32);
2271 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
2272
2273 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2274 break;
2275 }
2276
2277 case MApi_CMD_AUDIO_PcmGet:
2278 {
2279 pPcmGetSrc = (PAUDIO_ST_PCM_GET)pArgs;
2280 pPcmGetDes = (PAUDIO_ST_PCM_GET)buffer_arg;
2281 CPY_FROM_USER((void*)buffer_arg, pArgs, sizeof(PAUDIO_ST_PCM_GET));
2282
2283 if (pPcmGetDes->u32Cmd == AUDIO_PCM_CMD_ALL)
2284 {
2285 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], sizeof(AUDIO_PCM_INFO_t));
2286 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
2287
2288 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_PCM_GET));
2289 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_PCM_GET, UADP_SDT_P2N, pData, spt_AUDIO_tmp1);
2290 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
2291 }
2292 else
2293 {
2294 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_PCM_GET));
2295 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_PCM_GET, UADP_SDT_P2N, pData, spt_MS_U32);
2296 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
2297 }
2298
2299 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2300 break;
2301 }
2302
2303 case MApi_CMD_AUDIO_PcmRead:
2304 {
2305 pPcmReadSrc = (PAUDIO_ST_PCM_READ)pArgs;
2306 pPcmReadDes = (PAUDIO_ST_PCM_READ)buffer_arg;
2307 CPY_FROM_USER((void *)&pPcmReadDes->u32Size, (void *)&pPcmReadSrc->u32Size, sizeof(MS_U32));
2308
2309 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], pPcmReadDes->u32Size);
2310 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
2311
2312 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_PCM_READ));
2313 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_PCM_READ, UADP_SDT_P2N, pBuf, spt_AUDIO_tmp1);
2314 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
2315
2316 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2317 break;
2318 }
2319
2320 case MApi_CMD_AUDIO_PcmWrite:
2321 {
2322 pPcmWriteSrc = (PAUDIO_ST_PCM_WRITE)pArgs;
2323 pPcmWriteDes = (PAUDIO_ST_PCM_WRITE)buffer_arg;
2324 CPY_FROM_USER((void *)&pPcmWriteDes->u32Size, (void *)&pPcmWriteSrc->u32Size, sizeof(MS_U32));
2325
2326 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], pPcmWriteDes->u32Size);
2327 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
2328
2329 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_PCM_WRITE));
2330 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_PCM_WRITE, UADP_SDT_P2N, pBuf, spt_AUDIO_tmp1);
2331 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
2332
2333 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2334 break;
2335 }
2336
2337 case MApi_CMD_AUDIO_PcmFlush:
2338 {
2339 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_PCM_FLUSH));
2340 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2341
2342 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2343 break;
2344 }
2345
2346 case MApi_CMD_AUDIO_EncoderOpen:
2347 {
2348 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], AUDIO_STRNAME_LENGTH);
2349 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
2350
2351 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_ENCODER_OPEN));
2352 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_ENCODER_OPEN, UADP_SDT_P2N, pName, spt_AUDIO_tmp1);
2353 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
2354
2355 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2356 break;
2357 }
2358
2359 case MApi_CMD_AUDIO_EncoderClose:
2360 {
2361 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_ENCODER_CLOSE));
2362 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2363
2364 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2365 break;
2366 }
2367
2368 case MApi_CMD_AUDIO_EncoderStart:
2369 {
2370 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_ENCODER_START));
2371 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2372
2373 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2374 break;
2375 }
2376
2377 case MApi_CMD_AUDIO_EncoderStop:
2378 {
2379 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_ENCODER_STOP));
2380 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2381
2382 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2383 break;
2384 }
2385
2386 case MApi_CMD_AUDIO_EncoderIoctl:
2387 {
2388 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], AUDIO_STRCMD_LENGTH);
2389 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
2390
2391 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_ENCODER_IOCTL));
2392 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_ENCODER_IOCTL, UADP_SDT_P2N, pCmd, spt_AUDIO_tmp1);
2393 UADP_SDT_KIND(&spt_AUDIO_tmp[2], AUDIO_ST_ENCODER_IOCTL, UADP_SDT_P2N, pData, spt_MS_U32);
2394 UADP_SDT_FIN(&spt_AUDIO_tmp[3]);
2395
2396 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2397 break;
2398 }
2399
2400 case MApi_CMD_AUDIO_EncoderRead:
2401 {
2402 pEncoderReadSrc = (PAUDIO_ST_ENCODER_READ)pArgs;
2403 pEncoderReadDes = (PAUDIO_ST_ENCODER_READ)buffer_arg;
2404 CPY_FROM_USER((void *)&pEncoderReadDes->u32Size, (void *)&pEncoderReadSrc->u32Size, sizeof(MS_U32));
2405
2406 UADP_SDT_BGN(&spt_AUDIO_tmp1[0], pEncoderReadDes->u32Size);
2407 UADP_SDT_FIN(&spt_AUDIO_tmp1[1]);
2408
2409 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_ENCODER_READ));
2410 UADP_SDT_KIND(&spt_AUDIO_tmp[1], AUDIO_ST_ENCODER_READ, UADP_SDT_P2N, pBuf, spt_AUDIO_tmp1);
2411 UADP_SDT_FIN(&spt_AUDIO_tmp[2]);
2412
2413 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2414 break;
2415 }
2416
2417 case MApi_CMD_AUDIO_EncoderFlush:
2418 {
2419 UADP_SDT_BGN(&spt_AUDIO_tmp[0], sizeof(AUDIO_ST_ENCODER_FLUSH));
2420 UADP_SDT_FIN(&spt_AUDIO_tmp[1]);
2421
2422 u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_AUDIO_tmp, spt_AUDIO_tmp, NULL, 0);
2423 break;
2424 }
2425
2426 default:
2427 AUDIO_ADP_MSG("AUDIOADP - Unknown commend!!!\n");
2428 break;
2429 }
2430
2431
2432 return u32Ret;
2433
2434 // return UtopiaIoctl(pModuleDDI->pInstant,u32Cmd,arg);
2435 }
2436
2437 #endif
2438