xref: /utopia/UTPA2-700.0.x/modules/audio/api/audio/mapiAUDIO.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2010 - 2012 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) 2008-2010 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.c
98 /// @brief  Demux (DMX) API Interface
99 /// @author MStar Semiconductor,Inc.
100 /// @attention
101 ///////////////////////////////////////////////////////////////////////////////////////////////////
102 
103 
104 //-------------------------------------------------------------------------------------------------
105 //  Include Files
106 //-------------------------------------------------------------------------------------------------
107 #include "MsTypes.h"
108 //#include <stdio.h>
109 #ifdef MSOS_TYPE_LINUX_KERNEL
110 #include <linux/string.h>
111 #else
112 #include <string.h>
113 #endif
114 
115 #include "apiAUDIO.h"
116 #include "apiAUDIO_v2.h"
117 #include "apiAUDIO_private.h"
118 #include "utopia.h"
119 #include "utopia_dapi.h"
120 #include "MsOS.h"
121 
122 #include "drvAUDIO_if.h"
123 #include "drvAUDIO.h"
124 
125 #include "../drv/audio/internal/drvAUDIO_internal.h"
126 
127 //extern void SerPrintf(char *fmt,...);
128 
129 //-------------------------------------------------------------------------------------------------
130 //  Driver Compiler Options
131 //-------------------------------------------------------------------------------------------------
132 
133 //-------------------------------------------------------------------------------------------------
134 //  Global Variables
135 //-------------------------------------------------------------------------------------------------
136 
137 //-------------------------------------------------------------------------------------------------
138 //  Local Defines
139 //-------------------------------------------------------------------------------------------------
140 #define AUDIO_MODULE_RESOURCE_AMOUNT    1
141 
142 //-------------------------------------------------------------------------------------------------
143 //  Extern Variables
144 //-------------------------------------------------------------------------------------------------
145 extern AUDIO_SHARED_VARS2 * g_AudioVars2;
146 
147 //-------------------------------------------------------------------------------------------------
148 //  Local Structures
149 //-------------------------------------------------------------------------------------------------
150 enum
151 {
152     AUDIO_POOL_ID_AUDIO0,
153 } eAUDIOPoolID;
154 
155 //-------------------------------------------------------------------------------------------------
156 //  Local Variables
157 //-------------------------------------------------------------------------------------------------
158 
159 #define PATCH_SN
160 //-------------------------------------------------------------------------------------------------
161 //  Local Functions
162 //-------------------------------------------------------------------------------------------------
_AUDIOProbeResourceToUtopia(AUDIO_INSTANT_PRIVATE * _pInstantAudio)163 static MS_BOOL _AUDIOProbeResourceToUtopia(AUDIO_INSTANT_PRIVATE *_pInstantAudio)
164 {
165     //============================================================
166     // AUDIO_SYSTEM RELATIONAL API FUNCTION
167     //============================================================
168     _pInstantAudio->fpAUDIOInitialize =                                 _MApi_AUDIO_Initialize;
169     _pInstantAudio->fpAUDIOSetPowerOn =                                 _MApi_AUDIO_SetPowerOn;
170 #ifdef PATCH_SN
171     _pInstantAudio->fpAUDIOGetDSPMadBaseAddr =                          _MDrv_AUDIO_GetDspMadBaseAddr;
172     _pInstantAudio->fpAUDIOSetDSPBaseAddr =                             _MDrv_AUDIO_SetDspBaseAddr;
173     _pInstantAudio->fpAUDIOWriteDecMailBox =                            _MDrv_AUDIO_WriteDecMailBox;
174     _pInstantAudio->fpAUDIOTriggerSifPLL =                              _MDrv_AUDIO_TriggerSifPLL;
175 #else
176     _pInstantAudio->fpAUDIOSetDSPBaseAddr =                             _MApi_AUDIO_SetDspBaseAddr;
177     _pInstantAudio->fpAUDIOGetDSPMadBaseAddr =                          _MApi_AUDIO_GetDspMadBaseAddr;
178     _pInstantAudio->fpAUDIOWriteDecMailBox =                            _MApi_AUDIO_WriteDecMailBox;
179     _pInstantAudio->fpAUDIOTriggerSifPLL =                              _MApi_AUDIO_TriggerSifPLL;
180 #endif
181     _pInstantAudio->fpAUDIOMonitor =                                    _MApi_Audio_Monitor;
182     _pInstantAudio->fpAUDIOSetSystemInfo =                              _MApi_AUDIO_SetSystemInfo;
183     //_pInstantAudio->fpAUDIOASFDataToDDR =                               _MApi_AUDIO_ASF_Data_To_DDR;
184     //_pInstantAudio->fpAUDIOR2DebugMSG =                                 _MApi_AUDIO_R2_DEBUG_MSG;
185     //_pInstantAudio->fpAUDIOR2DDRLetencyMSG =                            _MApi_AUDIO_R2_DDR_LATENCY_MSG;
186     _pInstantAudio->fpAUDIOSetOutConnectivity =                         _MApi_AUDIO_SetOutConnectivity;
187     _pInstantAudio->fpAUDIOSetPathInfo =                                _MApi_AUDIO_SetPathInfo;
188     _pInstantAudio->fpAUDIOGetPathInfo =                                _MApi_AUDIO_GetPathInfo;
189     _pInstantAudio->fpAUDIOSetOutputInfo =                              _MApi_AUDIO_SetOutputInfo;
190     _pInstantAudio->fpAUDIOSetSourceInfo =                              _MApi_AUDIO_SetSourceInfo;
191     _pInstantAudio->fpAUDIOInputSwitch =                                _MApi_AUDIO_InputSwitch;
192     //_pInstantAudio->fpAUDIOSetInputScale =                              _MApi_AUDIO_SetInputScale;
193     //_pInstantAudio->fpAUDIOSetScartScale =                              _MApi_AUDIO_SetScartScale;
194     //_pInstantAudio->fpAUDIOAudysseyVXTSetThreshLevelTable =             _MApi_AUDIO_Audyssey_VXT_Set_THRESH_LEVEL_TABLE;
195     //_pInstantAudio->fpAUDIOSPDIFSetChannelStauts =                      _MApi_AUDIO_SPDIF_SetChannelStatus;
196     //_pInstantAudio->fpAUDIOSPDIFGetChannelStatus =                      _MApi_AUDIO_SPDIF_GetChannelStatus;
197 
198     _pInstantAudio->fpAUDIOSetDataCaptureSource =                       _MApi_AUDIO_SetDataCaptureSource;
199     _pInstantAudio->fpAUDIOSetOutputSourceInfo =                        _MApi_AUDIO_SetOutputSourceInfo;
200     _pInstantAudio->fpAUDIOGetOutputSourceInfo =                        _MApi_AUDIO_GetOutputSourceInfo;
201     _pInstantAudio->fpAUDIOReadMailBox =                                _MApi_AUDIO_ReadMailBox;
202     _pInstantAudio->fpAUDIOWriteMailBox =                               _MApi_AUDIO_WriteMailBox;
203     _pInstantAudio->fpAUDIOFwTriggerDsp =                               _MApi_AUDIO_FwTriggerDSP;
204     _pInstantAudio->fpAUDIOSetFwStatus =                                _MApi_AUDIO_SetFwStatus;
205     _pInstantAudio->fpAUDIOExitAudioSystem =                            _MApi_AUDIO_ExitAudioSystem;
206     _pInstantAudio->fpAUDIORebootDSP =                                  _MApi_AUDIO_RebootDsp;
207     _pInstantAudio->fpAUDIOSendIntrupt =                                _MApi_AUDIO_SendIntrupt;
208     _pInstantAudio->fpAUDIOI2SSetMode =                                 _MApi_AUDIO_I2S_SetMode;
209     _pInstantAudio->fpAUDIOWritePreInitTable =                          _MApi_AUDIO_WritePreInitTable;
210     _pInstantAudio->fpAUDIOEnaEarphoneLowPowerStage =                   _MApi_AUDIO_EnaEarphone_LowPower_Stage;
211     _pInstantAudio->fpAUDIOEnaEarphoneHighDrivingStage =                _MApi_AUDIO_EnaEarphone_HighDriving_Stage;
212 
213     _pInstantAudio->fpAUDIOSuspend =                                 _MApi_AUDIO_Suspend;
214     _pInstantAudio->fpAUDIOResume =                                 _MApi_AUDIO_Resume;
215 
216     //=============================================================
217     // AUDIO_SOUND RELATIONAL API FUNCTION
218     //=============================================================
219     _pInstantAudio->fpSNDProcessEnable =                                _MApi_SND_ProcessEnable;
220     _pInstantAudio->fpSNDSetParam1 =                                    _MApi_SND_SetParam1;
221     _pInstantAudio->fpSNDGetParam1 =                                    _MApi_SND_GetParam1;
222     _pInstantAudio->fpAUDIOSoundSetParam =                              _MApi_AUDIO_SOUND_SetParam;
223     _pInstantAudio->fpAUDIOSetAbsoluteVolume =                          _MApi_AUDIO_SetAbsoluteVolume;
224     //_pInstantAudio->fpAUDIOSetPreScale =                                _MApi_AUDIO_SetPreScale;
225     //_pInstantAudio->fpAUDIOSetMute =                                    _MApi_AUDIO_SetMute;
226     _pInstantAudio->fpAUDIOSourceConnect =                              _MApi_AUDIO_SourceConnect;
227     //_pInstantAudio->fpAUDIOSetBalance =                                 _MApi_AUDIO_SetBalance;
228     //_pInstantAudio->fpAUDIOEnableEQ =                                   _MApi_AUDIO_EnableEQ;
229     //_pInstantAudio->fpAUDIOEnableTone =                                 _MApi_AUDIO_EnableTone;
230     //_pInstantAudio->fpAUDIOEnableAutoVolume =                           _MApi_AUDIO_EnableAutoVolume;
231     //_pInstantAudio->fpAUDIOEnableSurround =                             _MApi_AUDIO_EnableSurround;
232     //_pInstantAudio->fpAUDIOEnableBalance =                              _MApi_AUDIO_EnableBalance;
233     _pInstantAudio->fpAUDIOSetDynamicBass =                             _MApi_AUDIO_SetDynamicBass;
234     //_pInstantAudio->fpAUDIOSetBass =                                    _MApi_AUDIO_SetBass;
235     //_pInstantAudio->fpAUDIOAbsoluteBass =                               _MApi_AUDIO_AbsoluteBass;
236     //_pInstantAudio->fpAUDIOSetTreble =                                  _MApi_AUDIO_SetTreble;
237     _pInstantAudio->fpAUDIOAbsoluteTreble =                             _MApi_AUDIO_AbsoluteTreble;
238     //_pInstantAudio->fpAUDIOSetEq =                                      _MApi_AUDIO_SetEq;
239     _pInstantAudio->fpAUDIOSetEq7band =                                 _MApi_AUDIO_SetEq_7band;
240     _pInstantAudio->fpAUDIOSetAvcThreshold =                            _MApi_AUDIO_SetAvcThreshold;
241     _pInstantAudio->fpAUDIOSetAvcMode =                                 _MApi_AUDIO_SetAvcMode;
242     _pInstantAudio->fpAUDIOSetAvcAT =                                   _MApi_AUDIO_SetAvcAT;
243     _pInstantAudio->fpAUDIOSetAvcRT =                                   _MApi_AUDIO_SetAvcRT;
244     _pInstantAudio->fpAUDIOSetBufferProcess =                           _MApi_AUDIO_SetBufferProcess;
245     _pInstantAudio->fpAUDIOSetSurroundXA =                              _MApi_AUDIO_SetSurroundXA;
246     _pInstantAudio->fpAUDIOSetSurroundXB =                              _MApi_AUDIO_SetSurroundXB;
247     _pInstantAudio->fpAUDIOSetSurroundXK =                              _MApi_AUDIO_SetSurroundXK;
248     _pInstantAudio->fpAUDIOSetSurroundLPFGain =                         _MApi_AUDIO_SetSurroundLPFGain;
249     _pInstantAudio->fpAUDIOConvertVolumeUnit =                          _MApi_AUDIO_ConvertVolumeUnit;
250     _pInstantAudio->fpAUDIOSetPEQCoef =                                 _MApi_AUDIO_SetPEQCoef;
251     //_pInstantAudio->fpAUDIOEnablePEQ =                                  _MApi_AUDIO_EnablePEQ;
252     _pInstantAudio->fpAUDIOEnableDcRemove =                             _MApi_AUDIO_EnableDcRemove;
253 
254     //============================================================
255     // AUDIO_DTV RELATIONAL API FUNCTION
256     //============================================================
257     _pInstantAudio->fpAUDIOReleaseDecodeSystem =                        _MApi_AUDIO_ReleaseDecodeSystem;
258     _pInstantAudio->fpAUDIOSetDecodeSystem =                            _MApi_AUDIO_SetDecodeSystem;
259     _pInstantAudio->fpAUDIOGetDecodeSystem =                            _MApi_AUDIO_GetDecodeSystem;
260     _pInstantAudio->fpAUDIOSetDecodeCmd =                               _MApi_AUDIO_SetDecodeCmd;
261     _pInstantAudio->fpAUDIOOpenDecodeSystem =                           _MApi_AUDIO_OpenDecodeSystem;
262     _pInstantAudio->fpAUDIOSetSystem =                                  _MApi_AUDIO_SetSystem;
263     _pInstantAudio->fpAUDIOGetDecSysSupportStatus =                     _MApi_AUDIO_GetDecSysSupportStatus;
264     _pInstantAudio->fpAUDIOIsMadLock =                                  _MApi_AUDIO_IsMadLock;
265     _pInstantAudio->fpAUDIOGetDecStatus =                               _MApi_AUDIO_GetDecStatus;
266     _pInstantAudio->fpAUDIOGetCommand =                                 _MApi_AUDIO_GetCommand;
267     _pInstantAudio->fpAUDIOSetCommand =                                 _MApi_AUDIO_SetCommand;
268     _pInstantAudio->fpAUDIOGetMADLock =                                 _MApi_AUDIO_GetMAD_LOCK;
269     _pInstantAudio->fpAUDIOSetADOutputMode =                            _MApi_AUDIO_SetADOutputMode;
270     _pInstantAudio->fpAUDIOSetADAbsoluteVoluem =                        _MApi_AUDIO_SetADAbsoluteVolume;
271     //_pInstantAudio->fpAUDIOSetMainVolumeForAD =                         _MApi_AUDIO_SetMainVolumeForAD;
272     _pInstantAudio->fpAUDIOADSetMute =                                  _MApi_AUDIO_ADSetMute;
273 
274     //============================================================
275     // AUDIO_PVR RELATED FUNCTIONS
276     //============================================================
277     _pInstantAudio->fpAUDIOSetEncInit =                                 _MApi_AUDIO_SetEncInit;
278     _pInstantAudio->fpAUDIOSetEncCommand =                              _MApi_AUDIO_SetEncCommand;
279     _pInstantAudio->fpAUDIOGetEncodeFrameInfo =                         _MApi_AUDIO_GetEncodeFrameInfo;
280     _pInstantAudio->fpAUDIOGetEncodeDoneFlag =                          _MApi_AUDIO_GetEncodeDoneFlag;
281 
282     //============================================================
283     // AUDIO_ATV RELATIONAL API FUNCTION
284     //============================================================
285     _pInstantAudio->fpAUDIOSIFSetStandard =                             _MApi_AUDIO_SIF_SetStandard;
286     _pInstantAudio->fpAUDIOSIFGetSoundMode =                            _MApi_AUDIO_SIF_GetSoundMode;
287     _pInstantAudio->fpAUDIOSIFSetSoundMode =                            _MApi_AUDIO_SIF_SetSoundMode;
288     _pInstantAudio->fpAUDIOSIFGetAudioStatus =                          _MApi_AUDIO_SIF_GetAudioStatus;
289     _pInstantAudio->fpAUDIOSIFStartAutoStandardDetection =              _MApi_AUDIO_SIF_StartAutoStandardDetection;
290     _pInstantAudio->fpAUDIOSIFGetResultOfAutoStandardDetection =        _MApi_AUDIO_SIF_GetResultOfAutoStandardDetection;
291     _pInstantAudio->fpAUDIOSIFConvertToBasicAudioStandard =             _MApi_AUDIO_SIF_ConvertToBasicAudioStandard;
292     _pInstantAudio->fpAUDIOSIFSetThreshold =                            _MApi_AUDIO_SIF_SetThreshold;
293     _pInstantAudio->fpAUDIOSIFSetPrescale =                             _MApi_AUDIO_SIF_SetPrescale;
294     _pInstantAudio->fpAUDIOSIFIsPALType =                               _MApi_AUDIO_SIF_IsPALType;
295     _pInstantAudio->fpAUDIOSIFSetPALType =                              _MApi_AUDIO_SIF_SetPALType;
296     _pInstantAudio->fpAUDIOSIFSendCmd =                                 _MApi_AUDIO_SIF_SendCmd;
297     _pInstantAudio->fpAUDIOSIFShift =                                   _MApi_AUDIO_SIF_Shift;
298 
299 #if 1
300     //============================================================
301     // AUDIO_FM_RADIO RELATIONAL API FUNCTION
302     //============================================================
303     _pInstantAudio->fpAUDIOFMRADIOGetSoundMode =                        _MApi_AUDIO_FM_RADIO_GetSoundMode;
304     _pInstantAudio->fpAUDIOFMRADIOSetSoundMode =                        _MApi_AUDIO_FM_RADIO_SetSoundMode;
305     _pInstantAudio->fpAUDIOFMRADIODeEmphassisOption =                   _MApi_AUDIO_FM_RADIO_DeEmphassisOption;
306     _pInstantAudio->fpAUDIOFMRADIOGetDcAmp =                            _MApi_AUDIO_FM_RADIO_GET_DC_AMP;
307     _pInstantAudio->fpAUDIOFMRADIOGetNSR =                              _MApi_AUDIO_FM_RADIO_GET_NSR;
308     _pInstantAudio->fpAUDIOFMRADIOReset =                               _MApi_AUDIO_FM_RADIO_RESET;
309 #endif
310 
311     //=============================================================
312     // AUDIO_SPDIF RELATIONAL API FUNCTION
313     //=============================================================
314     _pInstantAudio->fpAUDIOSPDIFHWEN =                                  _MApi_AUDIO_SPDIF_HWEN;
315     _pInstantAudio->fpAUDIOSPDIFSetMute =                               _MApi_AUDIO_SPDIF_SetMute;
316     _pInstantAudio->fpAUDIOSPDIFSetMode =                               _MApi_AUDIO_SPDIF_SetMode;
317     _pInstantAudio->fpAUDIOSPDIFGetMode =                               _MApi_AUDIO_SPDIF_GetMode;
318     _pInstantAudio->fpAUDIOSPDIFSetSCMS =                               _MApi_AUDIO_SPDIF_SetSCMS;
319     _pInstantAudio->fpAUDIOSPDIFGetSCMS =                               _MApi_AUDIO_SPDIF_GetSCMS;
320     _pInstantAudio->fpAUDIOSPDIFMonitor =                               _MApi_Audio_SPDIF_Monitor;
321     _pInstantAudio->fpAUDIOSPDIFChannelStatusCTRL =                     _MApi_AUDIO_SPDIF_ChannelStatus_CTRL;
322     _pInstantAudio->fpAUDIODigitalOut_SetChannelStatus =                _MApi_AUDIO_DigitalOut_SetChannelStatus;
323     _pInstantAudio->fpAUDIODigitalOut_SetDeviceCapabilty =              _MApi_AUDIO_DigitalOut_SetDeviceCapability;
324     //_pInstantAudio->fpAUDIODigitalOut_GetChannelStatus =                _MApi_AUDIO_DigitalOut_GetChannelStatus;
325 
326 
327     //=============================================================
328     // AUDIO_HDMI RELATIONAL API FUNCTION
329     //=============================================================
330     _pInstantAudio->fpAUDIOHDMITxSetMute =                              _MApi_AUDIO_HDMI_Tx_SetMute;
331     _pInstantAudio->fpAUDIOHDMITxGetStatus =                            _MApi_AUDIO_HDMI_Tx_GetStatus;
332     _pInstantAudio->fpAUDIOHDMIMonitor =                                _MApi_AUDIO_HDMI_Monitor;
333     _pInstantAudio->fpAUDIOHDMIGetNonpcmFlag =                          _MApi_AUDIO_HDMI_GetNonpcmFlag;
334     _pInstantAudio->fpAUDIOHDMISetNonpcm =                              _MApi_AUDIO_HDMI_SetNonpcm;
335     _pInstantAudio->fpAUDIOHDMIRxSetNonPCM =                            _MApi_AUDIO_HDMI_RX_SetNonpcm;
336     _pInstantAudio->fpAUDIOHDMIRxGetNonPCM =                            _MApi_AUDIO_HDMI_RX_GetNonPCM;
337     _pInstantAudio->fpAUDIODTVHDMICFG =                                 _MApi_AUDIO_DTV_HDMI_CFG;
338     _pInstantAudio->fpAUDIOHDMIGetSynthFreg =                           _MApi_AUDIO_HDMI_GetSynthFreq;
339     _pInstantAudio->fpAUDIOHDMISetDownSample =                          _MApi_AUDIO_HDMI_SetDownSample;
340     _pInstantAudio->fpAUDIOHDMITxSetMode =                              _MApi_AUDIO_HDMI_TX_SetMode;
341     _pInstantAudio->fpAUDIOHDMIRxGetHDMIInAUDIOStatus =                 _MApi_AUDIO_HDMI_RX_GetHdmiInAudioStatus;
342 
343     //=============================================================
344     // AUDIO_ADVANCE_SOUND RELATIONAL API FUNCTION
345     //=============================================================
346     _pInstantAudio->fpAUDIOADVSOUNDProcessEnable =                      _MApi_AUDIO_ADVSOUND_ProcessEnable;
347     _pInstantAudio->fpAUDIOADVSOUNDSubProcessEnable =                   _MApi_AUDIO_ADVSOUND_SubProcessEnable;
348     _pInstantAudio->fpAUDIOADVSOUNDSetParam =                           _MApi_AUDIO_ADVSOUND_SetParam;
349     _pInstantAudio->fpAUDIOADVSNDSetParam =                             _MApi_AUDIO_ADVSND_SetParam;
350     //_pInstantAudio->fpAUDIOADVSOUNDGetParam =                           _MApi_AUDIO_ADVSOUND_GetParam;
351     //_pInstantAudio->fpAUDIOADVSOUNDSetASFParam =                        _MApi_AUDIO_ADVSOUND_SetASFParam;
352     //_pInstantAudio->fpAUDIOADVSOUNDGetASFParam =                        _MApi_AUDIO_ADVSOUND_GetASFParam;
353     _pInstantAudio->fpAUDIOADVSOUNDGetInfo =                            _MApi_AUDIO_ADVSOUND_GetInfo;
354     _pInstantAudio->fpAUDIODBXTV_SetMode =                              _MApi_DBXTV_SetMode;
355     _pInstantAudio->fpAUDIOSeInit =                                     _MApi_AUDIO_SeInit;
356     _pInstantAudio->fpAUDIOSetAdvSndSys =                               _MApi_AUDIO_SetAdvSndSys;
357     //_pInstantAudio->fpAUDIOAdvSndSetSoundParam =                        _MApi_AUDIO_ADVSND_Set_Sound_Param;
358     _pInstantAudio->fpAUDIOSetVDS =                                     _MApi_AUDIO_SetVDS;
359     _pInstantAudio->fpAUDIOSetVSPK =                                    _MApi_AUDIO_SetVSPK;
360     _pInstantAudio->fpAUDIOSetSRS=                                      _MApi_AUDIO_SetSRS;
361     _pInstantAudio->fpAUDIOSetBBE =                                     _MApi_AUDIO_SetBBE;
362     _pInstantAudio->fpAUDIOVSPKWMod =                                   _MApi_AUDIO_VSPK_WMod;
363     _pInstantAudio->fpAUDIOVSPKSMod =                                   _MApi_AUDIO_VSPK_SMod;
364     _pInstantAudio->fpAUDIOSRSDC =                                      _MApi_AUDIO_SRS_DC;
365     _pInstantAudio->fpAUDIOSRSTruBass =                                 _MApi_AUDIO_SRS_TruBass;
366     _pInstantAudio->fpAUDIOSRSSetTsxtPara =                             _MApi_AUDIO_SRS_SetTsxtPara;
367     _pInstantAudio->fpAUDIOSetSRSTSHD =                                 _MApi_AUDIO_SetSRSTSHD;
368     _pInstantAudio->fpAUDIOTSHDTruBass =                                _MApi_AUDIO_TSHD_TruBass;
369     _pInstantAudio->fpAUDIOTSHDDefinition =                             _MApi_AUDIO_TSHD_Definition;
370     _pInstantAudio->fpAUDIOTSHDClarity =                                _MApi_AUDIO_TSHD_Clarity;
371     _pInstantAudio->fpAUDIOSRSSetTshdPara =                             _MApi_AUDIO_SRS_SetTshdPara;
372     _pInstantAudio->fpAUDIOCopyParameter =                              _MApi_AUDIO_COPY_Parameter;
373 
374     //=============================================================
375     // AUDIO_KTV RELATIONAL API FUNCTION
376     //=============================================================
377     _pInstantAudio->fpAUDIOSetKTVInfo =                                 _MApi_AUDIO_SetKTVInfo;
378     _pInstantAudio->fpAUDIOGetKTVInfo =                                 _MApi_AUDIO_GetKTVInfo;
379     _pInstantAudio->fpAUDIOSetMixModeVolume =                           _MApi_AUDIO_SetMixModeVolume;
380     _pInstantAudio->fpAUDIOSetMixModeMute =                             _MApi_AUDIO_SetMixModeMute;
381     _pInstantAudio->fpAUDIOPlayMenuSound =                              _MApi_AUDIO_PlayMenuSound;
382 
383     //=============================================================
384     // AUDIO_MM RELATIONAL API FUNCTION
385     //=============================================================
386     _pInstantAudio->fpAUDIOSetCommAudioInfo =                           _MApi_AUDIO_SetCommAudioInfo;
387     //_pInstantAudio->fpAUDIOSetDecodeParam =                             _MApi_ADEC_SetDecodeParam;
388     _pInstantAudio->fpAUDIOSetMpegInfo =                                _MApi_AUDIO_SetMpegInfo;
389     _pInstantAudio->fpAUDIOSetAC3Info =                                 _MApi_AUDIO_SetAC3Info;
390     _pInstantAudio->fpAUDIOSetAC3PInfo =                                _MApi_AUDIO_SetAC3PInfo;
391     _pInstantAudio->fpAUDIOSetAACInfo =                                 _MApi_AUDIO_SetAACInfo;
392     _pInstantAudio->fpAUDIOSetWMAInfo =                                 _MApi_AUDIO_SetWmaInfo;
393     _pInstantAudio->fpAUDIOSetDTSCommonCtrl =                           _MApi_AUDIO_SetDTSCommonCtrl;
394     _pInstantAudio->fpAUDIOGetCommAudioInfo =                           _MApi_AUDIO_GetCommAudioInfo;
395     _pInstantAudio->fpAUDIOGetMpegInfo =                                _MApi_AUDIO_GetMpegInfo;
396     _pInstantAudio->fpAUDIOGetAC3Info =                                 _MApi_AUDIO_GetAC3Info;
397     _pInstantAudio->fpAUDIOGetAC3PInfo =                                _MApi_AUDIO_GetAC3PInfo;
398     _pInstantAudio->fpAUDIOGetAACInfo =                                 _MApi_AUDIO_GetAACInfo;
399     _pInstantAudio->fpAUDIOGetWmaInfo =                                 _MApi_AUDIO_GetWmaInfo;
400     _pInstantAudio->fpAUIDOGetDTSInfo =                                 _MApi_AUDIO_GetDTSInfo;
401     _pInstantAudio->fpAUDIOXPCMParam =                                  _MApi_AUDIO_XPCM_Param;
402     _pInstantAudio->fpAUDIOXPCM2Param =                                 _MApi_AUDIO_XPCM2_Param;
403     _pInstantAudio->fpAUDIOXPCM2CheckIntStatus =                        _MApi_AUDIO_XPCM2_CheckIntStatus;
404     _pInstantAudio->fpAUDIORA8Param =                                   _MApi_AUDIO_RA8_Param;
405     _pInstantAudio->fpAUDIOInit =                                       _MApi_AUDIO_Init;
406     _pInstantAudio->fpAUDIOStartDecode =                                _MApi_AUDIO_StartDecode;
407     _pInstantAudio->fpAUDIOStartBrower =                                _MApi_AUDIO_StartBrowse;
408     _pInstantAudio->fpAUDIOStopDecode =                                 _MApi_AUDIO_StopDecode;
409     _pInstantAudio->fpAUDIOPauseDecode =                                _MApi_AUDIO_PauseDecode;
410     _pInstantAudio->fpAUDIOCheckPlayDone =                              _MApi_AUDIO_CheckPlayDone;
411     _pInstantAudio->fpAUDIOGetResidualBufferSize =                      _MApi_AUDIO_GetResidualBufferSize;
412     _pInstantAudio->fpAUDIOGetPCMBufferSize =                           _MApi_AUDIO_GetPCMBufferSize;
413     _pInstantAudio->fpAUDIOGetPCMBufferSize2 =                          _MApi_AUDIO_GetPCMBufferSize2;
414     _pInstantAudio->fpAUDIOGetCurrentFrameNumber =                      _MApi_AUDIO_GetCurrentFrameNumber;
415     _pInstantAudio->fpAUDIOGetSampleRate =                              _MApi_AUDIO_GetSampleRate;
416     _pInstantAudio->fpAUDIOGetBitRate =                                 _MApi_AUDIO_GetBitRate;
417     _pInstantAudio->fpAUDIOGetLayer =                                   _MApi_AUDIO_GetLayer;
418     _pInstantAudio->fpAUDIOCheckInputRequest =                          _MApi_AUDIO_CheckInputRequest;
419     _pInstantAudio->fpAUDIOSetInput =                                   _MApi_AUDIO_SetInput;
420     _pInstantAudio->fpAUDIOSetSampleRateIndex =                         _MApi_AUDIO_SetSampleRateIndex;
421     _pInstantAudio->fpAUDIOSetXPCMParam =                               _MApi_AUDIO_SetXPCMParam;
422     _pInstantAudio->fpAUDIOFileEndNotification =                        _MApi_AUDIO_FileEndNotification;
423     _pInstantAudio->fpAUDIOFileEndDataHandle =                          _MApi_AUDIO_FileEndDataHandle;
424     _pInstantAudio->fpAUDIOGetPlayTick =                                _MApi_AUDIO_GetPlayTick;
425     _pInstantAudio->fpAUDIOGetEsMEMCnt =                                _MApi_AUDIO_GetEsMEMCnt;
426     _pInstantAudio->fpAUDIOSetASFParm =                                 _MApi_AUDIO_SetASFParm;
427     _pInstantAudio->fpAUDIOMMSetInput =                                 _MApi_AUDIO_MM_SetInput;
428     _pInstantAudio->fpAUDIOMMCheckPlayDone =                            _MApi_AUDIO_MM_CheckPlayDone;
429     _pInstantAudio->fpAUDIOMMCheckInputRequest =                        _MApi_AUDIO_MM_CheckInputRequest;
430     _pInstantAudio->fpAUDIODmaReaderInit =                              _MApi_AUDIO_DmaReader_Init;
431     _pInstantAudio->fpAUDIODmaReaderAllInputInit =                      _MApi_AUDIO_DmaReader_AllInput_Init;
432     _pInstantAudio->fpAUDIODmaReaderWritePCM =                          _MApi_AUDIO_DmaReader_WritePCM;
433     _pInstantAudio->fpAUDIODmaWriterInit =                              _MApi_AUDIO_DmaWriter_Init;
434     _pInstantAudio->fpAUDIOUSBPCMEnable =                               _MApi_AUDIO_USBPCM_Enable;
435     _pInstantAudio->fpAUDIOUSBPCMSetFlag =                              _MApi_AUDIO_USBPCM_SetFlag;
436     _pInstantAudio->fpAUDIOUSBPCMGetFlag =                              _MApi_AUDIO_USBPCM_GetFlag;
437     _pInstantAudio->fpAUDIOUSBPCMGetMemInfo =                           _MApi_AUDIO_USBPCM_GetMemInfo;
438     _pInstantAudio->fpAUDIOPCMCaptureInit =                             _MApi_AUDIO_PCMCapture_Init;
439     _pInstantAudio->fpAUDIOPCMCaptureStart =                            _MApi_AUDIO_PCMCapture_Start;
440     _pInstantAudio->fpAUDIOPCMCaptureStop =                             _MApi_AUDIO_PCMCapture_Stop;
441     _pInstantAudio->fpAUDIOPCMCaptureRead =                             _MApi_AUDIO_PCMCapture_Read;
442     _pInstantAudio->fpAUDIOVoIPConfig =                                 _MApi_AUDIO_VoIP_Config;
443     _pInstantAudio->fpAUDIOALSACheck =                                  _MApi_AUDIO_ALSA_Check;
444     _pInstantAudio->fpAUDIOALSAEnable =                                 _MApi_AUDIO_ALSA_Enable;
445     _pInstantAudio->fpAUDIOUNICheckDecodeDone =                         _MApi_AUDIO_UNI_CheckDecodeDone;
446     _pInstantAudio->fpAUDIOUNISetOutput =                               _MApi_AUDIO_UNI_SetOutput;
447     _pInstantAudio->fpAUDIOUNISetPCMInputWriteAddr =                    _MApi_AUDIO_UNI_Set_PCMInputWriteAddr;
448     _pInstantAudio->fpAUDIOUNIGetOutPCMLevel =                          _MApi_AUDIO_UNI_Get_OutPCMLevel;
449     _pInstantAudio->fpAUDIORingTask =                                   _MApi_AUDIO_RingTask;
450     _pInstantAudio->fpAUDIORingDataTransfer =                           _MApi_AUDIO_Ring_DataTransfer;
451     _pInstantAudio->fpAUDIOMM2InitAesInfo =                             _MApi_AUDIO_MM2_initAesInfo;
452     _pInstantAudio->fpAUDIOMM2CheckAesInfo =                            _MApi_AUDIO_MM2_checkAesInfo;
453     _pInstantAudio->fpAUDIOMM2InputAesFinished =                        _MApi_AUDIO_MM2_inputAesFinished;
454     _pInstantAudio->fpAUDIOSetAudioParam2 =                             _MApi_AUDIO_SetAudioParam2;
455     _pInstantAudio->fpAUDIOGetAudioInfo2 =                              _MApi_AUDIO_GetAudioInfo2;
456     _pInstantAudio->fpAUDIOGetDDRInfo =                                 _MApi_AUDIO_GetDDRInfo;
457     _pInstantAudio->fpAUDIOGetCaps =                                    _MApi_AUDIO_GetCaps;
458     _pInstantAudio->fpAUDIOPcmOpen =                                    _MApi_AUDIO_PCM_Open;
459     _pInstantAudio->fpAUDIOPcmClose =                                   _MApi_AUDIO_PCM_Close;
460     _pInstantAudio->fpAUDIOPcmStart =                                   _MApi_AUDIO_PCM_Start;
461     _pInstantAudio->fpAUDIOPcmStop =                                    _MApi_AUDIO_PCM_Stop;
462     _pInstantAudio->fpAUDIOPcmSet =                                     _MApi_AUDIO_PCM_Set;
463     _pInstantAudio->fpAUDIOPcmGet =                                     _MApi_AUDIO_PCM_Get;
464     _pInstantAudio->fpAUDIOPcmRead =                                    _MApi_AUDIO_PCM_Read;
465     _pInstantAudio->fpAUDIOPcmWrite =                                   _MApi_AUDIO_PCM_Write;
466     _pInstantAudio->fpAUDIOPcmFlush =                                   _MApi_AUDIO_PCM_Flush;
467     _pInstantAudio->fpAUDIOEncoderOpen =                                _MApi_AUDIO_ENCODER_Open;
468     _pInstantAudio->fpAUDIOEncoderClose =                               _MApi_AUDIO_ENCODER_Close;
469     _pInstantAudio->fpAUDIOEncoderStart =                               _MApi_AUDIO_ENCODER_Start;
470     _pInstantAudio->fpAUDIOEncoderStop =                                _MApi_AUDIO_ENCODER_Stop;
471     _pInstantAudio->fpAUDIOEncoderIoctl =                               _MApi_AUDIO_ENCODER_Ioctl;
472     _pInstantAudio->fpAUDIOEncoderRead =                                _MApi_AUDIO_ENCODER_Read;
473     _pInstantAudio->fpAUDIOEncoderFlush =                               _MApi_AUDIO_ENCODER_Flush;
474     //To Do
475 
476     return TRUE;
477 
478 }
479 
480 //-------------------------------------------------------------------------------------------------
481 //  Global Functions
482 //-------------------------------------------------------------------------------------------------
AUDIORegisterToUtopia(FUtopiaOpen ModuleType)483 void AUDIORegisterToUtopia(FUtopiaOpen ModuleType)
484 {
485     void* pUtopiaModule = NULL;
486     void* psResource = NULL;
487     char strResourceName[16] = {0};
488     MS_U32 u32Index = 0;
489     AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "%s is invoked\n", __FUNCTION__);
490 
491     UtopiaModuleCreate(MODULE_AUDIO, 8, &pUtopiaModule);
492     UtopiaModuleRegister(pUtopiaModule);
493     UtopiaModuleSetupFunctionPtr(pUtopiaModule, (FUtopiaOpen)AUDIOOpen, (FUtopiaClose)AUDIOClose, (FUtopiaIOctl)AUDIOIoctl);
494 
495 #if defined(MSOS_TYPE_LINUX_KERNEL)
496     UtopiaModuleSetupSTRFunctionPtr(pUtopiaModule,(FUtopiaSTR)AUDIOStr);
497 #endif
498 
499     UtopiaModuleAddResourceStart(pUtopiaModule, AUDIO_POOL_ID_AUDIO0);
500     for (u32Index = 0; u32Index < AUDIO_MODULE_RESOURCE_AMOUNT; u32Index++)
501     {
502         memset(&strResourceName, 0x00, sizeof(strResourceName));
503         sprintf((char *)&strResourceName, "AUDIO%u", (unsigned int)u32Index);
504         if (UtopiaResourceCreate((char *)&strResourceName, sizeof(AUDIO_RESOURCE_PRIVATE), &psResource) == UTOPIA_STATUS_SUCCESS)
505         {
506             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_ERROR, "%s : Success to create resource '%s' of %d resource\n", __FUNCTION__, strResourceName, AUDIO_MODULE_RESOURCE_AMOUNT);
507         }
508 
509         if (UtopiaResourceRegister(pUtopiaModule, psResource, AUDIO_POOL_ID_AUDIO0) == UTOPIA_STATUS_SUCCESS)
510         {
511             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_ERROR, "%s : Success to register resource '%s' of %d resource\n", __FUNCTION__, strResourceName, AUDIO_MODULE_RESOURCE_AMOUNT);
512         }
513     }
514     UtopiaModuleAddResourceEnd(pUtopiaModule, AUDIO_POOL_ID_AUDIO0);
515 
516     return;
517 }
518 
AUDIOOpen(void ** ppInstance,void * pAttribute)519 MS_U32 AUDIOOpen(void **ppInstance, void *pAttribute)
520 {
521     AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "%s is invoked\n", __FUNCTION__);
522 
523     if(ppInstance == 0)
524     {
525         return UTOPIA_STATUS_PARAMETER_ERROR;
526     }
527 
528     AUDIO_INSTANT_PRIVATE*    psAudioInstPri = NULL;
529 
530     UtopiaInstanceCreate(sizeof(AUDIO_INSTANT_PRIVATE), ppInstance);
531     UtopiaInstanceGetPrivate(*ppInstance, (void**)&psAudioInstPri);
532 
533     if(_AUDIOProbeResourceToUtopia(psAudioInstPri) == FALSE)
534     {
535         AUDIO_PRINT(AUDIO_DEBUG_LEVEL_ERROR, "Audio module version is not supported \n");
536         return UTOPIA_STATUS_NOT_SUPPORTED;
537     }
538 
539     return UTOPIA_STATUS_SUCCESS;
540 
541 }
542 
AUDIOIoctl(void * pInstance,MS_U32 u32Cmd,void * pArgs)543 MS_U32 AUDIOIoctl(void *pInstance, MS_U32 u32Cmd, void *pArgs)
544 {
545     AUDIO_INSTANT_PRIVATE *psAudioInstPri = NULL;
546     AUDIO_DEC_ID eDecId = 0;
547     AU_DVB_DECCMD eDecCmd = 0;
548     En_DVB_decCmdType eDecCmdType = 0;
549     AUDIOSTANDARD_TYPE eAUDIOStand_Type = 0;
550     AUDIO_HDMI_RX_TYPE eHDMI_RX_Type = 0;
551     Audio_MP3_LAYER eMP3_Layer = 0;
552     MS_BOOL bStatus = FALSE;
553     MS_U8 u8Status = 0;
554     MS_S8 s8Status = 0;
555     MS_U16 u16Status = 0;
556     MS_S32 s32Status = 0;
557     MS_U32 u32Status = 0;
558     MS_U32 u32Ret = UTOPIA_STATUS_SUCCESS;
559     MS_U32 *pu32Param = NULL;
560     MS_S32 *ps32Param = NULL;
561     long long ulong = 0;
562 
563     PAUDIO_ST_RX_HDMI_AUDIO_STATUS pRxHdmiSts = NULL;
564     PAUDIO_ST_SOUND_SETPARAM pSoundSetParam = NULL;
565     PAUDIO_ST_GET_DECODESYSTEM pGetDecodeSystem = NULL;
566     PAUDIO_ST_OPEN_DECODESYSTEM pOpenDecodeSystem = NULL;
567     PAUDIO_ST_SET_DECODESYSTEM pSetDecodeSystem = NULL;
568     PAUDIO_ST_RELEASE_DECODESYSTEM pReleaseDecodeSystem = NULL;
569     PAUDIO_ST_SIF_GET_AUDIO_STATUS pSifGetAudioStatus = NULL;
570     PAUDIO_ST_DIGITALOUT_SETCHANNELSTATUS pDigitalOut_SetChannelStatus = NULL;
571     PAUDIO_ST_DIGITALOUT_GETCHANNELSTATUS pDigitalOut_GetChannelStatus = NULL;
572     PAUDIO_ST_DIGITALOUT_SETDEVICECAP pDigitalOut_SetDeviceCap = NULL;
573     PAUDIO_HDMI_TX_GETSTATUS pHDMITx_GetStatus = NULL;
574     PAUDIO_ST_COPY_PARAMETER pCopyParameter = NULL;
575     PAUDIO_ST_RA8_Param pRA8Param = NULL;
576     PAUDIO_ST_CHECK_INPUT_REQ pCheckInputRequest = NULL;
577     PAUDIO_ST_MM_CHECK_INPUT_REQ pMMCheckInputRequest = NULL;
578     PAUDIO_ST_DMAREADER_WRITEPCM pDmaReaderWritePCM = NULL;
579     PAUDIO_ST_PCMCAPTURE_INIT pPCMCapture_Init = NULL;
580     PAUDIO_ST_PCMCAPTURE_READ pPCMCapture_Read = NULL;
581     PAUDIO_ST_UNI_CHECK_DECODEDONE pUNICheck_DecodeDone = NULL;
582     PAUDIO_ST_RING_DATA_TRANS pRing_Data_Trans = NULL;
583     PAUDIO_ST_MM2_CHECKAESINFO pMM2_CheckAesInfo = NULL;
584     PAUDIO_ST_MM2_INPUTAES_FINISH pMM2_InputAes_Finish = NULL;
585     PAUDIO_ST_GETAUDIOINFO2 pGetAudioInfo2 = NULL;
586     PAUDIO_ST_OUTPUT_SOURCE pOutputSourceInfo = NULL;
587     PAUDIO_ST_SET_AD pSetAD = NULL;
588     PAUDIO_ST_DECODER_COMMAND pDecoderCommand = NULL;
589     PAUDIO_ST_SPDIF_OP pSpdif_op = NULL;
590     PAUDIO_ST_SPDIF_SCMS pSpdif_scms = NULL;
591     PAUDIO_ST_HDMI_NONPCM_OP pHDMI_Nonpcm_op = NULL;
592     PAUDIO_ST_KTV_OP pKTV_OP = NULL;
593     PAUDIO_ST_SPDIF_CHANNELSTATUS pSPDIF_ChannelStatus = NULL;
594     PAUDIO_ST_GETCAPS pGetCaps = NULL;
595     PAUDIO_ST_GET_DSPBASEADDR pGet_DspBaseAddr = NULL;
596     PAUDIO_ST_SET_DSPBASEADDR pSet_DspBaseAddr = NULL;
597     PAUDIO_ST_WRITE_DECMAILBOX pWrite_DecMailBox = NULL;
598     PAUDIO_ST_INPUTSWITCH pInputSwitch = NULL;
599     PAUDIO_ST_SET_DATACAPTURESOURCE pSet_DataCaptureResource = NULL;
600     PAUDIO_ST_READ_MAILBOX pRead_MailBox = NULL;
601     PAUDIO_ST_WRITE_MAILBOX pWrite_MailBox = NULL;
602     PAUDIO_ST_SEND_INTERRUPT pSend_Interrupt = NULL;
603     PAUDIO_ST_I2S_SETMODE pI2s_SetMode = NULL;
604     PAUDIO_ST_SND_PROCESSENABLE pSnd_ProcessEnable = NULL;
605     PAUDIO_ST_SND_SETPARAM1 pSnd_SetParam1 = NULL;
606     PAUDIO_ST_SND_GETPARAM1 pSnd_GetParam1 = NULL;
607     PAUDIO_ST_SETEQ_7BAND pSet_7band = NULL;
608     PAUDIO_ST_SET_ABSOLUTEVOLUME pSet_AbsoluteVolume = NULL;
609     PAUDIO_ST_SOURCECONNECT pSourceConnect = NULL;
610     PAUDIO_ST_CONVERT_VOLUMEUNIT pConvertVolumeUnit = NULL;
611     PAUDIO_ST_ENABLE_DCREMOVE pEnableDcRemove = NULL;
612     PAUDIO_ST_SET_DECCMD pSetDecCmd = NULL;
613     PAUDIO_ST_SET_SYSTEM pSetSystem = NULL;
614     PAUDIO_ST_GET_DECSYSSUPPORTSTATUS pGetDecSysSupportStatus = NULL;
615     PAUDIO_ST_SET_ENCINIT pSetEncInit = NULL;
616     PAUDIO_ST_SIF_SET_SOUNDMODE pSifSetSoundMode = NULL;
617     PAUDIO_ST_SIF_CONVERTTOBASICAUDIOSTANDARD pSifConvertToBasicAudioStandard = NULL;
618     PAUDIO_ST_SIF_SETPRESCALE pSifSetPrescale = NULL;
619     PAUDIO_ST_SIF_ISPALTYPE pSifIsPalType = NULL;
620     PAUDIO_ST_SIF_SENDCMD pSifSendCmd = NULL;
621     PAUDIO_ST_SPDIF_CHANNELSTATUS_CTRL pSpdifChannelStatusCtrl = NULL;
622     PAUDIO_ST_ADVSOUND_PROCESSENABLE pAdvSoundProcessEnable = NULL;
623     PAUDIO_ST_ADVSOUND_SUBPROCESSENABLE pAdvSoundSubProcessEnable = NULL;
624     PAUDIO_ST_ADVSOUND_SETPARAM pAdvSoundSetParam = NULL;
625     PAUDIO_ST_ADVSND_SETPARAM pAdvSndSetParam = NULL;
626     PAUDIO_ST_SETADVSNDSYS pSetAdvSndSys = NULL;
627     PAUDIO_ST_SETBBE pSetBBE = NULL;
628     PAUDIO_ST_SRS_SETTSXTPARA pSrsSetTsxtPara = NULL;
629     PAUDIO_ST_SRS_SETTSHDPARA pSrsSetTshdPara = NULL;
630     PAUDIO_ST_SRS_ADVSOUND_GETINFO pAdvSoundGetInfo = NULL;
631     PAUDIO_ST_DBXTV_SETMODE pDbxTvSetMode = NULL;
632     PAUDIO_ST_SET_COMMAUDIOINFO pSetCommAudioInfo = NULL;
633     PAUDIO_ST_SET_MPEGINFO pSetMpegInfo = NULL;
634     PAUDIO_ST_SET_AC3INFO pSetAc3Info = NULL;
635     PAUDIO_ST_SET_AC3PINFO pSetAc3pInfo = NULL;
636     PAUDIO_ST_SET_AACINFO pSetAacInfo = NULL;
637     PAUDIO_ST_SET_WMAINFO pSetWmaInfo = NULL;
638     PAUDIO_ST_SET_DTSCOMMONCTRL pSetDtsCommonCtrl = NULL;
639     PAUDIO_ST_MM2_INITAESINFO pMm2InitAesInfo = NULL;
640     PAUDIO_ST_SET_XPCMPARAM pSetXpcmParam = NULL;
641     PAUDIO_ST_GET_COMMAUDIOINFO pGetCommAudioInfo = NULL;
642     PAUDIO_ST_GET_MPEGINFO pGetMpegInfo = NULL;
643     PAUDIO_ST_GET_AC3INFO pGetAc3Info = NULL;
644     PAUDIO_ST_GET_AC3PINFO pGetAc3pInfo = NULL;
645     PAUDIO_ST_GET_AACINFO pGetAacInfo = NULL;
646     PAUDIO_ST_GET_WMAINFO pGetWmaInfo = NULL;
647     PAUDIO_ST_GET_DTSINFO pGetDtsInfo = NULL;
648     PAUDIO_ST_XPCMPARAM pXpcmParam = NULL;
649     PAUDIO_ST_GET_PCMBUFFERSIZE pGetPcmBufferSize = NULL;
650     PAUDIO_ST_GET_PCMBUFFERSIZE2 pGetPcmBufferSize2 = NULL;
651     PAUDIO_ST_SET_ASFPARM pSetAsfParm = NULL;
652     PAUDIO_ST_MM_SETINPUT pMmSetInput = NULL;
653     PAUDIO_ST_MM_CHECKPLAYDONE pMmCheckPlayDone = NULL;
654     PAUDIO_ST_VOIP_CONFIG pVoipConfig = NULL;
655     PAUDIO_ST_ALSA_ENABLE pAlsaEnable = NULL;
656     PAUDIO_ST_SET_AUDIOPARAM2 pSetAudioParam2 = NULL;
657     PAUDIO_ST_GET_DDRINFO pGetDdrInfo = NULL;
658     PAUDIO_ST_ADVSND_SETASFPARAM pAdvSndSetAsfParam = NULL;
659     PAUDIO_ST_PCM_OPEN pPcmOpen = NULL;
660     PAUDIO_ST_PCM_CLOSE pPcmClose = NULL;
661     PAUDIO_ST_PCM_START pPcmStart = NULL;
662     PAUDIO_ST_PCM_STOP pPcmStop = NULL;
663     PAUDIO_ST_PCM_SET pPcmSet = NULL;
664     PAUDIO_ST_PCM_GET pPcmGet = NULL;
665     PAUDIO_ST_PCM_READ pPcmRead = NULL;
666     PAUDIO_ST_PCM_WRITE pPcmWrite = NULL;
667     PAUDIO_ST_PCM_FLUSH pPcmFlush = NULL;
668     PAUDIO_ST_ENCODER_OPEN pEncoderOpen = NULL;
669     PAUDIO_ST_ENCODER_CLOSE pEncoderClose = NULL;
670     PAUDIO_ST_ENCODER_START pEncoderStart = NULL;
671     PAUDIO_ST_ENCODER_STOP pEncoderStop = NULL;
672     PAUDIO_ST_ENCODER_IOCTL pEncoderIoctl = NULL;
673     PAUDIO_ST_ENCODER_READ pEncoderRead = NULL;
674     PAUDIO_ST_ENCODER_FLUSH pEncoderFlush = NULL;
675 
676     if (pInstance == NULL)
677     {
678         AUDIO_PRINT(AUDIO_DEBUG_LEVEL_ERROR, "pInstance is NULL!!! \n");
679         return UTOPIA_STATUS_FAIL;
680     }
681 
682     if (UtopiaInstanceGetPrivate(pInstance, (void*)&psAudioInstPri) != 0)
683     {
684         AUDIO_PRINT(AUDIO_DEBUG_LEVEL_ERROR, "UtopiaInstanceGetPrivate fail\n");
685         return UTOPIA_STATUS_FAIL;
686     }
687 
688     AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "[Audio][mapiAudio.c] cmd %d  switch\n", (unsigned int)u32Cmd);
689 
690     switch (u32Cmd)
691     {
692         case MApi_CMD_AUDIO_Initialize:
693         {
694             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_Init\n");
695             psAudioInstPri->fpAUDIOInitialize();
696             break;
697         }
698 
699         case MApi_CMD_AUDIO_SetPowerOn:
700         {
701             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetPowerOn\n");
702             pu32Param = (MS_U32*)pArgs;
703             psAudioInstPri->fpAUDIOSetPowerOn((MS_BOOL)pu32Param[0]);
704             break;
705         }
706 
707         case MApi_CMD_AUDIO_GetDSPBaseAddr:
708         {
709             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetDSPBaseAddr\n");
710             pGet_DspBaseAddr = (PAUDIO_ST_GET_DSPBASEADDR)pArgs;
711             u32Status= psAudioInstPri->fpAUDIOGetDSPMadBaseAddr(pGet_DspBaseAddr->u8Index);
712             pGet_DspBaseAddr->u32Addr = u32Status;
713             break;
714         }
715 
716         case MApi_CMD_AUDIO_SetDSPBaseAddr:
717         {
718             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetDSPBaseAddr\n");
719             pSet_DspBaseAddr = (PAUDIO_ST_SET_DSPBASEADDR)pArgs;
720             psAudioInstPri->fpAUDIOSetDSPBaseAddr(pSet_DspBaseAddr->u8Index, pSet_DspBaseAddr->u32Bin_Base_Address, pSet_DspBaseAddr->u32Mad_Base_Buffer_Adr);
721             break;
722         }
723 
724         case MApi_CMD_AUDIO_WriteDecMailBox:
725         {
726             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_WriteDecMailBox\n");
727             pWrite_DecMailBox = (PAUDIO_ST_WRITE_DECMAILBOX)pArgs;
728             psAudioInstPri->fpAUDIOWriteDecMailBox(pWrite_DecMailBox->u8ParamNum, pWrite_DecMailBox->u16Data);
729             break;
730         }
731 
732         case MApi_CMD_AUDIO_TriggerSIFPLL:
733         {
734             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_TriggerSIFPLL\n");
735             psAudioInstPri->fpAUDIOTriggerSifPLL();
736             break;
737         }
738 
739         case MApi_CMD_AUDIO_Monitor:
740         {
741             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_Monitor\n");
742             psAudioInstPri->fpAUDIOMonitor();
743             break;
744         }
745 
746         case MApi_CMD_AUDIO_SetSystemInfo:
747         {
748             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetSystemInfo\n");
749             psAudioInstPri->fpAUDIOSetSystemInfo((AUDIO_INIT_INFO*)pArgs);
750             break;
751         }
752 
753         case MApi_CMD_AUDIO_ASF_Data_To_DDR:
754         {
755             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_AUDIO_ASF_Data_To_DDR\n");
756             pu32Param = (MS_U32*)pArgs;
757             psAudioInstPri->fpAUDIOASFDataToDDR((MS_BOOL)pu32Param[0]);
758             break;
759         }
760 
761         case MApi_CMD_AUDIO_R2_DEBUG_MSG:
762         {
763             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_AUDIO_R2_Debug_MSG\n");
764             pu32Param = (MS_U32*)pArgs;
765             psAudioInstPri->fpAUDIOR2DebugMSG((MS_BOOL)pu32Param[0]);
766             break;
767         }
768 
769         case MApi_CMD_AUDIO_R2_DDR_LETENCY_MSG:
770         {
771             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_R2_DDR_LETENCY_MSG\n");
772             pu32Param = (MS_U32*)pArgs;
773             psAudioInstPri->fpAUDIOR2DDRLetencyMSG((MS_BOOL)pu32Param[0]);
774             break;
775         }
776 
777         case MApi_CMD_AUDIO_SetOutConnectivity:
778         {
779             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetOutConnectivity\n");
780             psAudioInstPri->fpAUDIOSetOutConnectivity();
781             break;
782         }
783 
784         case MApi_CMD_AUDIO_SetPathInfo:
785         {
786             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetPathInfo\n");
787             psAudioInstPri->fpAUDIOSetPathInfo((AUDIO_PATH_INFO*)pArgs);
788             break;
789         }
790 
791         case MApi_CMD_AUDIO_GetPathInfo:
792         {
793             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetPathInfo\n");
794             psAudioInstPri->fpAUDIOGetPathInfo((AUDIO_PATH_INFO*)pArgs);
795             break;
796         }
797 
798         case MApi_CMD_AUDIO_SetOutputInfo:
799         {
800             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetOutputInfo\n");
801             psAudioInstPri->fpAUDIOSetOutputInfo((AUDIO_OUT_INFO*)pArgs);
802             break;
803         }
804 
805         case MApi_CMD_AUDIO_SetSourceInfo:
806         {
807             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetSourceInfo\n");
808             pu32Param = (MS_U32*)pArgs;
809             psAudioInstPri->fpAUDIOSetSourceInfo((MS_BOOL)pu32Param[0]);
810             break;
811         }
812 
813         case MApi_CMD_AUDIO_InputSwitch:
814         {
815             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_InputSwitch\n");
816             pInputSwitch = (PAUDIO_ST_INPUTSWITCH)pArgs;
817             psAudioInstPri->fpAUDIOInputSwitch(pInputSwitch->eSource, pInputSwitch->eGroup);
818             break;
819         }
820 
821         case MApi_CMD_AUDIO_Set_Input_Scale:
822         {
823             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_Set_Input_Scale\n");
824             pu32Param = (MS_U32*)pArgs;
825             psAudioInstPri->fpAUDIOSetInputScale((MS_BOOL)pu32Param[0]);
826             break;
827         }
828 
829         case MApi_CMD_AUDIO_SPDIF_CHANNELSTATUS:
830         {
831             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SPDIF_CHANNELSTATUS\n");
832             pSPDIF_ChannelStatus = (PAUDIO_ST_SPDIF_CHANNELSTATUS)pArgs;
833             if (pSPDIF_ChannelStatus->bSet == TRUE)
834             {
835                 psAudioInstPri->fpAUDIOSPDIFSetChannelStauts(pSPDIF_ChannelStatus->eType, pSPDIF_ChannelStatus->eValue);
836             }
837             else
838             {
839                 u16Status = psAudioInstPri->fpAUDIOSPDIFGetChannelStatus(pSPDIF_ChannelStatus->eType);
840                 pSPDIF_ChannelStatus->u32Ret = (MS_U32)u16Status;
841             }
842             break;
843         }
844 
845         case MApi_CMD_AUDIO_Set_Scart_Scale:
846         {
847             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_Set_Scart_Scale\n");
848             pu32Param = (MS_U32*)pArgs;
849             psAudioInstPri->fpAUDIOSetScartScale((MS_BOOL)pu32Param[0]);
850             break;
851         }
852 
853         case MApi_CMD_AUDIO_SetDataCaptureSource:
854         {
855             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetDataCaptureSource\n");
856             pSet_DataCaptureResource = (PAUDIO_ST_SET_DATACAPTURESOURCE)pArgs;
857             bStatus = psAudioInstPri->fpAUDIOSetDataCaptureSource(pSet_DataCaptureResource->eID, pSet_DataCaptureResource->eSource);
858             pSet_DataCaptureResource->bRet = bStatus;
859             break;
860         }
861 
862         case MApi_CMD_AUDIO_OutputSourceInfo:
863         {
864             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_OutputSourceInfo\n");
865             pOutputSourceInfo = (PAUDIO_ST_OUTPUT_SOURCE)pArgs;
866             if (pOutputSourceInfo->bSet == TRUE)
867             {
868                 psAudioInstPri->fpAUDIOSetOutputSourceInfo((OUTPUT_SOURCE_INFO *)pOutputSourceInfo->stOutputSourceInfo);
869             }
870             else
871             {
872                 psAudioInstPri->fpAUDIOGetOutputSourceInfo((OUTPUT_SOURCE_INFO *)pOutputSourceInfo->stOutputSourceInfo);
873             }
874             break;
875         }
876 
877         case MApi_CMD_AUDIO_ReadMailBox:
878         {
879             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_ReadMailBox\n");
880             pRead_MailBox = (PAUDIO_ST_READ_MAILBOX)pArgs;
881             u16Status = psAudioInstPri->fpAUDIOReadMailBox(pRead_MailBox->bDspType, pRead_MailBox->u8ParamNum);
882             pRead_MailBox->u16Ret = u16Status;
883             break;
884         }
885 
886         case MApi_CMD_AUDIO_WriteMailBox:
887         {
888             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_WriteMailBox\n");
889             pWrite_MailBox = (PAUDIO_ST_WRITE_MAILBOX)pArgs;
890             psAudioInstPri->fpAUDIOWriteMailBox(pWrite_MailBox->bDspType, pWrite_MailBox->u8ParamNum, pWrite_MailBox->u16Data);
891             break;
892         }
893 
894         case MApi_CMD_AUDIO_FwTriggerDSP:
895         {
896             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_FwTriggerDSP\n");
897             pu32Param = (MS_U32*)pArgs;
898             psAudioInstPri->fpAUDIOFwTriggerDsp((MS_U16)pu32Param[0]);
899             break;
900         }
901 
902         case MApi_CMD_AUDIO_SetFwStatus:
903         {
904             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetFwStatus\n");
905             pu32Param = (MS_U32*)pArgs;
906             psAudioInstPri->fpAUDIOSetFwStatus((MS_BOOL)pu32Param[0]);
907             break;
908         }
909 
910         case MApi_CMD_AUDIO_ExitAudioSystem:
911         {
912             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_ExitAudioSystem\n");
913             psAudioInstPri->fpAUDIOExitAudioSystem();
914             break;
915         }
916 
917         case MApi_CMD_AUDIO_RebootDSP:
918         {
919             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_RebootDSP\n");
920             pu32Param = (MS_U32*)pArgs;
921             psAudioInstPri->fpAUDIORebootDSP((MS_BOOL)pu32Param[0]);
922             break;
923         }
924 
925         case MApi_CMD_AUDIO_SendIntrupt:
926         {
927             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SendIntrupt\n");
928             pSend_Interrupt = (PAUDIO_ST_SEND_INTERRUPT)pArgs;
929             psAudioInstPri->fpAUDIOSendIntrupt(pSend_Interrupt->bDspType, pSend_Interrupt->u8Cmd);
930             break;
931         }
932 
933         case MApi_CMD_AUDIO_I2S_SetMode:
934         {
935             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_I2S_SetMode\n");
936             pI2s_SetMode = (PAUDIO_ST_I2S_SETMODE)pArgs;
937             psAudioInstPri->fpAUDIOI2SSetMode(pI2s_SetMode->eMode, pI2s_SetMode->eVal);
938             break;
939         }
940 
941         case MApi_CMD_AUDIO_WritePreInitTable:
942         {
943             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_WritePreInitTable\n");
944             psAudioInstPri->fpAUDIOWritePreInitTable();
945             break;
946         }
947 
948         case MApi_CMD_AUDIO_EnaEarphone_LowPower_Stage:
949         {
950             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_EnaEarphone_LowPower_Stage\n");
951             psAudioInstPri->fpAUDIOEnaEarphoneLowPowerStage();
952             break;
953         }
954 
955         case MApi_CMD_AUDIO_EnaEarphone_HighDriving_Stage:
956         {
957             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_EnaEarphone_HighDriving_Stage\n");
958             psAudioInstPri->fpAUDIOEnaEarphoneHighDrivingStage();
959             break;
960         }
961 
962         case MApi_CMD_AUDIO_Suspend:
963         {
964             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_Suspend\n");
965             pu32Param = (MS_U32*)pArgs;
966             bStatus = psAudioInstPri->fpAUDIOSuspend();
967             *((MS_BOOL*)&(pu32Param[0])) = bStatus;
968             break;
969         }
970 
971         case MApi_CMD_AUDIO_Resume:
972         {
973             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_Resume\n");
974             pu32Param = (MS_U32*)pArgs;
975             bStatus = psAudioInstPri->fpAUDIOResume();
976             *((MS_BOOL*)&(pu32Param[0])) = bStatus;
977             break;
978         }
979 
980         case MApi_CMD_SND_ProcessEnable:
981         {
982             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_SND_ProcessEnable\n");
983             pSnd_ProcessEnable = (PAUDIO_ST_SND_PROCESSENABLE)pArgs;
984             bStatus = psAudioInstPri->fpSNDProcessEnable(pSnd_ProcessEnable->eType, pSnd_ProcessEnable->bEnable);
985             pSnd_ProcessEnable->bRet = bStatus;
986             break;
987         }
988 
989         case MApi_CMD_SND_SetParam1:
990         {
991             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_SND_SetParam1\n");
992             pSnd_SetParam1 = (PAUDIO_ST_SND_SETPARAM1)pArgs;
993             bStatus = psAudioInstPri->fpSNDSetParam1(pSnd_SetParam1->eType, pSnd_SetParam1->u16Param1, pSnd_SetParam1->u16Param2);
994             pSnd_SetParam1->bRet = bStatus;
995             break;
996         }
997 
998         case MApi_CMD_SND_GetParam1:
999         {
1000             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_SND_GetParam1\n");
1001             pSnd_GetParam1 = (PAUDIO_ST_SND_GETPARAM1)pArgs;
1002             u16Status = psAudioInstPri->fpSNDGetParam1(pSnd_GetParam1->eType, pSnd_GetParam1->u16Param1);
1003             pSnd_GetParam1->u16Ret = u16Status;
1004             break;
1005         }
1006 
1007         case MApi_CMD_AUDIO_Sound_SetParam:
1008         {
1009             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_Sound_SetParam\n");
1010             pSoundSetParam = (PAUDIO_ST_SOUND_SETPARAM)pArgs;
1011             bStatus = psAudioInstPri->fpAUDIOSoundSetParam((Sound_SET_Type)pSoundSetParam->eType, (MS_U32*)pSoundSetParam->pParam);
1012             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "[Type 0x%x] [0]: 0x%x [1]: 0x%x, [2]:0x%x, [3]:0x%x\n",(int)pSoundSetParam->eType, (int)*(pSoundSetParam->pParam), (int)*(pSoundSetParam->pParam+1), (int)*(pSoundSetParam->pParam+2), (int)*(pSoundSetParam->pParam+3));
1013             pSoundSetParam->bStatus = bStatus;
1014             break;
1015         }
1016 
1017         case MApi_CMD_AUDIO_SetAbsoluteVolume:
1018         {
1019             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetAbsoluteVolume\n");
1020             pSet_AbsoluteVolume = (PAUDIO_ST_SET_ABSOLUTEVOLUME)pArgs;
1021             psAudioInstPri->fpAUDIOSetAbsoluteVolume(pSet_AbsoluteVolume->u8Path, pSet_AbsoluteVolume->u8Vol1, pSet_AbsoluteVolume->u8Vol2);
1022             break;
1023         }
1024 
1025         case MApi_CMD_AUDIO_SourceConnect:
1026         {
1027             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SourceConnect\n");
1028             pSourceConnect = (PAUDIO_ST_SOURCECONNECT)pArgs;
1029             psAudioInstPri->fpAUDIOSourceConnect(pSourceConnect->eConnectSourceType, pSourceConnect->bConnect);
1030             break;
1031         }
1032 
1033         case MApi_CMD_AUDIO_SetDynamicBass:
1034         {
1035             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetDynamicBass\n");
1036             pu32Param = (MS_U32*)pArgs;
1037             psAudioInstPri->fpAUDIOSetDynamicBass((MS_U8)pu32Param[0]);
1038             break;
1039         }
1040 
1041         case MApi_CMD_AUDIO_AbsoluteTreble:
1042         {
1043             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_AbsoluteTreble\n");
1044             pu32Param = (MS_U32*)pArgs;
1045             psAudioInstPri->fpAUDIOAbsoluteTreble((MS_U8)pu32Param[0]);
1046             break;
1047         }
1048 
1049         case MApi_CMD_AUDIO_SetEq_7band:
1050         {
1051             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetEq_7band\n");
1052             pSet_7band = (PAUDIO_ST_SETEQ_7BAND)pArgs;
1053             psAudioInstPri->fpAUDIOSetEq7band(pSet_7band->u8Band, pSet_7band->u8Level);
1054             break;
1055         }
1056 
1057         case MApi_CMD_AUDIO_SetAvcThreshold:
1058         {
1059             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetAvcThreshold\n");
1060             pu32Param = (MS_U32*)pArgs;
1061             psAudioInstPri->fpAUDIOSetAvcThreshold((MS_U8)pu32Param[0]);
1062             break;
1063         }
1064 
1065         case MApi_CMD_AUDIO_SetAvcMode:
1066         {
1067             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetAvcMode\n");
1068             pu32Param = (MS_U32*)pArgs;
1069             psAudioInstPri->fpAUDIOSetAvcMode((MS_U8)pu32Param[0]);
1070             break;
1071         }
1072 
1073         case MApi_CMD_AUDIO_SetAvcAT:
1074         {
1075             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetAvcAT\n");
1076             pu32Param = (MS_U32*)pArgs;
1077             psAudioInstPri->fpAUDIOSetAvcAT((MS_U8)pu32Param[0]);
1078             break;
1079         }
1080 
1081         case MApi_CMD_AUDIO_SetAvcRT:
1082         {
1083             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetAvcRT\n");
1084             pu32Param = (MS_U32*)pArgs;
1085             psAudioInstPri->fpAUDIOSetAvcRT((MS_U8)pu32Param[0]);
1086             break;
1087         }
1088 
1089         case MApi_CMD_AUDIO_SetBufferProcess:
1090         {
1091             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetBufferProcess\n");
1092             pu32Param = (MS_U32*)pArgs;
1093             psAudioInstPri->fpAUDIOSetBufferProcess((MS_U8)pu32Param[0]);
1094             break;
1095         }
1096 
1097         case MApi_CMD_AUDIO_SetSurroundXA:
1098         {
1099             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetSurroundXA\n");
1100             pu32Param = (MS_U32*)pArgs;
1101             psAudioInstPri->fpAUDIOSetSurroundXA((MS_U8)pu32Param[0]);
1102             break;
1103         }
1104 
1105         case MApi_CMD_AUDIO_SetSurroundXB:
1106         {
1107             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetSurroundXB\n");
1108             pu32Param = (MS_U32*)pArgs;
1109             psAudioInstPri->fpAUDIOSetSurroundXB((MS_U8)pu32Param[0]);
1110             break;
1111         }
1112 
1113         case MApi_CMD_AUDIO_SetSurroundXK:
1114         {
1115             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetSurroundXK\n");
1116             pu32Param = (MS_U32*)pArgs;
1117             psAudioInstPri->fpAUDIOSetSurroundXK((MS_U8)pu32Param[0]);
1118             break;
1119         }
1120 
1121         case MApi_CMD_AUDIO_SetSurroundLPFGain:
1122         {
1123             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetSurrounLPFGain\n");
1124             pu32Param = (MS_U32*)pArgs;
1125             psAudioInstPri->fpAUDIOSetSurroundLPFGain((MS_U8)pu32Param[0]);
1126             break;
1127         }
1128 
1129         case MApi_CMD_AUDIO_ConvertVolumeUnit:
1130         {
1131             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_ConvertVolumeUnit\n");
1132             pConvertVolumeUnit = (PAUDIO_ST_CONVERT_VOLUMEUNIT)pArgs;
1133             u8Status= psAudioInstPri->fpAUDIOConvertVolumeUnit(pConvertVolumeUnit->u8Uivolume);
1134             pConvertVolumeUnit->u8Ret = u8Status;
1135             break;
1136         }
1137 
1138         case MApi_CMD_AUDIO_SetPEQCoef:
1139         {
1140             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetPEQCoef\n");
1141             psAudioInstPri->fpAUDIOSetPEQCoef((AUDIO_PEQ_COEF*)pArgs);
1142             break;
1143         }
1144 
1145         case MApi_CMD_AUDIO_EnableDcRemove:
1146         {
1147             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_EnableDcRemove\n");
1148             pEnableDcRemove = (PAUDIO_ST_ENABLE_DCREMOVE)pArgs;
1149             bStatus = psAudioInstPri->fpAUDIOEnableDcRemove(pEnableDcRemove->bEndcremove);
1150             pEnableDcRemove->bRet = bStatus;
1151             break;
1152         }
1153 
1154         case MApi_CMD_AUDIO_ReleaseDecodeSystem:
1155         {
1156             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_ReleaseDecodeSystem\n");
1157             pReleaseDecodeSystem = (PAUDIO_ST_RELEASE_DECODESYSTEM)pArgs;
1158             bStatus= psAudioInstPri->fpAUDIOReleaseDecodeSystem(pReleaseDecodeSystem->DecId);
1159             pReleaseDecodeSystem->bStatus = bStatus;
1160             break;
1161         }
1162 
1163         case MApi_CMD_AUDIO_SetDecodeSystem:
1164         {
1165             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetDecodeSystem\n");
1166             pSetDecodeSystem = (PAUDIO_ST_SET_DECODESYSTEM)pArgs;
1167             bStatus = psAudioInstPri->fpAUDIOSetDecodeSystem(pSetDecodeSystem->DecId, pSetDecodeSystem->p_AudioDecStatus);
1168             pSetDecodeSystem->bStatus = bStatus;
1169             break;
1170         }
1171 
1172         case MApi_CMD_AUDIO_GetDecodeSystem:
1173         {
1174             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetDecodeSystem\n");
1175             pGetDecodeSystem = (PAUDIO_ST_GET_DECODESYSTEM)pArgs;
1176             bStatus = psAudioInstPri->fpAUDIOGetDecodeSystem(pGetDecodeSystem->DecId, pGetDecodeSystem->p_AudioDecStatus);
1177             pGetDecodeSystem->bStatus = bStatus;
1178             break;
1179         }
1180 
1181         case MApi_CMD_AUDIO_SetDecodeCmd:
1182         {
1183             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetDecodeCmd\n");
1184             pSetDecCmd = (PAUDIO_ST_SET_DECCMD)pArgs;
1185             bStatus= psAudioInstPri->fpAUDIOSetDecodeCmd(pSetDecCmd->eDecId, pSetDecCmd->eDecComamnd);
1186             pSetDecCmd->bRet = bStatus;
1187             break;
1188         }
1189 
1190         case MApi_CMD_AUDIO_OpenDecodeSystem:
1191         {
1192             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_OpenDecodeSystem\n");
1193             pOpenDecodeSystem = (PAUDIO_ST_OPEN_DECODESYSTEM)pArgs;
1194             eDecId = psAudioInstPri->fpAUDIOOpenDecodeSystem(pOpenDecodeSystem->p_AudioDecStatus);
1195             pOpenDecodeSystem->DecId = eDecId;
1196             break;
1197         }
1198 
1199         case MApi_CMD_AUDIO_SetSystem:
1200         {
1201             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetSystem\n");
1202             pSetSystem = (PAUDIO_ST_SET_SYSTEM)pArgs;
1203             bStatus= psAudioInstPri->fpAUDIOSetSystem(pSetSystem->eDecSystem);
1204             pSetSystem->bRet = bStatus;
1205             break;
1206         }
1207 
1208         case MApi_CMD_AUDIO_GetDecSysSupportStatus:
1209         {
1210             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetDecSysSupportStatus\n");
1211             pGetDecSysSupportStatus = (PAUDIO_ST_GET_DECSYSSUPPORTSTATUS)pArgs;
1212             bStatus = psAudioInstPri->fpAUDIOGetDecSysSupportStatus(pGetDecSysSupportStatus->eDecSystem);
1213             pGetDecSysSupportStatus->bRet = bStatus;
1214             break;
1215         }
1216 
1217         case MApi_CMD_AUDIO_IsMadLock:
1218         {
1219             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_IsMadLock\n");
1220             pu32Param = (MS_U32*)pArgs;
1221             bStatus = psAudioInstPri->fpAUDIOIsMadLock();
1222             *((MS_BOOL*)&(pu32Param[1])) = bStatus;
1223             break;
1224         }
1225 
1226         case MApi_CMD_AUDIO_GetDecStatus:
1227         {
1228             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetDecStatus\n");
1229             pu32Param = (MS_U32*)pArgs;
1230             eDecCmdType = psAudioInstPri->fpAUDIOGetDecStatus();
1231             *((En_DVB_decCmdType*)&(pu32Param[1])) = eDecCmdType;
1232             break;
1233         }
1234 
1235         case MApi_CMD_AUDIO_Decode_Command:
1236         {
1237             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_Decode_Command\n");
1238             pDecoderCommand = (PAUDIO_ST_DECODER_COMMAND)pArgs;
1239             if (pDecoderCommand->bSet == TRUE)
1240             {
1241                 psAudioInstPri->fpAUDIOSetCommand(pDecoderCommand->enCommandType);
1242             }
1243             else
1244             {
1245                 eDecCmd = psAudioInstPri->fpAUDIOGetCommand(pDecoderCommand->eAdoDecoderNo);
1246                 pDecoderCommand->eDecCmd = eDecCmd;
1247             }
1248             break;
1249         }
1250 
1251         case MApi_CMD_AUDIO_GetMAD_Lock:
1252         {
1253             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetMAD_Lock\n");
1254             pu32Param = (MS_U32*)pArgs;
1255             bStatus = psAudioInstPri->fpAUDIOGetMADLock();
1256             *((MS_BOOL*)&(pu32Param[1])) = bStatus;
1257             break;
1258         }
1259 
1260         case MApi_CMD_AUDIO_SETAD:
1261         {
1262             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SETAD\n");
1263             pSetAD = (PAUDIO_ST_SET_AD)pArgs;
1264             if (pSetAD->eType == AD_OUTPUT_MODE)
1265             {
1266                 psAudioInstPri->fpAUDIOSetADOutputMode(pSetAD->u8Data);
1267             }
1268             else if (pSetAD->eType == AD_ABSOLUTE_VOLUME)
1269             {
1270                 psAudioInstPri->fpAUDIOSetADAbsoluteVoluem(pSetAD->u8Data);
1271             }
1272             else if (pSetAD->eType == AD_SET_MUTE)
1273             {
1274                 psAudioInstPri->fpAUDIOADSetMute(pSetAD->bMute);
1275             }
1276             else if (pSetAD->eType == AD_SET_MAIN_VOL)
1277             {
1278                 psAudioInstPri->fpAUDIOSetMainVolumeForAD(pSetAD->u8Data, pSetAD->u8Data2);
1279             }
1280             break;
1281         }
1282 
1283         case MApi_CMD_AUDIO_SetEncInit:
1284         {
1285             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetEncInit\n");
1286             pSetEncInit = (PAUDIO_ST_SET_ENCINIT)pArgs;
1287             psAudioInstPri->fpAUDIOSetEncInit(pSetEncInit->eBitRate, pSetEncInit->u8EncFrameNum);
1288             break;
1289         }
1290 
1291         case MApi_CMD_AUDIO_SetEncCommand:
1292         {
1293             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetEncCommand\n");
1294             pu32Param = (MS_U32*)pArgs;
1295             psAudioInstPri->fpAUDIOSetEncCommand((AU_DVB_ENCCMD)pu32Param[0]);
1296             break;
1297         }
1298 
1299         case MApi_CMD_AUDIO_GetEncodeFrameInfo:
1300         {
1301             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetEncodeFrameInfo\n");
1302             psAudioInstPri->fpAUDIOGetEncodeFrameInfo((AU_DVB_ENC_FRAME_INFO*)pArgs);
1303             break;
1304         }
1305 
1306         case MApi_CMD_AUDIO_GetEncodeDoneFlag:
1307         {
1308             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetEncodeDoneFlag\n");
1309             pu32Param = (MS_U32*)pArgs;
1310             bStatus = psAudioInstPri->fpAUDIOGetEncodeDoneFlag();
1311             *((MS_BOOL*)&(pu32Param[1])) = bStatus;
1312             break;
1313         }
1314 
1315         case MApi_CMD_AUDIO_SIF_SetStandard:
1316         {
1317             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SIF_SetStandard\n");
1318             pu32Param = (MS_U32*)pArgs;
1319             psAudioInstPri->fpAUDIOSIFSetStandard((AUDIOSTANDARD_TYPE)pu32Param[0]);
1320             break;
1321         }
1322 
1323         case MApi_CMD_AUDIO_SIF_GetSoundMode:
1324         {
1325             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SIF_GetSoundMode\n");
1326             pu32Param = (MS_U32*)pArgs;
1327             u8Status = psAudioInstPri->fpAUDIOSIFGetSoundMode();
1328             *((MS_U8*)&(pu32Param[1])) = u8Status;
1329             break;
1330         }
1331 
1332         case MApi_CMD_AUDIO_SIF_SetSoundMode:
1333         {
1334             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SIF_SetSoundMode\n");
1335             pSifSetSoundMode = (PAUDIO_ST_SIF_SET_SOUNDMODE)pArgs;
1336             bStatus = psAudioInstPri->fpAUDIOSIFSetSoundMode(pSifSetSoundMode->u8SifSoundMode);
1337             pSifSetSoundMode->bRet = bStatus;
1338             break;
1339         }
1340 
1341         case MApi_CMD_AUDIO_SIF_GetAudioStatus:
1342         {
1343             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SIF_GetAudioStatus\n");
1344             pSifGetAudioStatus = (PAUDIO_ST_SIF_GET_AUDIO_STATUS)pArgs;
1345             bStatus = psAudioInstPri->fpAUDIOSIFGetAudioStatus(pSifGetAudioStatus->p_eAudioStatus);
1346             pSifGetAudioStatus->bStatus = bStatus;
1347             break;
1348         }
1349 
1350         case MApi_CMD_AUDIO_SIF_StartAutoStandardDetection:
1351         {
1352             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SIF_StartAutoStandardDetection\n");
1353             psAudioInstPri->fpAUDIOSIFStartAutoStandardDetection();
1354             break;
1355         }
1356 
1357         case MApi_CMD_AUDIO_SIF_GetResultOfAutoStandardDetection:
1358         {
1359             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SIF_GetResultOfAutoStandardDetection\n");
1360             pu32Param = (MS_U32*)pArgs;
1361             eAUDIOStand_Type = psAudioInstPri->fpAUDIOSIFGetResultOfAutoStandardDetection();
1362             *((AUDIOSTANDARD_TYPE*)&(pu32Param[1])) = eAUDIOStand_Type;
1363             break;
1364         }
1365 
1366         case MApi_CMD_AUDIO_SIF_ConvertToBasicAudioStandard:
1367         {
1368             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SIF_ConvertToBasicAudioStandard\n");
1369             pSifConvertToBasicAudioStandard = (PAUDIO_ST_SIF_CONVERTTOBASICAUDIOSTANDARD)pArgs;
1370             eAUDIOStand_Type = psAudioInstPri->fpAUDIOSIFConvertToBasicAudioStandard(pSifConvertToBasicAudioStandard->eStandard);
1371             pSifConvertToBasicAudioStandard->eRet = eAUDIOStand_Type;
1372             break;
1373         }
1374 
1375         case MApi_CMD_AUDIO_SIF_SetThreshold:
1376         {
1377             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SIF_SetThreshold\n");
1378             psAudioInstPri->fpAUDIOSIFSetThreshold((THR_TBL_TYPE *)pArgs);
1379             break;
1380         }
1381 
1382         case MApi_CMD_AUDIO_SIF_SetPrescale:
1383         {
1384             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SIF_SetPrescale\n");
1385             pSifSetPrescale = (PAUDIO_ST_SIF_SETPRESCALE)pArgs;
1386             psAudioInstPri->fpAUDIOSIFSetPrescale(pSifSetPrescale->u8GainType, pSifSetPrescale->s32DbValue);
1387             break;
1388         }
1389 
1390         case MApi_CMD_AUDIO_SIF_IsPALType:
1391         {
1392             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SIF_IsPALType\n");
1393             pSifIsPalType = (PAUDIO_ST_SIF_ISPALTYPE)pArgs;
1394             bStatus= psAudioInstPri->fpAUDIOSIFIsPALType(pSifIsPalType->ePalType);
1395             pSifIsPalType->bRet = bStatus;
1396             break;
1397         }
1398 
1399         case MApi_CMD_AUDIO_SIF_SetPALType:
1400         {
1401             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SIF_SetPALType\n");
1402             pu32Param = (MS_U32*)pArgs;
1403             psAudioInstPri->fpAUDIOSIFSetPALType((AUDIO_SIF_PAL_TYPE)pu32Param[0]);
1404             break;
1405         }
1406 
1407         case MApi_CMD_AUDIO_SIF_SendCmd:
1408         {
1409             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SIF_SendCmd\n");
1410             pSifSendCmd = (PAUDIO_ST_SIF_SENDCMD)pArgs;
1411             psAudioInstPri->fpAUDIOSIFSendCmd(pSifSendCmd->eAudSifCommand, pSifSendCmd->u8CommArg1, pSifSendCmd->u8CommArg2);
1412             break;
1413         }
1414 
1415         case MApi_CMD_AUDIO_SIF_Shift:
1416         {
1417             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SIF_Shift\n");
1418             pu32Param = (MS_U32*)pArgs;
1419             psAudioInstPri->fpAUDIOSIFShift((En_AUD_VIF_Type)pu32Param[0]);
1420             break;
1421         }
1422 
1423         case MApi_CMD_AUDIO_FM_RADIO_GetSoundMode:
1424         {
1425             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_FM_RADIO_GetSoundMode\n");
1426             pu32Param = (MS_U32*)pArgs;
1427             u8Status = psAudioInstPri->fpAUDIOFMRADIOGetSoundMode();
1428             *((MS_U8*)&(pu32Param[1])) = u8Status;
1429             break;
1430         }
1431 
1432         case MApi_CMD_AUDIO_FM_RADIO_SetSoundMode:
1433         {
1434             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_FM_RADIO_SetSoundMode\n");
1435             pu32Param = (MS_U32*)pArgs;
1436             psAudioInstPri->fpAUDIOFMRADIOSetSoundMode((MS_U8)pu32Param[0]);
1437             break;
1438         }
1439 
1440         case MApi_CMD_AUDIO_FM_RADIO_DeEmphassisOption:
1441         {
1442             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_FM_RADIO_DeEmphassisOption\n");
1443             pu32Param = (MS_U32*)pArgs;
1444             psAudioInstPri->fpAUDIOFMRADIODeEmphassisOption((MS_BOOL)pu32Param[0]);
1445             break;
1446         }
1447 
1448         case MApi_CMD_AUDIO_FM_RADIO_GetDC_Amp:
1449         {
1450             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_FM_RADIO_GetDC_Amp\n");
1451             ps32Param = (MS_S32*)pArgs;
1452             s8Status = psAudioInstPri->fpAUDIOFMRADIOGetDcAmp();
1453             *((MS_S8*)&(ps32Param[1])) = s8Status;
1454             break;
1455         }
1456 
1457         case MApi_CMD_AUDIO_FM_RADIO_Get_NSR:
1458         {
1459             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_FM_RADIO_Get_NSR\n");
1460             pu32Param = (MS_U32*)pArgs;
1461             u8Status = psAudioInstPri->fpAUDIOFMRADIOGetNSR();
1462             *((MS_U8*)&(pu32Param[1])) = u8Status;
1463             break;
1464         }
1465 
1466         case MApi_CMD_AUDIO_FM_RADIO_Reset:
1467         {
1468             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_FM_RADIO_Reset\n");
1469             psAudioInstPri->fpAUDIOFMRADIOReset();
1470             break;
1471         }
1472 
1473         case MApi_CMD_AUDIO_SPDIF_OP:
1474         {
1475             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SPDIF_OP\n");
1476             pSpdif_op = (PAUDIO_ST_SPDIF_OP)pArgs;
1477 
1478             if (pSpdif_op->eType == SPDIF_HWEN)
1479             {
1480                 psAudioInstPri->fpAUDIOSPDIFHWEN(pSpdif_op->spdif_hwen);
1481             }
1482             else if (pSpdif_op->eType == SPDIF_SETMUTE)
1483             {
1484                 psAudioInstPri->fpAUDIOSPDIFSetMute(pSpdif_op->mute_en);
1485             }
1486             else if (pSpdif_op->eType == SPDIF_SETMODE)
1487             {
1488                 psAudioInstPri->fpAUDIOSPDIFSetMode(pSpdif_op->spdif_mode);
1489             }
1490             else if (pSpdif_op->eType == SPDIF_GETMODE)
1491             {
1492                 u8Status = psAudioInstPri->fpAUDIOSPDIFGetMode();
1493                 pSpdif_op->spdif_mode = u8Status;
1494             }
1495             break;
1496         }
1497 
1498         case MApi_CMD_AUDIO_SPDIF_SCMS:
1499         {
1500             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SPDIF_SCMS\n");
1501             pSpdif_scms = (PAUDIO_ST_SPDIF_SCMS)pArgs;
1502             if (pSpdif_scms->bSetSCMS == TRUE)
1503             {
1504                 psAudioInstPri->fpAUDIOSPDIFSetSCMS(pSpdif_scms->C_bit_en, pSpdif_scms->L_bit_en);
1505             }
1506             else
1507             {
1508                 u8Status = psAudioInstPri->fpAUDIOSPDIFGetSCMS();
1509                 pSpdif_scms->Ret_bit = u8Status;
1510             }
1511             break;
1512         }
1513 
1514         case MApi_CMD_AUDIO_SPDIF_Monitor:
1515         {
1516             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SPDIF_Monitor\n");
1517             psAudioInstPri->fpAUDIOSPDIFMonitor();
1518             break;
1519         }
1520 
1521         case MApi_CMD_AUDIO_SPDIF_ChannelStatus_CTRL:
1522         {
1523             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SPDIF_ChannelStatus_CTRL\n");
1524             pSpdifChannelStatusCtrl = (PAUDIO_ST_SPDIF_CHANNELSTATUS_CTRL)pArgs;
1525             bStatus = psAudioInstPri->fpAUDIOSPDIFChannelStatusCTRL(pSpdifChannelStatusCtrl->eCsMode, pSpdifChannelStatusCtrl->eStatus);
1526             pSpdifChannelStatusCtrl->bRet = bStatus;
1527             break;
1528         }
1529 
1530         case MApi_CMD_AUDIO_DigitalOut_SetChannelStatus:
1531         {
1532             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_DigitalOut_SetChannelStatus\n");
1533             pDigitalOut_SetChannelStatus = (PAUDIO_ST_DIGITALOUT_SETCHANNELSTATUS)pArgs;
1534             bStatus = psAudioInstPri->fpAUDIODigitalOut_SetChannelStatus((DIGITAL_OUTPUT_TYPE)pDigitalOut_SetChannelStatus->ePath, (Digital_Out_Channel_Status_t*)pDigitalOut_SetChannelStatus->stChannelStatus);
1535             pDigitalOut_SetChannelStatus->bStatus = bStatus;
1536             break;
1537         }
1538 
1539         case MApi_CMD_AUDIO_DigitalOut_GetChannelStatus:
1540         {
1541             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_DigitalOut_GetChannelStatus\n");
1542             pDigitalOut_GetChannelStatus = (PAUDIO_ST_DIGITALOUT_GETCHANNELSTATUS)pArgs;
1543             psAudioInstPri->fpAUDIODigitalOut_GetChannelStatus((DIGITAL_OUTPUT_TYPE)pDigitalOut_GetChannelStatus->ePath, (Digital_Out_Channel_Status_t*)pDigitalOut_GetChannelStatus->stChannelStatus);
1544             break;
1545         }
1546 
1547         case MApi_CMD_AUDIO_DigitalOut_SetDeviceCapability:
1548         {
1549             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_DigitalOut_SetDeviceCapability\n");
1550             pDigitalOut_SetDeviceCap = (PAUDIO_ST_DIGITALOUT_SETDEVICECAP)pArgs;
1551             bStatus = psAudioInstPri->fpAUDIODigitalOut_SetDeviceCapabilty((DIGITAL_OUTPUT_TYPE)pDigitalOut_SetDeviceCap->eoutType, (AUDIO_FORMAT_CODE)pDigitalOut_SetDeviceCap->ecodecType, (Digital_Out_Device_Capability_t*)pDigitalOut_SetDeviceCap->p_codecCapability);
1552             pDigitalOut_SetDeviceCap->bStatus = bStatus;
1553             break;
1554         }
1555 
1556         case MApi_CMD_AUDIO_HDMI_Tx_SetMute:
1557         {
1558             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_HDMI_Tx_SetMute\n");
1559             pu32Param = (MS_U32*)pArgs;
1560             psAudioInstPri->fpAUDIOHDMITxSetMute((MS_BOOL)pu32Param[0]);
1561             break;
1562         }
1563 
1564         case MApi_CMD_AUDIO_HDMI_Tx_GetStatus:
1565         {
1566             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_HDMI_Tx_GetStatus\n");
1567             pHDMITx_GetStatus = (PAUDIO_HDMI_TX_GETSTATUS)pArgs;
1568             psAudioInstPri->fpAUDIOHDMITxGetStatus(&(pHDMITx_GetStatus->onOff), &(pHDMITx_GetStatus->hdmi_smpFreq), &(pHDMITx_GetStatus->outType));
1569             break;
1570         }
1571 
1572         case MApi_CMD_AUDIO_HDMI_Monitor:
1573         {
1574             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_HDMI_Monitor\n");
1575             pu32Param = (MS_U32*)pArgs;
1576             u8Status= psAudioInstPri->fpAUDIOHDMIMonitor();
1577             *((MS_U8*)&(pu32Param[1])) = u8Status;
1578             break;
1579         }
1580 
1581         case MApi_CMD_AUDIO_HDMI_GetNonpcmFlag:
1582         {
1583             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_HDMI_GetNonpcmFlag\n");
1584             pu32Param = (MS_U32*)pArgs;
1585             bStatus = psAudioInstPri->fpAUDIOHDMIGetNonpcmFlag();
1586             *((MS_BOOL*)&(pu32Param[1])) = bStatus;
1587             break;
1588         }
1589 
1590         case MApi_CMD_AUDIO_HDMI_SetNonpcm:
1591         {
1592             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_HDMI_SetNonpcm\n");
1593             pu32Param = (MS_U32*)pArgs;
1594             psAudioInstPri->fpAUDIOHDMISetNonpcm((MS_U8)pu32Param[0]);
1595             break;
1596         }
1597 
1598         case MApi_CMD_AUDIO_HDMI_Nonpcm_OP:
1599         {
1600             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_HDMI_Nonpcm_OP\n");
1601             pHDMI_Nonpcm_op = (PAUDIO_ST_HDMI_NONPCM_OP)pArgs;
1602             if (pHDMI_Nonpcm_op->bSet == TRUE)
1603             {
1604                 eHDMI_RX_Type = psAudioInstPri->fpAUDIOHDMIRxSetNonPCM(pHDMI_Nonpcm_op->nonPCM_en);
1605             }
1606             else
1607             {
1608                 eHDMI_RX_Type = psAudioInstPri->fpAUDIOHDMIRxGetNonPCM();
1609             }
1610             pHDMI_Nonpcm_op->eRet = eHDMI_RX_Type;
1611             break;
1612         }
1613 
1614         case MApi_CMD_AUDIO_DTV_HDMI_CFG:
1615         {
1616             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_DTV_HDMI_CFG\n");
1617             pu32Param = (MS_U32*)pArgs;
1618             psAudioInstPri->fpAUDIODTVHDMICFG((MS_U8)pu32Param[0]);
1619             break;
1620         }
1621 
1622         case MApi_CMD_AUDIO_HDMI_GetSynthFreq:
1623         {
1624             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_HDMI_GetSynthFreq\n");
1625             pu32Param = (MS_U32*)pArgs;
1626             u16Status = psAudioInstPri->fpAUDIOHDMIGetSynthFreg();
1627             *((MS_U16*)&(pu32Param[1])) = u16Status;
1628             break;
1629         }
1630 
1631         case MApi_CMD_AUDIO_HDMI_SetDownSample:
1632         {
1633             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_HDMI_SetDownSample\n");
1634             pu32Param = (MS_U32*)pArgs;
1635             psAudioInstPri->fpAUDIOHDMISetDownSample((MS_U8)pu32Param[0]);
1636             break;
1637         }
1638 
1639         case MApi_CMD_AUDIO_HDMI_TX_SetMode:
1640         {
1641             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_HDMI_TX_SetMode\n");
1642             pu32Param = (MS_U32*)pArgs;
1643             psAudioInstPri->fpAUDIOHDMITxSetMode((HDMI_TX_OUTPUT_TYPE)pu32Param[0]);
1644             break;
1645         }
1646 
1647         case MApi_CMD_AUDIO_HDMI_RX_GetHdmiInAudioStatus:
1648         {
1649             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_HDMI_RX_GetHdmiInAudioStatus\n");
1650             pRxHdmiSts = (PAUDIO_ST_RX_HDMI_AUDIO_STATUS)pArgs;
1651             bStatus = psAudioInstPri->fpAUDIOHDMIRxGetHDMIInAUDIOStatus(pRxHdmiSts->pHdmi_status);
1652             pRxHdmiSts->bStatus = bStatus;
1653             break;
1654         }
1655 
1656         case MApi_CMD_AUDIO_ADVSOUND_ProcessEnable:
1657         {
1658             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_ADVSOUND_ProcessEnable\n");
1659             pAdvSoundProcessEnable = (PAUDIO_ST_ADVSOUND_PROCESSENABLE)pArgs;
1660             bStatus = psAudioInstPri->fpAUDIOADVSOUNDProcessEnable(pAdvSoundProcessEnable->eType);
1661             pAdvSoundProcessEnable->bRet = bStatus;
1662             break;
1663         }
1664 
1665         case MApi_CMD_AUDIO_ADVSOUND_SubProcessEnable:
1666         {
1667             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_ADVSOUND_SubProcessEnable\n");
1668             pAdvSoundSubProcessEnable = (PAUDIO_ST_ADVSOUND_SUBPROCESSENABLE)pArgs;
1669             bStatus = psAudioInstPri->fpAUDIOADVSOUNDSubProcessEnable(pAdvSoundSubProcessEnable->eProc, pAdvSoundSubProcessEnable->bEnable);
1670             pAdvSoundSubProcessEnable->bRet = bStatus;
1671             break;
1672         }
1673 
1674         case MApi_CMD_AUDIO_ADVSOUND_SetParam:
1675         {
1676             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_ADVSOUND_SubProcessEnable\n");
1677             pAdvSoundSetParam = (PAUDIO_ST_ADVSOUND_SETPARAM)pArgs;
1678             bStatus = psAudioInstPri->fpAUDIOADVSOUNDSetParam(pAdvSoundSetParam->eParam, pAdvSoundSetParam->u16Value1, pAdvSoundSetParam->u16Value2);
1679             pAdvSoundSetParam->bRet = bStatus;
1680             break;
1681         }
1682 
1683         case MApi_CMD_AUDIO_ADVSND_SetParam:
1684         {
1685             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_ADVSND_SetParam\n");
1686             pAdvSndSetParam = (PAUDIO_ST_ADVSND_SETPARAM)pArgs;
1687             bStatus = psAudioInstPri->fpAUDIOADVSNDSetParam(pAdvSndSetParam->eParam, pAdvSndSetParam->u32Value1, pAdvSndSetParam->u16Value2);
1688             pAdvSndSetParam->bRet = bStatus;
1689             break;
1690         }
1691 
1692         case MApi_CMD_AUDIO_ADVSOUND_SET_ASF_PARAM:
1693         {
1694             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_ADVSOUND_SET_ASF_PARAM\n");
1695             pAdvSndSetAsfParam = (PAUDIO_ST_ADVSND_SETASFPARAM)pArgs;
1696             bStatus = psAudioInstPri->fpAUDIOADVSOUNDSetASFParam(pAdvSndSetAsfParam->eParam, pAdvSndSetAsfParam->s16Value1, pAdvSndSetAsfParam->s16Value2);
1697             pAdvSndSetAsfParam->bRet = bStatus;
1698             break;
1699         }
1700 
1701         case MApi_CMD_AUDIO_ADVSOUND_GetInfo:
1702         {
1703             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_ADVSOUND_GetInfo\n");
1704             pAdvSoundGetInfo = (PAUDIO_ST_SRS_ADVSOUND_GETINFO)pArgs;
1705             u32Status = psAudioInstPri->fpAUDIOADVSOUNDGetInfo(pAdvSoundGetInfo->eType);
1706             pAdvSoundGetInfo->u32Ret = u32Status;
1707             break;
1708         }
1709 
1710         case MApi_CMD_AUDIO_DBXTV_SetMode:
1711         {
1712             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_DBXTV_SetMode\n");
1713             pDbxTvSetMode = (PAUDIO_ST_DBXTV_SETMODE)pArgs;
1714             psAudioInstPri->fpAUDIODBXTV_SetMode(pDbxTvSetMode->eTotSonMode, pDbxTvSetMode->eTotVolMode, pDbxTvSetMode->eTotSurMode, pDbxTvSetMode->u32Enable);
1715             break;
1716         }
1717 
1718         case MApi_CMD_AUDIO_SeInit:
1719         {
1720             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SeInit\n");
1721             psAudioInstPri->fpAUDIOSeInit();
1722             break;
1723         }
1724 
1725         case MApi_CMD_AUDIO_SetAdvSndSys:
1726         {
1727             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetAdvSndSys\n");
1728             pSetAdvSndSys = (PAUDIO_ST_SETADVSNDSYS)pArgs;
1729             psAudioInstPri->fpAUDIOSetAdvSndSys(pSetAdvSndSys->eType);
1730             break;
1731         }
1732 
1733         case MApi_CMD_AUDIO_SetVDS:
1734         {
1735             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetVDS\n");
1736             pu32Param = (MS_U32*)pArgs;
1737             psAudioInstPri->fpAUDIOSetVDS((MS_U8)pu32Param[0]);
1738             break;
1739         }
1740 
1741         case MApi_CMD_AUDIO_SetVSPK:
1742         {
1743             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetVSPK\n");
1744             pu32Param = (MS_U32*)pArgs;
1745             psAudioInstPri->fpAUDIOSetVSPK((MS_U8)pu32Param[0]);
1746             break;
1747         }
1748 
1749         case MApi_CMD_AUDIO_SetSRS:
1750         {
1751             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetSRS\n");
1752             pu32Param = (MS_U32*)pArgs;
1753             psAudioInstPri->fpAUDIOSetSRS((MS_U8)pu32Param[0]);
1754             break;
1755         }
1756 
1757         case MApi_CMD_AUDIO_SetBBE:
1758         {
1759             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetBBE\n");
1760             pSetBBE = (PAUDIO_ST_SETBBE)pArgs;
1761             psAudioInstPri->fpAUDIOSetBBE(pSetBBE->u8EnBBE, pSetBBE->u8BBEMode);
1762             break;
1763         }
1764 
1765         case MApi_CMD_AUDIO_VSPK_WMod:
1766         {
1767             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_VSPK_WMod\n");
1768             pu32Param = (MS_U32*)pArgs;
1769             psAudioInstPri->fpAUDIOVSPKWMod((MS_U8)pu32Param[0]);
1770             break;
1771         }
1772 
1773         case MApi_CMD_AUDIO_VSPK_SMod:
1774         {
1775             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_VSPK_SMod\n");
1776             pu32Param = (MS_U32*)pArgs;
1777             psAudioInstPri->fpAUDIOVSPKSMod((MS_U8)pu32Param[0]);
1778             break;
1779         }
1780 
1781         case MApi_CMD_AUDIO_SRS_DC:
1782         {
1783             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SRS_DC\n");
1784             pu32Param = (MS_U32*)pArgs;
1785             psAudioInstPri->fpAUDIOSRSDC((MS_U8)pu32Param[0]);
1786             break;
1787         }
1788 
1789         case MApi_CMD_AUDIO_SRS_TruBass:
1790         {
1791             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SRS_TruBass\n");
1792             pu32Param = (MS_U32*)pArgs;
1793             psAudioInstPri->fpAUDIOSRSTruBass((MS_U8)pu32Param[0]);
1794             break;
1795         }
1796 
1797         case MApi_CMD_AUDIO_SRSTsxtPara:
1798         {
1799             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SRSTsxtPara\n");
1800             pSrsSetTsxtPara = (PAUDIO_ST_SRS_SETTSXTPARA)pArgs;
1801             psAudioInstPri->fpAUDIOSRSSetTsxtPara(pSrsSetTsxtPara->u8Mode, pSrsSetTsxtPara->u8Value);
1802             break;
1803         }
1804 
1805         case MApi_CMD_AUDIO_SetSRSTSHD:
1806         {
1807             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetSRSTSHD\n");
1808             pu32Param = (MS_U32*)pArgs;
1809             psAudioInstPri->fpAUDIOSetSRSTSHD((MS_U8)pu32Param[0]);
1810             break;
1811         }
1812 
1813         case MApi_CMD_AUDIO_TSHD_Clarity:
1814         {
1815             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_TSHD_Clarity\n");
1816             pu32Param = (MS_U32*)pArgs;
1817             psAudioInstPri->fpAUDIOTSHDClarity((MS_U8)pu32Param[0]);
1818             break;
1819         }
1820 
1821         case MApi_CMD_AUDIO_TSHD_TruBass:
1822         {
1823             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_TSHD_TruBass\n");
1824             pu32Param = (MS_U32*)pArgs;
1825             psAudioInstPri->fpAUDIOTSHDTruBass((MS_U8)pu32Param[0]);
1826             break;
1827         }
1828 
1829         case MApi_CMD_AUDIO_TSHD_Definition:
1830         {
1831             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_TSHD_Definition\n");
1832             pu32Param = (MS_U32*)pArgs;
1833             psAudioInstPri->fpAUDIOTSHDDefinition((MS_U8)pu32Param[0]);
1834             break;
1835         }
1836 
1837         case MApi_CMD_AUDIO_SRSSetTshdPara:
1838         {
1839             //AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SRSSetTshdPara\n");
1840             pSrsSetTshdPara = (PAUDIO_ST_SRS_SETTSHDPARA)pArgs;
1841             psAudioInstPri->fpAUDIOSRSSetTshdPara(pSrsSetTshdPara->u8Mode, pSrsSetTshdPara->u8Value);
1842             break;
1843         }
1844 
1845         case MApi_CMD_AUDIO_Copy_Parameter:
1846         {
1847             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_Copy_Parameter\n");
1848             pCopyParameter = (PAUDIO_ST_COPY_PARAMETER)pArgs;
1849             #if defined(UFO_PUBLIC_HEADER_500) || defined(UFO_PUBLIC_HEADER_700)
1850             psAudioInstPri->fpAUDIOCopyParameter((ADVSND_PARAM)(((MS_U8 *)pCopyParameter->Parameter_ptr)+pCopyParameter->parameter_size), pCopyParameter->Parameter_ptr, pCopyParameter->parameter_size);
1851             #else
1852             psAudioInstPri->fpAUDIOCopyParameter((ADVSND_PARAM)(*(((MS_U8 *)pCopyParameter->Parameter_ptr)+pCopyParameter->parameter_size)), pCopyParameter->Parameter_ptr, pCopyParameter->parameter_size);
1853             #endif
1854             break;
1855         }
1856 
1857         case MApi_CMD_AUDIO_KTV_OP:
1858         {
1859             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_KTV_OP\n");
1860             pKTV_OP = (PAUDIO_ST_KTV_OP)pArgs;
1861             if (pKTV_OP->eType == KTV_SET_INFO)
1862             {
1863                 bStatus = psAudioInstPri->fpAUDIOSetKTVInfo(pKTV_OP->modelType, pKTV_OP->paramType, pKTV_OP->param1, pKTV_OP->param2);
1864                 pKTV_OP->bRet = bStatus;
1865             }
1866             else if (pKTV_OP->eType == KTV_GET_INFO)
1867             {
1868                 u32Status = psAudioInstPri->fpAUDIOGetKTVInfo(pKTV_OP->modelType, pKTV_OP->infoType);
1869                 pKTV_OP->u32Ret = u32Status;
1870             }
1871             else if (pKTV_OP->eType == KTV_SET_MIX_VOL)
1872             {
1873                 psAudioInstPri->fpAUDIOSetMixModeVolume(pKTV_OP->eSourceType, pKTV_OP->VolType, pKTV_OP->u8Vol1, pKTV_OP->u8Vol2);
1874             }
1875             else if (pKTV_OP->eType == KTV_SET_MIX_MUTE)
1876             {
1877                 psAudioInstPri->fpAUDIOSetMixModeMute(pKTV_OP->eSourceType, pKTV_OP->VolType, pKTV_OP->EnMute);
1878             }
1879             break;
1880         }
1881 
1882         case MApi_CMD_AUDIO_PlayMenuSound:
1883         {
1884             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_PlayMenuSound\n");
1885             psAudioInstPri->fpAUDIOPlayMenuSound();
1886             break;
1887         }
1888 
1889         case MApi_CMD_AUDIO_SetCommAudioInfo:
1890         {
1891             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetCommAudioInfo\n");
1892             pSetCommAudioInfo = (PAUDIO_ST_SET_COMMAUDIOINFO)pArgs;
1893             bStatus = psAudioInstPri->fpAUDIOSetCommAudioInfo(pSetCommAudioInfo->eInfoType, pSetCommAudioInfo->Param1, pSetCommAudioInfo->Param2);
1894             pSetCommAudioInfo->bRet = bStatus;
1895             break;
1896         }
1897 
1898         case MApi_CMD_AUDIO_SetMpegInfo:
1899         {
1900             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetMpegInfo\n");
1901             pSetMpegInfo = (PAUDIO_ST_SET_MPEGINFO)pArgs;
1902             bStatus = psAudioInstPri->fpAUDIOSetMpegInfo(pSetMpegInfo->eInfoType, pSetMpegInfo->Param1, pSetMpegInfo->Param2);
1903             pSetMpegInfo->bRet = bStatus;
1904             break;
1905         }
1906 
1907         case MApi_CMD_AUDIO_SetAC3Info:
1908         {
1909             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetAC3Info\n");
1910             pSetAc3Info = (PAUDIO_ST_SET_AC3INFO)pArgs;
1911             bStatus = psAudioInstPri->fpAUDIOSetAC3Info(pSetAc3Info->eInfoType, pSetAc3Info->Param1, pSetAc3Info->Param2);
1912             pSetAc3Info->bRet = bStatus;
1913             break;
1914         }
1915 
1916         case MApi_CMD_AUDIO_SetAC3PInfo:
1917         {
1918             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetAC3PInfo\n");
1919             pSetAc3pInfo = (PAUDIO_ST_SET_AC3PINFO)pArgs;
1920             bStatus = psAudioInstPri->fpAUDIOSetAC3PInfo(pSetAc3pInfo->eInfoType, pSetAc3pInfo->Param1, pSetAc3pInfo->Param2);
1921             pSetAc3pInfo->bRet = bStatus;
1922             break;
1923         }
1924 
1925         case MApi_CMD_AUDIO_SetAACInfo:
1926         {
1927             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetAACInfo\n");
1928             pSetAacInfo = (PAUDIO_ST_SET_AACINFO)pArgs;
1929             bStatus = psAudioInstPri->fpAUDIOSetAACInfo(pSetAacInfo->eInfoType, pSetAacInfo->Param1, pSetAacInfo->Param2);
1930             pSetAacInfo->bRet = bStatus;
1931             break;
1932         }
1933 
1934         case MApi_CMD_AUDIO_SetWMAInfo:
1935         {
1936             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetWMAInfo\n");
1937             pSetWmaInfo = (PAUDIO_ST_SET_WMAINFO)pArgs;
1938             bStatus = psAudioInstPri->fpAUDIOSetWMAInfo(pSetWmaInfo->eInfoType, pSetWmaInfo->Param1, pSetWmaInfo->Param2);
1939             pSetWmaInfo->bRet = bStatus;
1940             break;
1941         }
1942 
1943         case MApi_CMD_AUDIO_SetDTSCommonCtrl:
1944         {
1945             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetDTSCommonCtrl\n");
1946             pSetDtsCommonCtrl = (PAUDIO_ST_SET_DTSCOMMONCTRL)pArgs;
1947             bStatus = psAudioInstPri->fpAUDIOSetDTSCommonCtrl(pSetDtsCommonCtrl->eInfoType, pSetDtsCommonCtrl->eCtrlType);
1948             pSetDtsCommonCtrl->bRet = bStatus;
1949             break;
1950         }
1951 
1952         case MApi_CMD_AUDIO_GetCommAudioInfo:
1953         {
1954             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetCommAudioInfo\n");
1955             pGetCommAudioInfo = (PAUDIO_ST_GET_COMMAUDIOINFO)pArgs;
1956             ulong= psAudioInstPri->fpAUDIOGetCommAudioInfo(pGetCommAudioInfo->eInfoType);
1957             pGetCommAudioInfo->u64Ret = ulong;
1958             break;
1959         }
1960 
1961         case MApi_CMD_AUDIO_GetMpegInfo:
1962         {
1963             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetMpegInfo\n");
1964             pGetMpegInfo = (PAUDIO_ST_GET_MPEGINFO)pArgs;
1965             u32Status= psAudioInstPri->fpAUDIOGetMpegInfo(pGetMpegInfo->eInfoType);
1966             pGetMpegInfo->u32Ret = u32Status;
1967             break;
1968         }
1969 
1970         case MApi_CMD_AUDIO_GetAC3Info:
1971         {
1972             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetAC3Info\n");
1973             pGetAc3Info = (PAUDIO_ST_GET_AC3INFO)pArgs;
1974             u32Status= psAudioInstPri->fpAUDIOGetAC3Info(pGetAc3Info->eInfoType);
1975             pGetAc3Info->u32Ret = u32Status;
1976             break;
1977         }
1978 
1979         case MApi_CMD_AUDIO_GetAC3PInfo:
1980         {
1981             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetAC3PInfo\n");
1982             pGetAc3pInfo = (PAUDIO_ST_GET_AC3PINFO)pArgs;
1983             u32Status= psAudioInstPri->fpAUDIOGetAC3PInfo(pGetAc3pInfo->eInfoType);
1984             pGetAc3pInfo->u32Ret = u32Status;	//todo stanley
1985             break;
1986         }
1987 
1988         case MApi_CMD_AUDIO_GetAACInfo:
1989         {
1990             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetAACInfo\n");
1991             pGetAacInfo = (PAUDIO_ST_GET_AACINFO)pArgs;
1992             u32Status= psAudioInstPri->fpAUDIOGetAACInfo(pGetAacInfo->eInfoType);
1993             pGetAacInfo->u32Ret = u32Status;
1994             break;
1995         }
1996 
1997         case MApi_CMD_AUDIO_GetWmaInfo:
1998         {
1999             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetWmaInfo\n");
2000             pGetWmaInfo = (PAUDIO_ST_GET_WMAINFO)pArgs;
2001             u32Status= psAudioInstPri->fpAUDIOGetWmaInfo(pGetWmaInfo->eInfoType);
2002             pGetWmaInfo->u32Ret = u32Status;	//todo stanley
2003             break;
2004         }
2005 
2006         case MApi_CMD_AUDIO_GetDTSInfo:
2007         {
2008             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetDTSInfo\n");
2009             pGetDtsInfo = (PAUDIO_ST_GET_DTSINFO)pArgs;
2010             u32Status= psAudioInstPri->fpAUIDOGetDTSInfo(pGetDtsInfo->eInfoType);
2011             pGetDtsInfo->u32Ret = u32Status;	//todo stanley
2012             break;
2013         }
2014 
2015         case MApi_CMD_AUDIO_XPCM_Param:
2016         {
2017             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_XPCM_Param\n");
2018             pXpcmParam = (PAUDIO_ST_XPCMPARAM)pArgs;
2019             u8Status = psAudioInstPri->fpAUDIOXPCMParam(pXpcmParam->eAudioType, pXpcmParam->u8Channels, pXpcmParam->u16SampleRate, pXpcmParam->u8BitsPerSample, pXpcmParam->u16BlockSize, pXpcmParam->u16SamplePerBlock);
2020             pXpcmParam->u8Ret = u8Status;	//todo stanley
2021             break;
2022         }
2023 
2024         case MApi_CMD_AUDIO_XPCM2_Param:
2025         {
2026             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_XPCM2_Param\n");
2027             pSetXpcmParam = (PAUDIO_ST_SET_XPCMPARAM)pArgs;
2028             psAudioInstPri->fpAUDIOXPCM2Param(pSetXpcmParam->eAudioType,pSetXpcmParam->u8Channels,pSetXpcmParam->u16SampleRate,pSetXpcmParam->u8BitsPerSample,pSetXpcmParam->u16BlockSize,pSetXpcmParam->u16SamplePerBlock);
2029             break;
2030         }
2031 
2032         case MApi_CMD_AUDIO_XPCM2_CheckIntStatus:
2033         {
2034             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_XPCM2_CheckIntStatus\n");
2035             pu32Param = (MS_U32*)pArgs;
2036             u16Status = psAudioInstPri->fpAUDIOXPCM2CheckIntStatus();
2037             *((MS_U16*)&(pu32Param[1])) = u16Status;
2038             break;
2039         }
2040 
2041         case MApi_CMD_AUDIO_RA8_Param:
2042         {
2043             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_RA8_Param\n");
2044             pRA8Param = (PAUDIO_ST_RA8_Param)pArgs;
2045             u8Status = psAudioInstPri->fpAUDIORA8Param((MS_U16)pRA8Param->mNumCodecs, (MS_U16)pRA8Param->mSamples, (MS_U16)pRA8Param->mSampleRate,
2046                         (MS_U16*)pRA8Param->pChannels, (MS_U16*)pRA8Param->pRegions, (MS_U16*)pRA8Param->pcplStart, (MS_U16*)pRA8Param->pcplQbits, (MS_U16*)pRA8Param->pFrameSize);
2047             pRA8Param->u8Status = u8Status;
2048             break;
2049         }
2050 
2051         case MApi_CMD_AUDIO_Init:
2052         {
2053             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_Init\n");
2054             pu32Param = (MS_U32*)pArgs;
2055             psAudioInstPri->fpAUDIOInit((En_DVB_decSystemType)pu32Param[0]);
2056             break;
2057         }
2058 
2059         case MApi_CMD_AUDIO_StartDecode:
2060         {
2061             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_StartDecode\n");
2062             psAudioInstPri->fpAUDIOStartDecode();
2063             break;
2064         }
2065 
2066         case MApi_CMD_AUDIO_StartBroswe:
2067         {
2068             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_StartBroswe\n");
2069             psAudioInstPri->fpAUDIOStartBrower();
2070             break;
2071         }
2072 
2073         case MApi_CMD_AUDIO_StopDecode:
2074         {
2075             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_StopDecode\n");
2076             psAudioInstPri->fpAUDIOStopDecode();
2077             break;
2078         }
2079 
2080         case MApi_CMD_AUDIO_PauseDecode:
2081         {
2082             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_PauseDecode\n");
2083             psAudioInstPri->fpAUDIOPauseDecode();
2084             break;
2085         }
2086 
2087         case MApi_CMD_AUDIO_CheckPlayDone:
2088         {
2089             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_CheckPlayDone\n");
2090             pu32Param = (MS_U32*)pArgs;
2091             u8Status = psAudioInstPri->fpAUDIOCheckPlayDone();
2092             *((MS_U8*)&(pu32Param[1])) = u8Status;
2093             break;
2094         }
2095 
2096         case MApi_CMD_AUDIO_GetResidualBufferSize:
2097         {
2098             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - IOCTL_AUDIO_GETRESIDUALBUFFERSIZE\n");
2099             pu32Param = (MS_U32*)pArgs;
2100             u16Status = psAudioInstPri->fpAUDIOGetResidualBufferSize();
2101             *((MS_U16*)&(pu32Param[1])) = u16Status;
2102             break;
2103         }
2104 
2105         case MApi_CMD_AUDIO_GetPCMBufferSize:
2106         {
2107             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetPCMBufferSize\n");
2108             pGetPcmBufferSize = (PAUDIO_ST_GET_PCMBUFFERSIZE)pArgs;
2109             u16Status = psAudioInstPri->fpAUDIOGetPCMBufferSize(pGetPcmBufferSize->u16BitRate);
2110             pGetPcmBufferSize->u16Ret = u16Status;
2111             break;
2112         }
2113 
2114         case MApi_CMD_AUDIO_GetPCMBufferSize2:
2115         {
2116             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetPCMBufferSize2\n");
2117             pGetPcmBufferSize2 = (PAUDIO_ST_GET_PCMBUFFERSIZE2)pArgs;
2118             u16Status = psAudioInstPri->fpAUDIOGetPCMBufferSize2(pGetPcmBufferSize2->u16BitRate, pGetPcmBufferSize2->u16SampleRate);
2119             pGetPcmBufferSize2->u16Ret = u16Status;	//todo stanley
2120             break;
2121         }
2122 
2123         case MApi_CMD_AUDIO_GetCurrentFrameNumber:
2124         {
2125             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetCurrentFrameNumber\n");
2126             pu32Param = (MS_U32*)pArgs;
2127             u32Status = psAudioInstPri->fpAUDIOGetCurrentFrameNumber();
2128             *((MS_U32*)&(pu32Param[1])) = u32Status;
2129             break;
2130         }
2131 
2132         case MApi_CMD_AUDIO_GetSampleRates:
2133         {
2134             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetSampleRates\n");
2135             pu32Param = (MS_U32*)pArgs;
2136             u16Status = psAudioInstPri->fpAUDIOGetSampleRate();
2137             *((MS_U16*)&(pu32Param[1])) = u16Status;
2138             break;
2139         }
2140 
2141         case MApi_CMD_AUDIO_GetBitRates:
2142         {
2143             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetBitRates\n");
2144             pu32Param = (MS_U32*)pArgs;
2145             u32Status = psAudioInstPri->fpAUDIOGetBitRate();
2146             *((MS_U32*)&(pu32Param[1])) = u32Status;
2147             break;
2148         }
2149 
2150         case MApi_CMD_AUDIO_GetLayer:
2151         {
2152             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetLayer\n");
2153             pu32Param = (MS_U32*)pArgs;
2154             eMP3_Layer = psAudioInstPri->fpAUDIOGetLayer();
2155             *((Audio_MP3_LAYER*)&(pu32Param[1])) = eMP3_Layer;
2156             break;
2157         }
2158 
2159         case MApi_CMD_AUDIO_CheckInputRequest:
2160         {
2161             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_CheckInputRequest\n");
2162             pCheckInputRequest = (PAUDIO_ST_CHECK_INPUT_REQ)pArgs;
2163             u8Status = psAudioInstPri->fpAUDIOCheckInputRequest((MS_PHY*)pCheckInputRequest->pPHYWrtAddr, (MS_U32*)pCheckInputRequest->pU32WrtBytes);
2164             pCheckInputRequest->u8Status = u8Status;
2165             break;
2166         }
2167 
2168         case MApi_CMD_AUDIO_SetInput:
2169         {
2170             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetInput\n");
2171             psAudioInstPri->fpAUDIOSetInput();
2172             break;
2173         }
2174 
2175         case MApi_CMD_AUDIO_SetSampleRateIndex:
2176         {
2177             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetSampleRateIndex\n");
2178             pu32Param = (MS_U32*)pArgs;
2179             psAudioInstPri->fpAUDIOSetSampleRateIndex((MS_U16)pu32Param[0]);
2180             break;
2181         }
2182 
2183         case MApi_CMD_AUDIO_SetXPCMParam:
2184         {
2185             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetXPCMParam\n");
2186             pSetXpcmParam = (PAUDIO_ST_SET_XPCMPARAM)pArgs;
2187             psAudioInstPri->fpAUDIOSetXPCMParam(pSetXpcmParam->eAudioType,pSetXpcmParam->u8Channels,pSetXpcmParam->u16SampleRate,pSetXpcmParam->u8BitsPerSample,pSetXpcmParam->u16BlockSize,pSetXpcmParam->u16SamplePerBlock);
2188             break;
2189         }
2190 
2191         case MApi_CMD_AUDIO_FileEndNotification:
2192         {
2193             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_FileEndNotification\n");
2194             psAudioInstPri->fpAUDIOFileEndNotification();
2195             break;
2196         }
2197 
2198         case MApi_CMD_AUDIO_FileEndDataHandle:
2199         {
2200             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_FileEndDataHandle\n");
2201             pu32Param = (MS_U32*)pArgs;
2202             psAudioInstPri->fpAUDIOFileEndDataHandle((MS_U32)pu32Param[0]);
2203             break;
2204         }
2205 
2206         case MApi_CMD_AUDIO_GetPlayTick:
2207         {
2208             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetPlayTick\n");
2209             pu32Param = (MS_U32*)pArgs;
2210             u32Status = psAudioInstPri->fpAUDIOGetPlayTick();
2211             *((MS_U32*)&(pu32Param[1])) = u32Status;
2212             break;
2213         }
2214 
2215         case MApi_CMD_AUDIO_GetEsMEMCnt:
2216         {
2217             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetEsMEMCnt\n");
2218             pu32Param = (MS_U32*)pArgs;
2219             u16Status= psAudioInstPri->fpAUDIOGetEsMEMCnt();
2220             *((MS_U16*)&(pu32Param[1])) = u16Status;
2221             break;
2222         }
2223 
2224         case MApi_CMD_AUDIO_SetASFParm:
2225         {
2226             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetASFParm\n");
2227             pSetAsfParm = (PAUDIO_ST_SET_ASFPARM)pArgs;
2228             psAudioInstPri->fpAUDIOSetASFParm(pSetAsfParm->eParmType, pSetAsfParm->u32Value);
2229             break;
2230         }
2231 
2232         case MApi_CMD_AUDIO_MM_SetInput:
2233         {
2234             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_MM_SetInput\n");
2235             pMmSetInput = (PAUDIO_ST_MM_SETINPUT)pArgs;
2236             psAudioInstPri->fpAUDIOMMSetInput(pMmSetInput->eAudDecoderNo, pMmSetInput->u8IntTag);
2237             break;
2238         }
2239 
2240         case MApi_CMD_AUDIO_MM_CheckPlayDone:
2241         {
2242             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_MM_CheckPlayDone\n");
2243 			pMmCheckPlayDone = (PAUDIO_ST_MM_CHECKPLAYDONE)pArgs;
2244             u32Status = psAudioInstPri->fpAUDIOMMCheckPlayDone(pMmCheckPlayDone->eAudDecoderNo);
2245             pMmCheckPlayDone->u32Ret = u32Status;
2246             break;
2247         }
2248 
2249         case MApi_CMD_AUDIO_MM_CheckInputRequest:
2250         {
2251             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_MM_CheckInputRequest\n");
2252             pMMCheckInputRequest = (PAUDIO_ST_MM_CHECK_INPUT_REQ)pArgs;
2253             u8Status = psAudioInstPri->fpAUDIOMMCheckInputRequest((En_DVB_AudioDecoder)pMMCheckInputRequest->AUDDecoderNo, (MS_PHY*)pMMCheckInputRequest->pPHYWrtAddr, (MS_U32*)pMMCheckInputRequest->pU32WrtBytes);
2254             pMMCheckInputRequest->u8Status = u8Status;
2255             break;
2256         }
2257 
2258         case MApi_CMD_AUDIO_DmaReader_Init:
2259         {
2260             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_DmaReader_Init\n");
2261             pu32Param = (MS_U32*)pArgs;
2262             psAudioInstPri->fpAUDIODmaReaderInit((SAMPLE_RATE)pu32Param[0]);
2263             break;
2264         }
2265 
2266         case MApi_CMD_AUDIO_DmaReader_AllInput_Init:
2267         {
2268             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_DmaReader_AllInput_Init\n");
2269             psAudioInstPri->fpAUDIODmaReaderAllInputInit();
2270             break;
2271         }
2272 
2273         case MApi_CMD_AUDIO_DmaReader_WritePCM:
2274         {
2275             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_DmaReader_WritePCM\n");
2276             pDmaReaderWritePCM = (PAUDIO_ST_DMAREADER_WRITEPCM)pArgs;
2277             bStatus = psAudioInstPri->fpAUDIODmaReaderWritePCM((void*)pDmaReaderWritePCM->pBuffer, (MS_U32)pDmaReaderWritePCM->bytes);
2278             pDmaReaderWritePCM->bStatus = bStatus;
2279             break;
2280         }
2281 
2282         case MApi_CMD_AUDIO_DmaWrite_Init:
2283         {
2284             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_DmaWrite_Init\n");
2285             psAudioInstPri->fpAUDIODmaWriterInit();
2286             break;
2287         }
2288 
2289         case MApi_CMD_AUDIO_USBPCM_Enable:
2290         {
2291             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_USBPCM_Enable\n");
2292             pu32Param = (MS_U32*)pArgs;
2293             psAudioInstPri->fpAUDIOUSBPCMEnable((MS_BOOL)pu32Param[0]);
2294             break;
2295         }
2296 
2297         case MApi_CMD_AUDIO_USBPCM_SetFlag:
2298         {
2299             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_USBPCM_SetFlag\n");
2300             pu32Param = (MS_U32*)pArgs;
2301             psAudioInstPri->fpAUDIOUSBPCMSetFlag((MS_BOOL)pu32Param[0]);
2302             break;
2303         }
2304 
2305         case MApi_CMD_AUDIO_USBPCM_GetFlag:
2306         {
2307             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_USBPCM_GetFlag\n");
2308             pu32Param = (MS_U32*)pArgs;
2309             bStatus = psAudioInstPri->fpAUDIOUSBPCMGetFlag();
2310             *((MS_BOOL*)&(pu32Param[1])) = bStatus;
2311             break;
2312         }
2313 
2314         case MApi_CMD_AUDIO_USBPCM_GetMemInfo:
2315         {
2316             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_USBPCM_GetMemInfo\n");
2317             psAudioInstPri->fpAUDIOUSBPCMGetMemInfo((AUDIO_UPLOAD_INFO*)pArgs);
2318             break;
2319         }
2320 
2321         case MApi_CMD_AUDIO_PCMCapture_Init:
2322         {
2323             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_PCMCapture_Init\n");
2324             pPCMCapture_Init = (PAUDIO_ST_PCMCAPTURE_INIT)pArgs;
2325             bStatus = psAudioInstPri->fpAUDIOPCMCaptureInit((const AUDIO_DEVICE_TYPE)pPCMCapture_Init->eID, (const AUDIO_CAPTURE_SOURCE_TYPE)pPCMCapture_Init->eSource);
2326             pPCMCapture_Init->bStatus = bStatus;
2327             break;
2328         }
2329 
2330         case MApi_CMD_AUDIO_PCMCapture_Start:
2331         {
2332             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_PCMCapture_Start\n");
2333             pPCMCapture_Init = (PAUDIO_ST_PCMCAPTURE_INIT)pArgs;
2334             bStatus = psAudioInstPri->fpAUDIOPCMCaptureStart((const AUDIO_DEVICE_TYPE)pPCMCapture_Init->eID);
2335             pPCMCapture_Init->bStatus = bStatus;
2336             break;
2337         }
2338 
2339         case MApi_CMD_AUDIO_PCMCapture_Stop:
2340         {
2341             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_PCMCapture_Stop\n");
2342             pPCMCapture_Init = (PAUDIO_ST_PCMCAPTURE_INIT)pArgs;
2343             bStatus = psAudioInstPri->fpAUDIOPCMCaptureStop((const AUDIO_DEVICE_TYPE)pPCMCapture_Init->eID);
2344             pPCMCapture_Init->bStatus = bStatus;
2345             break;
2346         }
2347 
2348         case MApi_CMD_AUDIO_PCMCapture_Read:
2349         {
2350             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_PCMCapture_Stop\n");
2351             pPCMCapture_Read = (PAUDIO_ST_PCMCAPTURE_READ)pArgs;
2352             bStatus = psAudioInstPri->fpAUDIOPCMCaptureRead((const AUDIO_DEVICE_TYPE)pPCMCapture_Read->eID, (void *)pPCMCapture_Read->pBuffer, (const MS_U32)pPCMCapture_Read->bytes);
2353             pPCMCapture_Read->bStatus = bStatus;
2354             break;
2355         }
2356 
2357         case MApi_CMD_AUDIO_VoIP_Config:
2358         {
2359             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_VoIP_Config\n");
2360             pVoipConfig = (PAUDIO_ST_VOIP_CONFIG)pArgs;
2361             bStatus = psAudioInstPri->fpAUDIOVoIPConfig(pVoipConfig->eConfigType, pVoipConfig->u32Param1, pVoipConfig->u32Param2);
2362             pVoipConfig->bRet = bStatus;
2363             break;
2364         }
2365 
2366         case MApi_CMD_AUDIO_ALSA_Check:
2367         {
2368             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_ALSA_Check\n");
2369             pu32Param = (MS_U32*)pArgs;
2370             bStatus = psAudioInstPri->fpAUDIOALSACheck();
2371             *((MS_BOOL*)&(pu32Param[1])) = bStatus;
2372             break;
2373         }
2374 
2375         case MApi_CMD_AUDIO_ALSA_Enable:
2376         {
2377             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_ALSA_Enable\n");
2378             pAlsaEnable = (PAUDIO_ST_ALSA_ENABLE)pArgs;
2379             bStatus = psAudioInstPri->fpAUDIOALSAEnable(pAlsaEnable->bEnable);
2380             pAlsaEnable->bRet = bStatus;	//todo stanley
2381             break;
2382         }
2383 
2384         case MApi_CMD_AUDIO_UNI_CheckDecodeDone:
2385         {
2386             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_UNI_CheckDecodeDone\n");
2387             pUNICheck_DecodeDone = (PAUDIO_ST_UNI_CHECK_DECODEDONE)pArgs;
2388             bStatus = psAudioInstPri->fpAUDIOUNICheckDecodeDone((MS_PHY*)pUNICheck_DecodeDone->pPHYWrtAddr, (MS_U32*)pUNICheck_DecodeDone->pU32WrtBytes);
2389             pUNICheck_DecodeDone->bStatus = bStatus;
2390             break;
2391         }
2392 
2393         case MApi_CMD_AUDIO_UNI_SetOutput:
2394         {
2395             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_UNI_SetOutput\n");
2396             pu32Param = (MS_U32*)pArgs;
2397             psAudioInstPri->fpAUDIOUNISetOutput(pu32Param[0]);
2398             break;
2399         }
2400 
2401         case MApi_CMD_AUDIO_UNI_Set_PCMInputWriteAddr:
2402         {
2403             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_UNI_Set_PCMInputWriteAddr\n");
2404             pu32Param = (MS_U32*)pArgs;
2405             psAudioInstPri->fpAUDIOUNISetPCMInputWriteAddr(pu32Param[0]);
2406             break;
2407         }
2408 
2409         case MApi_CMD_AUDIO_UNI_Get_OutPCMLevel:
2410         {
2411             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_UNI_Get_OutPCMLevel\n");
2412             pu32Param = (MS_U32*)pArgs;
2413             u32Status= psAudioInstPri->fpAUDIOUNIGetOutPCMLevel();
2414             *((MS_U32*)&(pu32Param[1])) = u32Status;
2415             break;
2416         }
2417 
2418         case MApi_CMD_AUDIO_RingTask:
2419         {
2420             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_RingTask\n");
2421             psAudioInstPri->fpAUDIORingTask((audioRingTask*)pArgs);
2422             break;
2423         }
2424 
2425         case MApi_CMD_AUDIO_Ring_DataTransfer:
2426         {
2427             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_Ring_DataTransfer\n");
2428             pRing_Data_Trans = (PAUDIO_ST_RING_DATA_TRANS)pArgs;
2429             psAudioInstPri->fpAUDIORingDataTransfer((audioRingTask*)pRing_Data_Trans->pauRingTask, (audioRingTask*)pRing_Data_Trans->pauRingTask_1);
2430             break;
2431         }
2432 
2433         case MApi_CMD_AUDIO_MM2_InitAesInfo:
2434         {
2435             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_MM2_InitAesInfo\n");
2436             pMm2InitAesInfo = (PAUDIO_ST_MM2_INITAESINFO)pArgs;
2437             bStatus = psAudioInstPri->fpAUDIOMM2InitAesInfo(pMm2InitAesInfo->eDecId);
2438             pMm2InitAesInfo->bRet = bStatus;
2439             break;
2440         }
2441 
2442         case MApi_CMD_AUDIO_MM2_CheckAesInfo:
2443         {
2444             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_MM2_CheckAesInfo\n");
2445             pMM2_CheckAesInfo = (PAUDIO_ST_MM2_CHECKAESINFO)pArgs;
2446             bStatus = psAudioInstPri->fpAUDIOMM2CheckAesInfo((AUDIO_DEC_ID)pMM2_CheckAesInfo->dec_id, (AES_INFO*)pMM2_CheckAesInfo->paes_info);
2447             break;
2448         }
2449 
2450         case MApi_CMD_AUDIO_MM2_InputAesFinished:
2451         {
2452             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_MM2_InputAesFinished\n");
2453             pMM2_InputAes_Finish = (PAUDIO_ST_MM2_INPUTAES_FINISH)pArgs;
2454             bStatus = psAudioInstPri->fpAUDIOMM2InputAesFinished((AUDIO_DEC_ID)pMM2_InputAes_Finish->dec_id, (MS_U32)pMM2_InputAes_Finish->es_size,
2455                                                                     (MS_BOOL)pMM2_InputAes_Finish->ptsExist, (MS_U64)pMM2_InputAes_Finish->pts);
2456             pMM2_InputAes_Finish->bStatus = bStatus;
2457             break;
2458         }
2459 
2460         case MApi_CMD_AUDIO_SetAudioParam2:
2461         {
2462             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_SetAudioParam2\n");
2463             pSetAudioParam2 = (PAUDIO_ST_SET_AUDIOPARAM2)pArgs;
2464             bStatus = psAudioInstPri->fpAUDIOSetAudioParam2(pSetAudioParam2->eDecId, pSetAudioParam2->eParamType,pSetAudioParam2->Param);
2465             pSetAudioParam2->bRet = bStatus;
2466             break;
2467         }
2468 
2469         case MApi_CMD_AUDIO_GetAudioInfo2:
2470         {
2471             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetAudioInfo2\n");
2472             pGetAudioInfo2 = (PAUDIO_ST_GETAUDIOINFO2)pArgs;
2473             bStatus = psAudioInstPri->fpAUDIOGetAudioInfo2((AUDIO_DEC_ID)pGetAudioInfo2->DecId, (Audio_InfoType)pGetAudioInfo2->infoType, (void*)pGetAudioInfo2->pInfo);
2474             pGetAudioInfo2->bStatus = bStatus;
2475             break;
2476         }
2477 
2478         case MApi_CMD_AUDIO_GetDDRInfo:
2479         {
2480             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetDDRInfo\n");
2481             pGetDdrInfo = (PAUDIO_ST_GET_DDRINFO)pArgs;
2482             u32Status = psAudioInstPri->fpAUDIOGetDDRInfo(pGetDdrInfo->eDecId, pGetDdrInfo->eDdrInfo);
2483             pGetDdrInfo->Ret = u32Status;
2484             break;
2485         }
2486 
2487         case MApi_CMD_AUDIO_GetCaps:
2488         {
2489             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_GetCaps\n");
2490             pGetCaps = (PAUDIO_ST_GETCAPS)pArgs;
2491             u32Status = psAudioInstPri->fpAUDIOGetCaps((AUDIO_DEC_ID)pGetCaps->eDecId, (MS_U32*)pGetCaps->pu32Caps);
2492             pGetCaps->u32Ret = u32Status;
2493             break;
2494         }
2495 
2496         case MApi_CMD_AUDIO_PcmOpen:
2497         {
2498             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_PcmOpen\n");
2499             pPcmOpen = (PAUDIO_ST_PCM_OPEN)pArgs;
2500             s32Status = psAudioInstPri->fpAUDIOPcmOpen((void*)pPcmOpen->pData);
2501             pPcmOpen->s32Ret = s32Status;
2502             break;
2503         }
2504 
2505         case MApi_CMD_AUDIO_PcmClose:
2506         {
2507             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_PcmClose\n");
2508             pPcmClose = (PAUDIO_ST_PCM_CLOSE)pArgs;
2509             s32Status = psAudioInstPri->fpAUDIOPcmClose(pPcmClose->s32DeviceId);
2510             pPcmClose->s32Ret = s32Status;
2511             break;
2512         }
2513 
2514         case MApi_CMD_AUDIO_PcmStart:
2515         {
2516             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_PcmStart\n");
2517             pPcmStart = (PAUDIO_ST_PCM_START)pArgs;
2518             s32Status = psAudioInstPri->fpAUDIOPcmStart(pPcmStart->s32DeviceId);
2519             pPcmStart->s32Ret = s32Status;
2520             break;
2521         }
2522 
2523         case MApi_CMD_AUDIO_PcmStop:
2524         {
2525             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_PcmStop\n");
2526             pPcmStop = (PAUDIO_ST_PCM_STOP)pArgs;
2527             s32Status = psAudioInstPri->fpAUDIOPcmStop(pPcmStop->s32DeviceId);
2528             pPcmStop->s32Ret = s32Status;
2529             break;
2530         }
2531 
2532         case MApi_CMD_AUDIO_PcmSet:
2533         {
2534             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_PcmSet\n");
2535             pPcmSet = (PAUDIO_ST_PCM_SET)pArgs;
2536             s32Status = psAudioInstPri->fpAUDIOPcmSet(pPcmSet->s32DeviceId, pPcmSet->u32Cmd, (const void *)pPcmSet->pData);
2537             pPcmSet->s32Ret = s32Status;
2538             break;
2539         }
2540 
2541         case MApi_CMD_AUDIO_PcmGet:
2542         {
2543             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_PcmGet\n");
2544             pPcmGet = (PAUDIO_ST_PCM_GET)pArgs;
2545             s32Status = psAudioInstPri->fpAUDIOPcmGet(pPcmGet->s32DeviceId, pPcmGet->u32Cmd, (void *)pPcmGet->pData);
2546             pPcmGet->s32Ret = s32Status;
2547             break;
2548         }
2549 
2550         case MApi_CMD_AUDIO_PcmRead:
2551         {
2552             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_PcmRead\n");
2553             pPcmRead = (PAUDIO_ST_PCM_READ)pArgs;
2554             u32Status = psAudioInstPri->fpAUDIOPcmRead(pPcmRead->s32DeviceId, (void *)pPcmRead->pBuf, pPcmRead->u32Size);
2555             pPcmRead->u32Ret = u32Status;
2556             break;
2557         }
2558 
2559         case MApi_CMD_AUDIO_PcmWrite:
2560         {
2561             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_PcmWrite\n");
2562             pPcmWrite = (PAUDIO_ST_PCM_WRITE)pArgs;
2563             u32Status = psAudioInstPri->fpAUDIOPcmWrite(pPcmWrite->s32DeviceId, (const void *)pPcmWrite->pBuf, pPcmWrite->u32Size);
2564             pPcmWrite->u32Ret = u32Status;
2565             break;
2566         }
2567 
2568         case MApi_CMD_AUDIO_PcmFlush:
2569         {
2570             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_PcmFlush\n");
2571             pPcmFlush = (PAUDIO_ST_PCM_FLUSH)pArgs;
2572             s32Status = psAudioInstPri->fpAUDIOPcmFlush(pPcmFlush->s32DeviceId);
2573             pPcmFlush->s32Ret = s32Status;
2574             break;
2575         }
2576 
2577         case MApi_CMD_AUDIO_EncoderOpen:
2578         {
2579             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_EncoderOpen\n");
2580             pEncoderOpen = (PAUDIO_ST_ENCODER_OPEN)pArgs;
2581             s32Status = psAudioInstPri->fpAUDIOEncoderOpen((void*)pEncoderOpen->pName);
2582             pEncoderOpen->s32Ret = s32Status;
2583             break;
2584         }
2585 
2586         case MApi_CMD_AUDIO_EncoderClose:
2587         {
2588             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_EncoderClose\n");
2589             pEncoderClose = (PAUDIO_ST_ENCODER_CLOSE)pArgs;
2590             s32Status = psAudioInstPri->fpAUDIOEncoderClose(pEncoderClose->s32DeviceId);
2591             pEncoderClose->s32Ret = s32Status;
2592             break;
2593         }
2594 
2595         case MApi_CMD_AUDIO_EncoderStart:
2596         {
2597             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_EncoderStart\n");
2598             pEncoderStart = (PAUDIO_ST_ENCODER_START)pArgs;
2599             s32Status = psAudioInstPri->fpAUDIOEncoderStart(pEncoderStart->s32DeviceId);
2600             pEncoderStart->s32Ret = s32Status;
2601             break;
2602         }
2603 
2604         case MApi_CMD_AUDIO_EncoderStop:
2605         {
2606             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_EncoderStop\n");
2607             pEncoderStop = (PAUDIO_ST_ENCODER_STOP)pArgs;
2608             s32Status = psAudioInstPri->fpAUDIOEncoderStop(pEncoderStop->s32DeviceId);
2609             pEncoderStop->s32Ret = s32Status;
2610             break;
2611         }
2612 
2613         case MApi_CMD_AUDIO_EncoderIoctl:
2614         {
2615             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_EncoderIoctl\n");
2616             pEncoderIoctl = (PAUDIO_ST_ENCODER_IOCTL)pArgs;
2617             s32Status = psAudioInstPri->fpAUDIOEncoderIoctl(pEncoderIoctl->s32DeviceId, pEncoderIoctl->pCmd, (void *)pEncoderIoctl->pData);
2618             pEncoderIoctl->s32Ret = s32Status;
2619             break;
2620         }
2621 
2622         case MApi_CMD_AUDIO_EncoderRead:
2623         {
2624             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_EncoderRead\n");
2625             pEncoderRead = (PAUDIO_ST_ENCODER_READ)pArgs;
2626             u32Status = psAudioInstPri->fpAUDIOEncoderRead(pEncoderRead->s32DeviceId, (void *)pEncoderRead->pBuf, pEncoderRead->u32Size);
2627             pEncoderRead->u32Ret = u32Status;
2628             break;
2629         }
2630 
2631         case MApi_CMD_AUDIO_EncoderFlush:
2632         {
2633             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "AUDIOIoctl - MApi_CMD_AUDIO_EncoderFlush\n");
2634             pEncoderFlush = (PAUDIO_ST_ENCODER_FLUSH)pArgs;
2635             s32Status = psAudioInstPri->fpAUDIOEncoderFlush(pEncoderFlush->s32DeviceId);
2636             pEncoderFlush->s32Ret = s32Status;
2637             break;
2638         }
2639 
2640         default:
2641         {
2642             AUDIO_PRINT(AUDIO_DEBUG_LEVEL_ERROR, "AUDIOIoctl - Unknown commend!!!\n");
2643             u32Ret = UTOPIA_STATUS_FAIL;
2644         }
2645     }
2646 
2647     AUDIO_PRINT(AUDIO_DEBUG_LEVEL_DEBUG, "[Audio][mapiAudio.c] cmd %d  Release\n", (unsigned int)u32Cmd);
2648 
2649     return u32Ret;
2650 }
2651 
AUDIOClose(void * pInstance)2652 MS_U32 AUDIOClose(void *pInstance)
2653 {
2654 
2655     UtopiaInstanceDelete(pInstance);
2656 
2657     return UTOPIA_STATUS_SUCCESS;
2658 }
2659 
AUDIOStr(MS_U32 u32PowerState,void * pModule)2660 MS_U32 AUDIOStr(MS_U32 u32PowerState, void *pModule)
2661 {
2662     MS_U32 u32Return = UTOPIA_STATUS_FAIL;
2663     MS_BOOL bStatus = FALSE;
2664 
2665     //UtopiaModuleGetSTRPrivate(pModule, (void**));
2666 
2667     switch (u32PowerState)
2668     {
2669         case E_POWER_SUSPEND:
2670         {
2671             /* Please Implement Module Suspend Flow Here. */
2672             //printk("\033[32m [Utopia2K] %s : %d suspending \033[m\n", __FUNCTION__,__LINE__);
2673 
2674             bStatus = _MApi_AUDIO_Suspend();
2675             //bStatus = psAudioInstPri->fpAUDIOSuspend();
2676 
2677             u32Return = UTOPIA_STATUS_SUCCESS;//SUSPEND_OK;
2678 
2679             break;
2680         }
2681 
2682         case E_POWER_RESUME:
2683         {
2684             /* Please Implement Module Resume Flow Here. */
2685             //printk("\033[32m [Utopia2K] %s : %d resume \033[m\n", __FUNCTION__,__LINE__);
2686 
2687             bStatus = _MApi_AUDIO_Resume();
2688             //bStatus = psAudioInstPri->fpAUDIOResume();
2689 
2690             u32Return = UTOPIA_STATUS_SUCCESS;//RESUME_OK;
2691 
2692             break;
2693         }
2694 
2695         default:
2696         {
2697             u32Return = UTOPIA_STATUS_FAIL;
2698 
2699             break;
2700         }
2701     }
2702 
2703     return u32Return;// for success
2704 }
2705