xref: /utopia/UTPA2-700.0.x/modules/audio/api/audio/apiAUDIO_private.h (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) 2013-2015 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 name: apiDMX_private.h
98 //  Description: Demux  (DMX) API private header file
99 //
100 ////////////////////////////////////////////////////////////////////////////////////////////////////
101 
102 #ifndef _AUDIO_PRIV_H_
103 #define _AUDIO_PRIV_H_
104 
105 #include "apiAUDIO.h"
106 #include "MsTypes.h"
107 
108 #ifdef __cplusplus
109 extern "C"
110 {
111 #endif
112 
113 //============================================================
114 // AUDIO_SYSTEM RELATIONAL API FUNCTION
115 //============================================================
116 typedef void                (*IOCTL_AUDIO_INITIALIZE)(void);
117 typedef void                (*IOCTL_AUDIO_SET_POWER_ON)(MS_BOOL);
118 typedef void                (*IOCTL_AUDIO_SETDSPBASEADDR)(MS_U8, MS_PHY, MS_PHY );
119 typedef MS_PHY              (*IOCTL_AUDIO_GETDSPMADBASEADDR)(MS_U8);
120 typedef void                (*IOCTL_AUDIO_WRITEDECMAILBOX)(MS_U8, MS_U16);
121 typedef void                (*IOCTL_AUDIO_TRIGGERSIFPLL)(void);
122 typedef void                (*IOCTL_AUDIO_MONITOR)(void);
123 typedef void                (*IOCTL_AUDIO_SETSYSTEMINFO)(AUDIO_INIT_INFO*);
124 typedef void                (*IOCTL_AUDIO_ASF_DATA_TO_DDR)(MS_BOOL);
125 typedef void                (*IOCTL_AUDIO_R2_DEBUG_MSG)(MS_BOOL);
126 typedef void                (*IOCTL_AUDIO_R2_DDR_LETENCY_MSG)(MS_BOOL);
127 typedef void                (*IOCTL_AUDIO_SETOUTCONNECTIVITY)(void);
128 typedef void                (*IOCTL_AUDIO_SETPATHINFO)(AUDIO_PATH_INFO*);
129 typedef void                (*IOCTL_AUDIO_GETPATHINFO)(AUDIO_PATH_INFO*);
130 typedef void                (*IOCTL_AUDIO_SETOUTPUTINFO)(AUDIO_OUT_INFO *);
131 typedef void                (*IOCTL_AUDIO_SETSOURCEINFO)(AUDIO_SOURCE_INFO_TYPE);
132 typedef void                (*IOCTL_AUDIO_INPUTSWITCH)(AUDIO_INPUT_TYPE, AUDIO_SWITCH_GROUP);
133 typedef void                (*IOCTL_AUDIO_SETINPUTSCALE)(int);
134 typedef void                (*IOCTL_AUDIO_SETSCARTSCALE)(int Step);
135 typedef MS_BOOL             (*IOCTL_AUDIO_AUDYSSEY_VXT_SET_THRESH_LEVEL_TABLE)(int*);
136 typedef void                (*IOCTL_AUDIO_SPDIF_SETCHANNELSTATUS)(SPDIF_CS_MODE_TYPE, SPDIF_CS_MODE_VALUE);
137 typedef MS_U16              (*IOCTL_AUDIO_SPDIF_GETCHANNELSTATUS)(SPDIF_CS_MODE_TYPE);
138 
139 typedef MS_BOOL             (*IOCTL_AUDIO_SETDATACAPTURESOURCE)(AUDIO_DEVICE_TYPE, AUDIO_CAPTURE_SOURCE_TYPE);
140 typedef void                (*IOCTL_AUDIO_SETOUTPUTSOURCEINFO)(OUTPUT_SOURCE_INFO *);
141 typedef void                (*IOCTL_AUDIO_GETOUTPUTSOURCEINFO)(OUTPUT_SOURCE_INFO *);
142 typedef MS_U16              (*IOCTL_AUDIO_READMAILBOX)(MS_BOOL, MS_U8);
143 typedef void                (*IOCTL_AUDIO_WRITEMAILBOX)(MS_BOOL, MS_U8, MS_U16);
144 typedef void                (*IOCTL_AUDIO_FWTRIGGERDSP)(MS_U16);
145 typedef void                (*IOCTL_AUDIO_SETFWSTATUS)(MS_BOOL);
146 typedef void                (*IOCTL_AUDIO_EXITAUDIOSYSTEM)(void);
147 typedef void                (*IOCTL_AUDIO_REBOOTDSP)(MS_BOOL);
148 typedef void                (*IOCTL_AUDIO_SENDINTRUPT)(MS_BOOL, MS_U8);
149 typedef void                (*IOCTL_AUDIO_I2SSETMODE)(AUDIO_I2S_MODE_TYPE, AUDIO_I2S_MODE_VALUE);
150 typedef void                (*IOCTL_AUTIO_WRITEPREINITTABLE)(void);
151 typedef void                (*IOCTL_AUDIO_ENAEARPHONE_LOWPOWER_STAGE)(void);
152 typedef void                (*IOCTL_AUDIO_ENAEARPHONE_HIGHDRIVING_STAGE)(void);
153 typedef MS_BOOL             (*IOCTL_AUDIO_SUSPEND)(void);
154 typedef MS_BOOL             (*IOCTL_AUDIO_RESUME)(void);
155 
156 
157 //=============================================================
158 // AUDIO_SOUND RELATIONAL API FUNCTION
159 //=============================================================
160 typedef MS_BOOL             (*IOCTL_SND_PROCESSENABLE)(Sound_ENABLE_Type, MS_BOOL);
161 typedef MS_BOOL             (*IOCTL_SND_SETPARAM1)(Sound_SET_PARAM_Type, MS_U16, MS_U16);
162 typedef MS_U16              (*IOCTL_SND_GETPARAM1)(Sound_GET_PARAM_Type, MS_U16);
163 typedef MS_BOOL             (*IOCTL_AUDIO_SOUND_SETPARAM)(Sound_SET_Type, MS_U32*);
164 typedef void                (*IOCTL_AUDIO_SETABSOLUTEVOLUME)(MS_U8, MS_U8, MS_U8);
165 //typedef void                (*IOCTL_AUDIO_SETPRESCALE)(MS_U8, MS_U8);
166 //typedef void                (*IOCTL_AUDIO_SETMUTE)(MS_U8, MS_BOOL);
167 typedef void                (*IOCTL_AUDIO_SOURCECONNECT)(AUDIO_OUTPORT_SOURCE_TYPE, MS_BOOL);
168 //typedef void                (*IOCTL_AUDIO_SETBALANCE)(MS_U8);
169 //typedef void                (*IOCTL_AUDIO_ENABLEEQ)(MS_BOOL);
170 //typedef void                (*IOCTL_AUDIO_ENABLETONE)(MS_BOOL);
171 //typedef void                (*IOCTL_AUDIO_ENABLEAUTOVOLUME)(MS_BOOL);
172 //typedef void                (*IOCTL_AUDIO_ENABLESURROUND)(MS_BOOL);
173 //typedef void                (*IOCTL_AUDIO_ENABLEBALANCE)(MS_BOOL);
174 typedef void                (*IOCTL_AUDIO_SETDYNAMICBASS)(MS_U8);
175 //typedef void                (*IOCTL_AUDIO_SETBASS)(MS_U8);
176 //typedef void                (*IOCTL_AUDIO_ABSOLUTEBASS)(MS_U8);
177 //typedef void                (*IOCTL_AUDIO_SETTREBLE)(MS_U8);
178 typedef void                (*IOCTL_AUDIO_ABSOLUTETREBLE)(MS_U8);
179 //typedef void                (*IOCTL_AUDIO_SETEQ)(MS_U8, MS_U8);
180 typedef void                (*IOCTL_AUDIO_SETEQ_7BAND)(MS_U8, MS_U8);
181 typedef void                (*IOCTL_AUDIO_SETAVCTHRESHOLD)(MS_U8);
182 typedef void                (*IOCTL_AUDIO_SETAVCMODE)(MS_U8);
183 typedef void                (*IOCTL_AUDIO_SETAVCAT)(MS_U8);
184 typedef void                (*IOCTL_AUDIO_SETAVCRT)(MS_U8);
185 typedef void                (*IOCTL_AUDIO_SETBUFFERPROCESS)(MS_U8);
186 typedef void                (*IOCTL_AUDIO_SETSURROUNDXA)(MS_U8);
187 typedef void                (*IOCTL_AUDIO_SETSURROUNDXB)(MS_U8);
188 typedef void                (*IOCTL_AUDIO_SETSURROUNDXK)(MS_U8);
189 typedef void                (*IOCTL_AUDIO_SETSURROUNDLPFGAIN)(MS_U8);
190 typedef MS_U8               (*IOCTL_AUDIO_CONVERTVOLUMEUNIT)(MS_U8);
191 typedef void                (*IOCTL_AUDIO_SETPEQCOEF)(AUDIO_PEQ_COEF*);
192 //typedef void                (*IOCTL_AUDIO_ENABLEPEQ)(MS_BOOL);
193 typedef MS_BOOL             (*IOCTL_AUDIO_ENABLEDCREMOVE)(MS_BOOL);
194 
195 //============================================================
196 // AUDIO_DTV RELATIONAL API FUNCTION
197 //============================================================
198 typedef MS_BOOL             (*IOCTL_AUDIO_RELEASEDECODESYSTEM)(AUDIO_DEC_ID);
199 typedef MS_BOOL             (*IOCTL_AUDIO_SETDECODESYSTEM)(AUDIO_DEC_ID, AudioDecStatus_t*);
200 typedef MS_BOOL             (*IOCTL_AUDIO_GETDECODESYSTEM)(AUDIO_DEC_ID, AudioDecStatus_t*);
201 typedef MS_BOOL             (*IOCTL_AUDIO_SETDECODECMD)(AUDIO_DEC_ID, En_DVB_decCmdType);
202 typedef AUDIO_DEC_ID        (*IOCTL_AUDIO_OPENDECODESYSTEM)(AudioDecStatus_t *);
203 typedef MS_BOOL             (*IOCTL_AUDIO_SETSYSTEM)(En_DVB_decSystemType);
204 typedef MS_BOOL             (*IOCTL_AUDIO_GETDECSYSSUPPORTSTATUS)(En_DVB_decSystemType);
205 typedef MS_BOOL             (*IOCTL_AUDIO_ISMADLOCK)(void);
206 typedef En_DVB_decCmdType   (*IOCTL_AUDIO_GETDECSTATUS)(void);
207 typedef AU_DVB_DECCMD       (*IOCTL_AUDIO_GETCOMMAND)(En_DVB_AudioDecoder);
208 typedef void                (*IOCTL_AUDIO_SETCOMMAND)(En_DVB_decCmdType);
209 typedef MS_BOOL             (*IOCTL_AUDIO_GETMAD_LOCK)(void);
210 typedef void                (*IOCTL_AUDIO_SETADOUTPUTMODE)(MS_U8);
211 typedef void                (*IOCTL_AUDIO_SETADABSOLUTEVOLUME)(MS_U8);
212 typedef void                (*IOCTL_AUDIO_SETMAINVOLUMEFORAD)(MS_U8 u8Vol1, MS_U8 u8Vol2);
213 typedef void                (*IOCTL_AUDIO_ADSETMUTE)(MS_BOOL);
214 
215 //============================================================
216 // AUDIO_PVR RELATED FUNCTIONS
217 //============================================================
218 typedef void                (*IOCTL_AUDIO_SETENCINIT)(AU_DVB_ENCBR, MS_U8);
219 typedef void                (*IOCTL_AUDIO_SETENCCOMMAND)(AU_DVB_ENCCMD);
220 typedef void                (*IOCTL_AUDIO_GETENCODEFRAMEINFO)(AU_DVB_ENC_FRAME_INFO *);
221 typedef MS_BOOL             (*IOCTL_AUDIO_GETENCODEDONEFLAG)(void);
222 
223 //============================================================
224 // AUDIO_ATV RELATIONAL API FUNCTION
225 //============================================================
226 typedef void                (*IOCTL_AUDIO_SIF_SETSTANDARD)(AUDIOSTANDARD_TYPE);
227 typedef MS_U8               (*IOCTL_AUDIO_SIF_GETSOUNDMODE)(void);
228 typedef MS_BOOL             (*IOCTL_AUDIO_SIF_SETSOUNDMODE)(MS_U8);
229 typedef MS_BOOL             (*IOCTL_AUDIO_SIF_GETAUDIOSTATUS)(AUDIOSTATUS *);
230 typedef void                (*IOCTL_AUDIO_SIF_STARTAUTOSTANDARDDETECTION)(void);
231 typedef AUDIOSTANDARD_TYPE  (*IOCTL_AUDIO_SIF_GETRESULTOFAUTOSTANDARDDETECTION)(void);
232 typedef AUDIOSTANDARD_TYPE  (*IOCTL_AUDIO_SIF_CONVERTTOBASICAUDIOSTANDARD)(AUDIOSTANDARD_TYPE);
233 typedef void                (*IOCTL_AUDIO_SIF_SETTHRESHOLD)(THR_TBL_TYPE *);
234 typedef void                (*IOCTL_AUDIO_SIF_SETPRESCALE)(MS_U8, MS_S32);
235 typedef MS_BOOL             (*IOCTL_AUDIO_SIF_ISPALTYPE)(AUDIO_SIF_PAL_TYPE);
236 typedef void                (*IOCTL_AUDIO_SIF_SETPALTYPE)(AUDIO_SIF_PAL_TYPE);
237 typedef void                (*IOCTL_AUDIO_SIF_SENDCMD)(En_AUD_SIF_CmdType, MS_U8, MS_U8);
238 typedef void                (*IOCTL_AUDIO_SIF_SHIFT)(En_AUD_VIF_Type);
239 
240 #if 1
241 //============================================================
242 // AUDIO_FM_RADIO RELATIONAL API FUNCTION
243 //============================================================
244 typedef MS_U8               (*IOCTL_AUDIO_FM_RADIO_GETSOUNDMODE)(void);
245 typedef void                (*IOCTL_AUDIO_FM_RADIO_SETSOUNDMODE)(MS_U8);
246 typedef void                (*IOCTL_AUDIO_FM_RADIO_DEEMPHASSISOPTION)(MS_BOOL);
247 typedef MS_S8               (*IOCTL_AUDIO_FM_RADIO_GET_DC_AMP)(void);
248 typedef MS_U8               (*IOCTL_AUDIO_FM_RADIO_GET_NSR)(void);
249 typedef void                (*IOCTL_AUDIO_FM_RADIO_RESET)(void);
250 #endif
251 //=============================================================
252 // AUDIO_SPDIF RELATIONAL API FUNCTION
253 //=============================================================
254 typedef void                (*IOCTL_AUDIO_SPDIF_HWEN)(MS_BOOL);
255 typedef void                (*IOCTL_AUDIO_SPDIF_SETMUTE)(MS_BOOL);
256 typedef void                (*IOCTL_AUDIO_SPDIF_SETMODE)(MS_U8);
257 typedef MS_U8               (*IOCTL_AUDIO_SPDIF_GETMODE)(void);
258 typedef void                (*IOCTL_AUDIO_SPDIF_SETSCMS)(MS_U8, MS_U8);
259 typedef MS_U8               (*IOCTL_AUDIO_SPDIF_GETSCMS)(void);
260 typedef void                (*IOCTL_AUDIO_SPDIF_MONITOR)(void);
261 typedef MS_BOOL             (*IOCTL_AUDIO_SPDIF_CHANNELSTATUS_CTRL)(AUDIO_SPDIF_CS_TYPE, AUDIO_SPDIF_CS_TYPE_STATUS);
262 typedef MS_BOOL             (*IOCTL_AUDIO_DIGITALOUT_SETCHANNELSTATUS)(DIGITAL_OUTPUT_TYPE, Digital_Out_Channel_Status_t*);
263 typedef void                (*IOCTL_AUDIO_DIGITALOUT_GETCHANNELSTATUS)(DIGITAL_OUTPUT_TYPE, Digital_Out_Channel_Status_t*);
264 typedef MS_BOOL             (*IOCTL_AUDIO_DIGITALOUT_SETDEVICECAPABILITY)(DIGITAL_OUTPUT_TYPE, AUDIO_FORMAT_CODE, Digital_Out_Device_Capability_t*);
265 
266 //=============================================================
267 // AUDIO_HDMI RELATIONAL API FUNCTION
268 //=============================================================
269 typedef void                (*IOCTL_AUDIO_HDMI_TX_SETMUTE)(MS_BOOL);
270 typedef void                (*IOCTL_AUDIO_HDMI_TX_GETSTATUS)(MS_BOOL*, AUDIO_FS_TYPE*, HDMI_TX_OUTPUT_TYPE*);
271 typedef MS_U8               (*IOCTL_AUDIO_HDMI_MONITOR)(void);
272 typedef MS_BOOL             (*IOCTL_AUDIO_HDMI_GETNONPCMFLAG)(void);
273 typedef void                (*IOCTL_AUDIO_HDMI_SETNONPCM)(MS_U8);
274 typedef AUDIO_HDMI_RX_TYPE  (*IOCTL_AUDIO_HDMI_RX_SETNONPCM)(MS_U8);
275 typedef AUDIO_HDMI_RX_TYPE  (*IOCTL_AUDIO_HDMI_RX_GETNONPCM)(void);
276 typedef void                (*IOCTL_AUDIO_DTV_HDMI_CFG)(MS_U8);
277 typedef MS_U16              (*IOCTL_AUDIO_HDMI_GETSYNTHFREG)(void);
278 typedef void                (*IOCTL_AUDIO_HDMI_SETDOWNSAMPLE)(MS_U8);
279 typedef void                (*IOCTL_AUDIO_HDMI_TX_SETMODE)(HDMI_TX_OUTPUT_TYPE);
280 typedef MS_BOOL             (*IOCTL_AUDIO_HDMI_RX_GetHDMIINAUDIOSTATUS)(ST_HDMI_AUDIO_STATUS*);
281 
282 //=============================================================
283 // AUDIO_ADVANCE_SOUND RELATIONAL API FUNCTION
284 //=============================================================
285 typedef MS_BOOL             (*IOCTL_AUDIO_ADVSOUND_PROCESSENABLE)(ADVSND_TYPE);
286 typedef MS_BOOL             (*IOCTL_AUDIO_ADVSOUND_SUBPROCESSENABLE)(ADVFUNC, MS_BOOL);
287 typedef MS_BOOL             (*IOCTL_AUDIO_ADVSOUND_SETPARAM)(ADVSND_PARAM, MS_U16, MS_U16);
288 typedef MS_BOOL             (*IOCTL_AUDIO_ADVSND_SETPARAM)(ADVSND_PARAM, MS_U32, MS_U16);
289 //typedef MS_U32              (*IOCTL_AUDIO_ADVSOUND_GETPARAM)(ADVSND_GET_PARAM);
290 typedef MS_BOOL             (*IOCTL_AUDIO_ADVSOUND_SETASFPARAM)(ADVSND_PARAM, MS_S16, MS_S16);
291 //typedef MS_U32              (*IOCTL_AUDIO_ADVSOUND_GETASFPARAM)(ADVSND_GET_PARAM param);
292 
293 typedef MS_U32              (*IOCTL_AUDIO_ADVSOUND_GETINFO)(AdvSound_GET_Type);
294 typedef void                (*IOCTL_AUDIO_DBXTV_SETMODE)(EN_DBXTV_TotSonMode, EN_DBXTV_TotVolMode, EN_DBXTV_TotSurMode,MS_U32);
295 typedef void                (*IOCTL_AUDIO_SEINIT)(void);
296 typedef void                (*IOCTL_AUDIO_SETADVSNDSYS)(En_DVB_advsndType);
297 //typedef void                (*IOCTL_AUDIO_ADVSND_SET_SOUND_PARAM)(AdvSound_SET_Type, MS_U32*);
298 typedef void                (*IOCTL_AUDIO_SETVDS)(MS_U8);
299 typedef void                (*IOCTL_AUDIO_SETVSPK)(MS_U8);
300 typedef void                (*IOCTL_AUDIO_SETSRS)(MS_U8);
301 typedef void                (*IOCTL_AUDIO_SETBBE)(MS_U8, MS_U8);
302 typedef void                (*IOCTL_AUDIO_VSPK_WMOD)(MS_U8);
303 typedef void                (*IOCTL_AUDIO_VSPK_SMOD)(MS_U8);
304 typedef void                (*IOCTL_AUDIO_SRS_DC)(MS_U8);
305 typedef void                (*IOCTL_AUDIO_SRS_TRUBASS)(MS_U8);
306 typedef void                (*IOCTL_AUDIO_SRS_SETTSXTPARA)(MS_U8, MS_U8);
307 typedef void                (*IOCTL_AUDIO_SETSRSTSHD)(MS_U8);
308 typedef void                (*IOCTL_AUDIO_TSHD_TruBass)(MS_U8);
309 typedef void                (*IOCTL_AUDIO_TSHD_DEFINITION)(MS_U8);
310 typedef void                (*IOCTL_AUDIO_TSHD_CLARITY)(MS_U8);
311 typedef void                (*IOCTL_AUDIO_SRS_SETTSHDPARA)(MS_U8, MS_U8);
312 typedef void                (*IOCTL_AUDIO_COPY_PARAMETER)(ADVSND_PARAM, void*, MS_U32);
313 
314 //=============================================================
315 // AUDIO_KTV RELATIONAL API FUNCTION
316 //=============================================================
317 typedef MS_BOOL             (*IOCTL_AUDIO_SETKTVINFO)(AUDIO_KTV_MODEL, AUDIO_KTV_PARAMTYPE, MS_U32, MS_U32);
318 typedef MS_U32              (*IOCTL_AUDIO_GETKTVINFO)(AUDIO_KTV_MODEL,AUDIO_KTV_INFOTYPE
319 );
320 typedef void                (*IOCTL_AUDIO_SETMIXMODEVOLUME)(AUDIO_SOURCE_INFO_TYPE, AUDIO_MIX_VOL_TYPE, MS_U8, MS_U8);
321 typedef void                (*IOCTL_AUDIO_SETMIXMODEMUTE)(AUDIO_SOURCE_INFO_TYPE, AUDIO_MIX_VOL_TYPE, MS_BOOL);
322 typedef void                (*IOCTL_AUDIO_PLAYMENUSOUND)(void);
323 
324 //=============================================================
325 // AUDIO_MM RELATIONAL API FUNCTION
326 //=============================================================
327 // Set Info
328 typedef MS_BOOL             (*IOCTL_AUDIO_SETCOMMAUDIOINFO)(Audio_COMM_infoType, MS_VIRT, MS_VIRT);
329 typedef MS_BOOL             (*IOCTL_AUDIO_SETDECODEPARAM)(AUDIO_DEC_ID DecId, Audio_ParamType paramType, MS_U32* Param );
330 typedef MS_BOOL             (*IOCTL_AUDIO_SETMPEGINFO)(Audio_MPEG_infoType, MS_VIRT, MS_VIRT);
331 typedef MS_BOOL             (*IOCTL_AUDIO_SETAC3INFO)(Audio_AC3_infoType , MS_VIRT, MS_VIRT);
332 typedef MS_BOOL             (*IOCTL_AUDIO_SETAC3PINFO)(Audio_AC3P_infoType , MS_VIRT, MS_VIRT);
333 typedef MS_BOOL             (*IOCTL_AUDIO_SETAACINFO)(Audio_AAC_infoType, MS_VIRT, MS_VIRT );
334 typedef MS_BOOL             (*IOCTL_AUDIO_SETWMAINFO)(Audio_WMA_infoType, MS_VIRT, MS_VIRT );
335 typedef MS_BOOL             (*IOCTL_AUDIO_SETDTSCOMMONCTRL)(Audio_DTS_infoType , Audio_DTS_CtrlType);
336 // Get Info
337 typedef MS_U64              (*IOCTL_AUDIO_GETCOMMAUDIOINFO)(Audio_COMM_infoType);
338 typedef MS_U32              (*IOCTL_AUDIO_GETMPEGINFO)(Audio_MPEG_infoType);
339 typedef MS_U32              (*IOCTL_AUDIO_GETAC3INFO)(Audio_AC3_infoType);
340 typedef MS_U32              (*IOCTL_AUDIO_GETAC3PINFO)(Audio_AC3P_infoType);
341 typedef MS_U32              (*IOCTL_AUDIO_GETAACINFO)(Audio_AAC_infoType);
342 typedef MS_U32              (*IOCTL_AUDIO_GETWMAINFO)(Audio_WMA_infoType);
343 typedef MS_U32              (*IOCTL_AUDIO_GETDTSINFO)(Audio_DTS_infoType);
344 typedef MS_U8               (*IOCTL_AUDIO_XPCM_PARAM)(XPCM_TYPE, MS_U8 , MS_U16, MS_U8 , MS_U16, MS_U16);
345 typedef void                (*IOCTL_AUDIO_XPCM2_PARAM)(XPCM_TYPE, MS_U8 , MS_U16, MS_U8 , MS_U16, MS_U16);
346 typedef MS_U16              (*IOCTL_AUDIO_XPCM2_CHECKINTSTATUS)(void);
347 // RA8
348 typedef MS_U8               (*IOCTL_AUDIO_RA8_PARAM)(MS_U16, MS_U16, MS_U16, MS_U16*, MS_U16*, MS_U16*, MS_U16*, MS_U16*);
349 
350 typedef void                (*IOCTL_AUDIO_INIT)(En_DVB_decSystemType);
351 typedef void                (*IOCTL_AUDIO_STARTDECODE)(void);
352 typedef void                (*IOCTL_AUDIO_STARTBROWSE)(void);
353 typedef void                (*IOCTL_AUDIO_STOPDECODE)(void);
354 typedef void                (*IOCTL_AUDIO_PAUSEDECODE)(void);
355 typedef MS_U8               (*IOCTL_AUDIO_CHECKPLAYDONE)(void);
356 typedef MS_U16              (*IOCTL_AUDIO_GETRESIDUALBUFFERSIZE)(void);
357 typedef MS_U16              (*IOCTL_AUDIO_GETPCMBUFFERSIZE)(MS_U16);
358 typedef MS_U16              (*IOCTL_AUDIO_GETPCMBUFFERSIZE2)(MS_U16, MS_U16);
359 typedef MS_U32              (*IOCTL_AUDIO_GETCURRENTFRAMENUMBER)(void);
360 typedef MS_U16              (*IOCTL_AUDIO_GETSAMPLERATE)(void);
361 typedef MS_U32              (*IOCTL_AUDIO_GETBITRATE)(void);
362 typedef Audio_MP3_LAYER     (*IOCTL_AUDIO_GETLAYER)(void);
363 typedef MS_U8               (*IOCTL_AUDIO_CHECKINPUTREQUEST)(MS_PHY*, MS_U32*);
364 typedef void                (*IOCTL_AUDIO_SETINPUT)(void);
365 typedef void                (*IOCTL_AUDIO_SETSAMPLERATEINDEX)(MS_U16);
366 typedef void                (*IOCTL_AUDIO_SETXPCMPARAM)(XPCM_TYPE, MS_U8, MS_U16, MS_U8, MS_U16, MS_U16);
367 typedef void                (*IOCTL_AUDIO_FILEENDNOTIFICATION)(void);
368 typedef void                (*IOCTL_AUDIO_FILEENDDATAHANDLE)(MS_U32);
369 typedef MS_U32              (*IOCTL_AUDIO_GETPLAYTICK)(void);
370 typedef MS_U16              (*IOCTL_AUDIO_GETESMEMCNT)(void);
371 typedef void                (*IOCTL_AUDIO_SETASFPARM)(WMA_ASF_PARMTYPE, MS_U32);
372 typedef void                (*IOCTL_AUDIO_MM_SETINPUT)(En_DVB_AudioDecoder, MS_U8);
373 typedef MS_U32              (*IOCTL_AUDIO_MM_CHECKPLAYDONE)(En_DVB_AudioDecoder);
374 typedef MS_U8               (*IOCTL_AUDIO_MM_CHECKINPUTREQUEST)(En_DVB_AudioDecoder, MS_PHY*, MS_U32*);
375 typedef void                (*IOCTL_AUDIO_DMAREADER_INIT)(SAMPLE_RATE);
376 typedef void                (*IOCTL_AUDIO_DMAREADER_ALLINPUT_INIT)(void);
377 typedef MS_BOOL             (*IOCTL_AUDIO_DMAREADER_WRITEPCM)(void* , MS_U32 );
378 typedef void                (*IOCTL_AUDIO_DMAWRITER_INIT)(void);
379 typedef void                (*IOCTL_AUDIO_USBPCM_ENABLE)(MS_BOOL);
380 typedef void                (*IOCTL_AUDIO_USBPCM_SETFLAG)(MS_BOOL);
381 typedef MS_BOOL             (*IOCTL_AUDIO_USBPCM_GETFLAG)(void);
382 typedef void                (*IOCTL_AUDIO_USBPCM_GETMEMINFO)(AUDIO_UPLOAD_INFO *);
383 typedef MS_BOOL             (*IOCTL_AUDIO_PCMCAPTURE_INIT)(const AUDIO_DEVICE_TYPE , const AUDIO_CAPTURE_SOURCE_TYPE);
384 typedef MS_BOOL             (*IOCTL_AUDIO_PCMCAPTURE_START)(const AUDIO_DEVICE_TYPE);
385 typedef MS_BOOL             (*IOCTL_AUDIO_PCMCAPTURE_STOP)(const AUDIO_DEVICE_TYPE);
386 typedef MS_BOOL             (*IOCTL_AUDIO_PCMCAPTURE_READ)(const AUDIO_DEVICE_TYPE , void *, const MS_U32);
387 typedef MS_BOOL             (*IOCTL_AUDIO_VOIP_CONFIG)(AUDIO_VoIP_CONFIG_TYPE, MS_U32, MS_U32);
388 typedef MS_BOOL             (*IOCTL_AUDIO_ALSA_CHECK)(void);
389 typedef MS_BOOL             (*IOCTL_AUDIO_ALSA_ENABLE)(MS_BOOL);
390 typedef MS_BOOL             (*IOCTL_AUDIO_UNI_CHECKDECODEDONE)(MS_PHY*, MS_U32*);
391 typedef void                (*IOCTL_AUDIO_UNI_SETOUTPUT)(MS_U32);
392 typedef void                (*IOCTL_AUDIO_UNI_SET_PCMINPUTWRITEADDR)(MS_U32);
393 typedef MS_U32              (*IOCTL_AUDIO_UNI_GET_OUTPCMLEVEL)(void);
394 typedef void                (*IOCTL_AUDIO_RINGTASK)(audioRingTask*);
395 typedef void                (*IOCTL_AUDIO_RING_DATATRANSFER)(audioRingTask* , audioRingTask* );
396 typedef MS_BOOL             (*IOCTL_AUDIO_MM2_INITAESINFO)(AUDIO_DEC_ID);
397 typedef MS_BOOL             (*IOCTL_AUDIO_MM2_CHECKAESINFO)(AUDIO_DEC_ID, AES_INFO*);
398 typedef MS_BOOL             (*IOCTL_AUDIO_MM2_INPUTAESFINISHED)( AUDIO_DEC_ID, MS_U32, MS_BOOL, MS_U64);
399 typedef MS_BOOL             (*IOCTL_AUDIO_SETAUDIOPARAM2)(AUDIO_DEC_ID, Audio_ParamType, MS_VIRT);
400 typedef MS_BOOL             (*IOCTL_AUDIO_GETAUDIOINFO2)(AUDIO_DEC_ID, Audio_InfoType, void*);
401 typedef MS_PHY              (*IOCTL_AUDIO_GETDDRINFO)(AUDIO_DEC_ID, EN_AUDIO_DDRINFO);
402 typedef MS_U32              (*IOCTL_AUDIO_GETCAPS)(AUDIO_DEC_ID DecId, MS_U32 *pCaps);
403 typedef MS_S32              (*IOCTL_AUDIO_PCMOPEN)(void*);
404 typedef MS_S32              (*IOCTL_AUDIO_PCMCLOSE)(MS_S32);
405 typedef MS_S32              (*IOCTL_AUDIO_PCMSTART)(MS_S32);
406 typedef MS_S32              (*IOCTL_AUDIO_PCMSTOP)(MS_S32);
407 typedef MS_S32              (*IOCTL_AUDIO_PCMSET)(MS_S32, MS_U32, const void*);
408 typedef MS_S32              (*IOCTL_AUDIO_PCMGET)(MS_S32, MS_U32, void*);
409 typedef MS_U32              (*IOCTL_AUDIO_PCMREAD)(MS_S32, void*, MS_U32);
410 typedef MS_U32              (*IOCTL_AUDIO_PCMWRITE)(MS_S32, const void*, MS_U32);
411 typedef MS_S32              (*IOCTL_AUDIO_PCMFLUSH)(MS_S32);
412 typedef MS_S32              (*IOCTL_AUDIO_ENCODEROPEN)(const char*);
413 typedef MS_S32              (*IOCTL_AUDIO_ENCODERCLOSE)(MS_S32);
414 typedef MS_S32              (*IOCTL_AUDIO_ENCODERSTART)(MS_S32);
415 typedef MS_S32              (*IOCTL_AUDIO_ENCODERSTOP)(MS_S32);
416 typedef MS_S32              (*IOCTL_AUDIO_ENCODERIOCTL)(MS_S32, const char*, void*);
417 typedef MS_U32              (*IOCTL_AUDIO_ENCODEREAD)(MS_S32, void*, MS_U32);
418 typedef MS_S32              (*IOCTL_AUDIO_ENCODERFLUSH)(MS_S32);
419 // to add...
420 
421 typedef struct _AUDIO_INSTANT_PRIVATE
422 {
423     //============================================================
424     // AUDIO_SYSTEM RELATIONAL API FUNCTION
425     //============================================================
426 
427     IOCTL_AUDIO_INITIALIZE                          fpAUDIOInitialize;
428     IOCTL_AUDIO_SET_POWER_ON                        fpAUDIOSetPowerOn;
429     IOCTL_AUDIO_SETDSPBASEADDR                      fpAUDIOSetDSPBaseAddr;
430     IOCTL_AUDIO_GETDSPMADBASEADDR                   fpAUDIOGetDSPMadBaseAddr;
431     IOCTL_AUDIO_WRITEDECMAILBOX                     fpAUDIOWriteDecMailBox;
432     IOCTL_AUDIO_TRIGGERSIFPLL                       fpAUDIOTriggerSifPLL;
433     IOCTL_AUDIO_MONITOR                             fpAUDIOMonitor;
434     IOCTL_AUDIO_SETSYSTEMINFO                       fpAUDIOSetSystemInfo;
435     IOCTL_AUDIO_ASF_DATA_TO_DDR                     fpAUDIOASFDataToDDR;
436     IOCTL_AUDIO_R2_DEBUG_MSG                        fpAUDIOR2DebugMSG;
437     IOCTL_AUDIO_R2_DDR_LETENCY_MSG                  fpAUDIOR2DDRLetencyMSG;
438     IOCTL_AUDIO_SETOUTCONNECTIVITY                  fpAUDIOSetOutConnectivity;
439     IOCTL_AUDIO_SETPATHINFO                         fpAUDIOSetPathInfo;
440     IOCTL_AUDIO_GETPATHINFO                         fpAUDIOGetPathInfo;
441     IOCTL_AUDIO_SETOUTPUTINFO                       fpAUDIOSetOutputInfo;
442     IOCTL_AUDIO_SETSOURCEINFO                       fpAUDIOSetSourceInfo;
443     IOCTL_AUDIO_INPUTSWITCH                         fpAUDIOInputSwitch;
444     IOCTL_AUDIO_SETINPUTSCALE                       fpAUDIOSetInputScale;
445     IOCTL_AUDIO_SETSCARTSCALE                       fpAUDIOSetScartScale;
446     IOCTL_AUDIO_AUDYSSEY_VXT_SET_THRESH_LEVEL_TABLE fpAUDIOAudysseyVXTSetThreshLevelTable;
447     IOCTL_AUDIO_SPDIF_SETCHANNELSTATUS              fpAUDIOSPDIFSetChannelStauts;
448     IOCTL_AUDIO_SPDIF_GETCHANNELSTATUS              fpAUDIOSPDIFGetChannelStatus;
449 
450     IOCTL_AUDIO_SETDATACAPTURESOURCE                fpAUDIOSetDataCaptureSource;
451     IOCTL_AUDIO_SETOUTPUTSOURCEINFO                 fpAUDIOSetOutputSourceInfo;
452     IOCTL_AUDIO_GETOUTPUTSOURCEINFO                 fpAUDIOGetOutputSourceInfo;
453     IOCTL_AUDIO_READMAILBOX                         fpAUDIOReadMailBox;
454     IOCTL_AUDIO_WRITEMAILBOX                        fpAUDIOWriteMailBox;
455     IOCTL_AUDIO_FWTRIGGERDSP                        fpAUDIOFwTriggerDsp;
456     IOCTL_AUDIO_SETFWSTATUS                         fpAUDIOSetFwStatus;
457     IOCTL_AUDIO_EXITAUDIOSYSTEM                     fpAUDIOExitAudioSystem;
458     IOCTL_AUDIO_REBOOTDSP                           fpAUDIORebootDSP;
459     IOCTL_AUDIO_SENDINTRUPT                         fpAUDIOSendIntrupt;
460     IOCTL_AUDIO_I2SSETMODE                          fpAUDIOI2SSetMode;
461     IOCTL_AUTIO_WRITEPREINITTABLE                   fpAUDIOWritePreInitTable;
462     IOCTL_AUDIO_ENAEARPHONE_LOWPOWER_STAGE          fpAUDIOEnaEarphoneLowPowerStage;
463     IOCTL_AUDIO_ENAEARPHONE_HIGHDRIVING_STAGE       fpAUDIOEnaEarphoneHighDrivingStage;
464     IOCTL_AUDIO_SUSPEND                             fpAUDIOSuspend;
465     IOCTL_AUDIO_RESUME                              fpAUDIOResume;
466 
467     //=============================================================
468     // AUDIO_SOUND RELATIONAL API FUNCTION
469     //=============================================================
470     IOCTL_SND_PROCESSENABLE                         fpSNDProcessEnable;
471     IOCTL_SND_SETPARAM1                             fpSNDSetParam1;
472     IOCTL_SND_GETPARAM1                             fpSNDGetParam1;
473     IOCTL_AUDIO_SOUND_SETPARAM                      fpAUDIOSoundSetParam;
474     IOCTL_AUDIO_SETABSOLUTEVOLUME                   fpAUDIOSetAbsoluteVolume;
475     //IOCTL_AUDIO_SETPRESCALE                         fpAUDIOSetPreScale;
476     //IOCTL_AUDIO_SETMUTE                             fpAUDIOSetMute;
477     IOCTL_AUDIO_SOURCECONNECT                       fpAUDIOSourceConnect;
478     //IOCTL_AUDIO_SETBALANCE                          fpAUDIOSetBalance;
479     //IOCTL_AUDIO_ENABLEEQ                            fpAUDIOEnableEQ;
480     //IOCTL_AUDIO_ENABLETONE                          fpAUDIOEnableTone;
481     //IOCTL_AUDIO_ENABLEAUTOVOLUME                    fpAUDIOEnableAutoVolume;
482     //IOCTL_AUDIO_ENABLESURROUND                      fpAUDIOEnableSurround;
483     //IOCTL_AUDIO_ENABLEBALANCE                       fpAUDIOEnableBalance;
484     IOCTL_AUDIO_SETDYNAMICBASS                      fpAUDIOSetDynamicBass;
485     //IOCTL_AUDIO_SETBASS                             fpAUDIOSetBass;
486     //IOCTL_AUDIO_ABSOLUTEBASS                        fpAUDIOAbsoluteBass;
487     //IOCTL_AUDIO_SETTREBLE                           fpAUDIOSetTreble;
488     IOCTL_AUDIO_ABSOLUTETREBLE                      fpAUDIOAbsoluteTreble;
489     //IOCTL_AUDIO_SETEQ                               fpAUDIOSetEq;
490     IOCTL_AUDIO_SETEQ_7BAND                         fpAUDIOSetEq7band;
491     IOCTL_AUDIO_SETAVCTHRESHOLD                     fpAUDIOSetAvcThreshold;
492     IOCTL_AUDIO_SETAVCMODE                          fpAUDIOSetAvcMode;
493     IOCTL_AUDIO_SETAVCAT                            fpAUDIOSetAvcAT;
494     IOCTL_AUDIO_SETAVCRT                            fpAUDIOSetAvcRT;
495     IOCTL_AUDIO_SETBUFFERPROCESS                    fpAUDIOSetBufferProcess;
496     IOCTL_AUDIO_SETSURROUNDXA                       fpAUDIOSetSurroundXA;
497     IOCTL_AUDIO_SETSURROUNDXB                       fpAUDIOSetSurroundXB;
498     IOCTL_AUDIO_SETSURROUNDXK                       fpAUDIOSetSurroundXK;
499     IOCTL_AUDIO_SETSURROUNDLPFGAIN                  fpAUDIOSetSurroundLPFGain;
500     IOCTL_AUDIO_CONVERTVOLUMEUNIT                   fpAUDIOConvertVolumeUnit;
501     IOCTL_AUDIO_SETPEQCOEF                          fpAUDIOSetPEQCoef;
502     //IOCTL_AUDIO_ENABLEPEQ                           fpAUDIOEnablePEQ;
503     IOCTL_AUDIO_ENABLEDCREMOVE                      fpAUDIOEnableDcRemove;
504 
505     //============================================================
506     // AUDIO_DTV RELATIONAL API FUNCTION
507     //============================================================
508     IOCTL_AUDIO_RELEASEDECODESYSTEM                 fpAUDIOReleaseDecodeSystem;
509     IOCTL_AUDIO_SETDECODESYSTEM                     fpAUDIOSetDecodeSystem;
510     IOCTL_AUDIO_GETDECODESYSTEM                     fpAUDIOGetDecodeSystem;
511     IOCTL_AUDIO_SETDECODECMD                        fpAUDIOSetDecodeCmd;
512     IOCTL_AUDIO_OPENDECODESYSTEM                    fpAUDIOOpenDecodeSystem;
513     IOCTL_AUDIO_SETSYSTEM                           fpAUDIOSetSystem;
514     IOCTL_AUDIO_GETDECSYSSUPPORTSTATUS              fpAUDIOGetDecSysSupportStatus;
515     IOCTL_AUDIO_ISMADLOCK                           fpAUDIOIsMadLock;
516     IOCTL_AUDIO_GETDECSTATUS                        fpAUDIOGetDecStatus;
517     IOCTL_AUDIO_GETCOMMAND                          fpAUDIOGetCommand;
518     IOCTL_AUDIO_SETCOMMAND                          fpAUDIOSetCommand;
519     IOCTL_AUDIO_GETMAD_LOCK                         fpAUDIOGetMADLock;
520     IOCTL_AUDIO_SETADOUTPUTMODE                     fpAUDIOSetADOutputMode;
521     IOCTL_AUDIO_SETADABSOLUTEVOLUME                 fpAUDIOSetADAbsoluteVoluem;
522     IOCTL_AUDIO_SETMAINVOLUMEFORAD                  fpAUDIOSetMainVolumeForAD;
523     IOCTL_AUDIO_ADSETMUTE                           fpAUDIOADSetMute;
524 
525     //============================================================
526     // AUDIO_PVR RELATED FUNCTIONS
527     //============================================================
528     IOCTL_AUDIO_SETENCINIT                          fpAUDIOSetEncInit;
529     IOCTL_AUDIO_SETENCCOMMAND                       fpAUDIOSetEncCommand;
530     IOCTL_AUDIO_GETENCODEFRAMEINFO                  fpAUDIOGetEncodeFrameInfo;
531     IOCTL_AUDIO_GETENCODEDONEFLAG                   fpAUDIOGetEncodeDoneFlag;
532 
533     //============================================================
534     // AUDIO_ATV RELATIONAL API FUNCTION
535     //============================================================
536     IOCTL_AUDIO_SIF_SETSTANDARD                     fpAUDIOSIFSetStandard;
537     IOCTL_AUDIO_SIF_GETSOUNDMODE                    fpAUDIOSIFGetSoundMode;
538     IOCTL_AUDIO_SIF_SETSOUNDMODE                    fpAUDIOSIFSetSoundMode;
539     IOCTL_AUDIO_SIF_GETAUDIOSTATUS                  fpAUDIOSIFGetAudioStatus;
540     IOCTL_AUDIO_SIF_STARTAUTOSTANDARDDETECTION      fpAUDIOSIFStartAutoStandardDetection;
541     IOCTL_AUDIO_SIF_GETRESULTOFAUTOSTANDARDDETECTION fpAUDIOSIFGetResultOfAutoStandardDetection;
542     IOCTL_AUDIO_SIF_CONVERTTOBASICAUDIOSTANDARD     fpAUDIOSIFConvertToBasicAudioStandard;
543     IOCTL_AUDIO_SIF_SETTHRESHOLD                    fpAUDIOSIFSetThreshold;
544     IOCTL_AUDIO_SIF_SETPRESCALE                     fpAUDIOSIFSetPrescale;
545     IOCTL_AUDIO_SIF_ISPALTYPE                       fpAUDIOSIFIsPALType;
546     IOCTL_AUDIO_SIF_SETPALTYPE                      fpAUDIOSIFSetPALType;
547     IOCTL_AUDIO_SIF_SENDCMD                         fpAUDIOSIFSendCmd;
548     IOCTL_AUDIO_SIF_SHIFT                           fpAUDIOSIFShift;
549 
550 #if 1
551     //============================================================
552     // AUDIO_FM_RADIO RELATIONAL API FUNCTION
553     //============================================================
554     IOCTL_AUDIO_FM_RADIO_GETSOUNDMODE               fpAUDIOFMRADIOGetSoundMode;
555     IOCTL_AUDIO_FM_RADIO_SETSOUNDMODE               fpAUDIOFMRADIOSetSoundMode;
556     IOCTL_AUDIO_FM_RADIO_DEEMPHASSISOPTION          fpAUDIOFMRADIODeEmphassisOption;
557     IOCTL_AUDIO_FM_RADIO_GET_DC_AMP                 fpAUDIOFMRADIOGetDcAmp;
558     IOCTL_AUDIO_FM_RADIO_GET_NSR                    fpAUDIOFMRADIOGetNSR;
559     IOCTL_AUDIO_FM_RADIO_RESET                      fpAUDIOFMRADIOReset;
560 #endif
561 
562     //=============================================================
563     // AUDIO_SPDIF RELATIONAL API FUNCTION
564     //=============================================================
565     IOCTL_AUDIO_SPDIF_HWEN                          fpAUDIOSPDIFHWEN;
566     IOCTL_AUDIO_SPDIF_SETMUTE                       fpAUDIOSPDIFSetMute;
567     IOCTL_AUDIO_SPDIF_SETMODE                       fpAUDIOSPDIFSetMode;
568     IOCTL_AUDIO_SPDIF_GETMODE                       fpAUDIOSPDIFGetMode;
569     IOCTL_AUDIO_SPDIF_SETSCMS                       fpAUDIOSPDIFSetSCMS;
570     IOCTL_AUDIO_SPDIF_GETSCMS                       fpAUDIOSPDIFGetSCMS;
571     IOCTL_AUDIO_SPDIF_MONITOR                       fpAUDIOSPDIFMonitor;
572     IOCTL_AUDIO_SPDIF_CHANNELSTATUS_CTRL            fpAUDIOSPDIFChannelStatusCTRL;
573     IOCTL_AUDIO_DIGITALOUT_SETCHANNELSTATUS         fpAUDIODigitalOut_SetChannelStatus;
574     IOCTL_AUDIO_DIGITALOUT_GETCHANNELSTATUS         fpAUDIODigitalOut_GetChannelStatus;
575     IOCTL_AUDIO_DIGITALOUT_SETDEVICECAPABILITY      fpAUDIODigitalOut_SetDeviceCapabilty;
576 
577     //=============================================================
578     // AUDIO_HDMI RELATIONAL API FUNCTION
579     //=============================================================
580     IOCTL_AUDIO_HDMI_TX_SETMUTE                     fpAUDIOHDMITxSetMute;
581     IOCTL_AUDIO_HDMI_TX_GETSTATUS                   fpAUDIOHDMITxGetStatus;
582     IOCTL_AUDIO_HDMI_MONITOR                        fpAUDIOHDMIMonitor;
583     IOCTL_AUDIO_HDMI_GETNONPCMFLAG                  fpAUDIOHDMIGetNonpcmFlag;
584     IOCTL_AUDIO_HDMI_SETNONPCM                      fpAUDIOHDMISetNonpcm;
585     IOCTL_AUDIO_HDMI_RX_SETNONPCM                   fpAUDIOHDMIRxSetNonPCM;
586     IOCTL_AUDIO_HDMI_RX_GETNONPCM                   fpAUDIOHDMIRxGetNonPCM;
587     IOCTL_AUDIO_DTV_HDMI_CFG                        fpAUDIODTVHDMICFG;
588     IOCTL_AUDIO_HDMI_GETSYNTHFREG                   fpAUDIOHDMIGetSynthFreg;
589     IOCTL_AUDIO_HDMI_SETDOWNSAMPLE                  fpAUDIOHDMISetDownSample;
590     IOCTL_AUDIO_HDMI_TX_SETMODE                     fpAUDIOHDMITxSetMode;
591     IOCTL_AUDIO_HDMI_RX_GetHDMIINAUDIOSTATUS        fpAUDIOHDMIRxGetHDMIInAUDIOStatus;
592 
593     //=============================================================
594     // AUDIO_ADVANCE_SOUND RELATIONAL API FUNCTION
595     //=============================================================
596     IOCTL_AUDIO_ADVSOUND_PROCESSENABLE              fpAUDIOADVSOUNDProcessEnable;
597     IOCTL_AUDIO_ADVSOUND_SUBPROCESSENABLE           fpAUDIOADVSOUNDSubProcessEnable;
598     IOCTL_AUDIO_ADVSOUND_SETPARAM                   fpAUDIOADVSOUNDSetParam;
599     IOCTL_AUDIO_ADVSND_SETPARAM                     fpAUDIOADVSNDSetParam;
600     //IOCTL_AUDIO_ADVSOUND_GETPARAM                   fpAUDIOADVSOUNDGetParam;
601     IOCTL_AUDIO_ADVSOUND_SETASFPARAM                fpAUDIOADVSOUNDSetASFParam;
602     //IOCTL_AUDIO_ADVSOUND_GETASFPARAM                fpAUDIOADVSOUNDGetASFParam;
603 
604     IOCTL_AUDIO_ADVSOUND_GETINFO                    fpAUDIOADVSOUNDGetInfo;
605     IOCTL_AUDIO_DBXTV_SETMODE                       fpAUDIODBXTV_SetMode;
606     IOCTL_AUDIO_SEINIT                              fpAUDIOSeInit;
607     IOCTL_AUDIO_SETADVSNDSYS                        fpAUDIOSetAdvSndSys;
608     //IOCTL_AUDIO_ADVSND_SET_SOUND_PARAM              fpAUDIOAdvSndSetSoundParam;
609     IOCTL_AUDIO_SETVDS                              fpAUDIOSetVDS;
610     IOCTL_AUDIO_SETVSPK                             fpAUDIOSetVSPK;
611     IOCTL_AUDIO_SETSRS                              fpAUDIOSetSRS;
612     IOCTL_AUDIO_SETBBE                              fpAUDIOSetBBE;
613     IOCTL_AUDIO_VSPK_WMOD                           fpAUDIOVSPKWMod;
614     IOCTL_AUDIO_VSPK_SMOD                           fpAUDIOVSPKSMod;
615     IOCTL_AUDIO_SRS_DC                              fpAUDIOSRSDC;
616     IOCTL_AUDIO_SRS_TRUBASS                         fpAUDIOSRSTruBass;
617     IOCTL_AUDIO_SRS_SETTSXTPARA                     fpAUDIOSRSSetTsxtPara;
618     IOCTL_AUDIO_SETSRSTSHD                          fpAUDIOSetSRSTSHD;
619     IOCTL_AUDIO_TSHD_TruBass                        fpAUDIOTSHDTruBass;
620     IOCTL_AUDIO_TSHD_DEFINITION                     fpAUDIOTSHDDefinition;
621     IOCTL_AUDIO_TSHD_CLARITY                        fpAUDIOTSHDClarity;
622     IOCTL_AUDIO_SRS_SETTSHDPARA                     fpAUDIOSRSSetTshdPara;
623     IOCTL_AUDIO_COPY_PARAMETER                      fpAUDIOCopyParameter;
624 
625     //=============================================================
626     // AUDIO_KTV RELATIONAL API FUNCTION
627     //=============================================================
628     IOCTL_AUDIO_SETKTVINFO                          fpAUDIOSetKTVInfo;
629     IOCTL_AUDIO_GETKTVINFO                          fpAUDIOGetKTVInfo;
630     IOCTL_AUDIO_SETMIXMODEVOLUME                    fpAUDIOSetMixModeVolume;
631     IOCTL_AUDIO_SETMIXMODEMUTE                      fpAUDIOSetMixModeMute;
632     IOCTL_AUDIO_PLAYMENUSOUND                       fpAUDIOPlayMenuSound;
633 
634     //=============================================================
635     // AUDIO_MM RELATIONAL API FUNCTION
636     //=============================================================
637     IOCTL_AUDIO_SETCOMMAUDIOINFO                    fpAUDIOSetCommAudioInfo;
638     IOCTL_AUDIO_SETDECODEPARAM                      fpAUDIOSetDecodeParam;
639     IOCTL_AUDIO_SETMPEGINFO                         fpAUDIOSetMpegInfo;
640     IOCTL_AUDIO_SETAC3INFO                          fpAUDIOSetAC3Info;
641     IOCTL_AUDIO_SETAC3PINFO                         fpAUDIOSetAC3PInfo;
642     IOCTL_AUDIO_SETAACINFO                          fpAUDIOSetAACInfo;
643     IOCTL_AUDIO_SETWMAINFO                          fpAUDIOSetWMAInfo;
644     IOCTL_AUDIO_SETDTSCOMMONCTRL                    fpAUDIOSetDTSCommonCtrl;
645     IOCTL_AUDIO_GETCOMMAUDIOINFO                    fpAUDIOGetCommAudioInfo;
646     IOCTL_AUDIO_GETMPEGINFO                         fpAUDIOGetMpegInfo;
647     IOCTL_AUDIO_GETAC3INFO                          fpAUDIOGetAC3Info;
648     IOCTL_AUDIO_GETAC3PINFO                         fpAUDIOGetAC3PInfo;
649     IOCTL_AUDIO_GETAACINFO                          fpAUDIOGetAACInfo;
650     IOCTL_AUDIO_GETWMAINFO                          fpAUDIOGetWmaInfo;
651     IOCTL_AUDIO_GETDTSINFO                          fpAUIDOGetDTSInfo;
652     IOCTL_AUDIO_XPCM_PARAM                          fpAUDIOXPCMParam;
653     IOCTL_AUDIO_XPCM2_PARAM                         fpAUDIOXPCM2Param;
654     IOCTL_AUDIO_XPCM2_CHECKINTSTATUS                fpAUDIOXPCM2CheckIntStatus;
655     IOCTL_AUDIO_RA8_PARAM                           fpAUDIORA8Param;
656     IOCTL_AUDIO_INIT                                fpAUDIOInit;
657     IOCTL_AUDIO_STARTDECODE                         fpAUDIOStartDecode;
658     IOCTL_AUDIO_STARTBROWSE                         fpAUDIOStartBrower;
659     IOCTL_AUDIO_STOPDECODE                          fpAUDIOStopDecode;
660     IOCTL_AUDIO_PAUSEDECODE                         fpAUDIOPauseDecode;
661     IOCTL_AUDIO_CHECKPLAYDONE                       fpAUDIOCheckPlayDone;
662     IOCTL_AUDIO_GETRESIDUALBUFFERSIZE               fpAUDIOGetResidualBufferSize;
663     IOCTL_AUDIO_GETPCMBUFFERSIZE                    fpAUDIOGetPCMBufferSize;
664     IOCTL_AUDIO_GETPCMBUFFERSIZE2                   fpAUDIOGetPCMBufferSize2;
665     IOCTL_AUDIO_GETCURRENTFRAMENUMBER               fpAUDIOGetCurrentFrameNumber;
666     IOCTL_AUDIO_GETSAMPLERATE                       fpAUDIOGetSampleRate;
667     IOCTL_AUDIO_GETBITRATE                          fpAUDIOGetBitRate;
668     IOCTL_AUDIO_GETLAYER                            fpAUDIOGetLayer;
669     IOCTL_AUDIO_CHECKINPUTREQUEST                   fpAUDIOCheckInputRequest;
670     IOCTL_AUDIO_SETINPUT                            fpAUDIOSetInput;
671     IOCTL_AUDIO_SETSAMPLERATEINDEX                  fpAUDIOSetSampleRateIndex;
672     IOCTL_AUDIO_SETXPCMPARAM                        fpAUDIOSetXPCMParam;
673     IOCTL_AUDIO_FILEENDNOTIFICATION                 fpAUDIOFileEndNotification;
674     IOCTL_AUDIO_FILEENDDATAHANDLE                   fpAUDIOFileEndDataHandle;
675     IOCTL_AUDIO_GETPLAYTICK                         fpAUDIOGetPlayTick;
676     IOCTL_AUDIO_GETESMEMCNT                         fpAUDIOGetEsMEMCnt;
677     IOCTL_AUDIO_SETASFPARM                          fpAUDIOSetASFParm;
678     IOCTL_AUDIO_MM_SETINPUT                         fpAUDIOMMSetInput;
679     IOCTL_AUDIO_MM_CHECKPLAYDONE                    fpAUDIOMMCheckPlayDone;
680     IOCTL_AUDIO_MM_CHECKINPUTREQUEST                fpAUDIOMMCheckInputRequest;
681     IOCTL_AUDIO_DMAREADER_INIT                      fpAUDIODmaReaderInit;
682     IOCTL_AUDIO_DMAREADER_ALLINPUT_INIT             fpAUDIODmaReaderAllInputInit;
683     IOCTL_AUDIO_DMAREADER_WRITEPCM                  fpAUDIODmaReaderWritePCM;
684     IOCTL_AUDIO_DMAWRITER_INIT                      fpAUDIODmaWriterInit;
685     IOCTL_AUDIO_USBPCM_ENABLE                       fpAUDIOUSBPCMEnable;
686     IOCTL_AUDIO_USBPCM_SETFLAG                      fpAUDIOUSBPCMSetFlag;
687     IOCTL_AUDIO_USBPCM_GETFLAG                      fpAUDIOUSBPCMGetFlag;
688     IOCTL_AUDIO_USBPCM_GETMEMINFO                   fpAUDIOUSBPCMGetMemInfo;
689     IOCTL_AUDIO_PCMCAPTURE_INIT                     fpAUDIOPCMCaptureInit;
690     IOCTL_AUDIO_PCMCAPTURE_START                    fpAUDIOPCMCaptureStart;
691     IOCTL_AUDIO_PCMCAPTURE_STOP                     fpAUDIOPCMCaptureStop;
692     IOCTL_AUDIO_PCMCAPTURE_READ                     fpAUDIOPCMCaptureRead;
693     IOCTL_AUDIO_VOIP_CONFIG                         fpAUDIOVoIPConfig;
694     IOCTL_AUDIO_ALSA_CHECK                          fpAUDIOALSACheck;
695     IOCTL_AUDIO_ALSA_ENABLE                         fpAUDIOALSAEnable;
696     IOCTL_AUDIO_UNI_CHECKDECODEDONE                 fpAUDIOUNICheckDecodeDone;
697     IOCTL_AUDIO_UNI_SETOUTPUT                       fpAUDIOUNISetOutput;
698     IOCTL_AUDIO_UNI_SET_PCMINPUTWRITEADDR           fpAUDIOUNISetPCMInputWriteAddr;
699     IOCTL_AUDIO_UNI_GET_OUTPCMLEVEL                 fpAUDIOUNIGetOutPCMLevel;
700     IOCTL_AUDIO_RINGTASK                            fpAUDIORingTask;
701     IOCTL_AUDIO_RING_DATATRANSFER                   fpAUDIORingDataTransfer;
702     IOCTL_AUDIO_MM2_INITAESINFO                     fpAUDIOMM2InitAesInfo;
703     IOCTL_AUDIO_MM2_CHECKAESINFO                    fpAUDIOMM2CheckAesInfo;
704     IOCTL_AUDIO_MM2_INPUTAESFINISHED                fpAUDIOMM2InputAesFinished;
705     IOCTL_AUDIO_SETAUDIOPARAM2                      fpAUDIOSetAudioParam2;
706     IOCTL_AUDIO_GETAUDIOINFO2                       fpAUDIOGetAudioInfo2;
707     IOCTL_AUDIO_GETDDRINFO                          fpAUDIOGetDDRInfo;
708     IOCTL_AUDIO_GETCAPS                             fpAUDIOGetCaps;
709     IOCTL_AUDIO_PCMOPEN                             fpAUDIOPcmOpen;
710     IOCTL_AUDIO_PCMCLOSE                            fpAUDIOPcmClose;
711     IOCTL_AUDIO_PCMSTART                            fpAUDIOPcmStart;
712     IOCTL_AUDIO_PCMSTOP                             fpAUDIOPcmStop;
713     IOCTL_AUDIO_PCMSET                              fpAUDIOPcmSet;
714     IOCTL_AUDIO_PCMGET                              fpAUDIOPcmGet;
715     IOCTL_AUDIO_PCMREAD                             fpAUDIOPcmRead;
716     IOCTL_AUDIO_PCMWRITE                            fpAUDIOPcmWrite;
717     IOCTL_AUDIO_PCMFLUSH                            fpAUDIOPcmFlush;
718     IOCTL_AUDIO_ENCODEROPEN                         fpAUDIOEncoderOpen;
719     IOCTL_AUDIO_ENCODERCLOSE                        fpAUDIOEncoderClose;
720     IOCTL_AUDIO_ENCODERSTART                        fpAUDIOEncoderStart;
721     IOCTL_AUDIO_ENCODERSTOP                         fpAUDIOEncoderStop;
722     IOCTL_AUDIO_ENCODERIOCTL                        fpAUDIOEncoderIoctl;
723     IOCTL_AUDIO_ENCODEREAD                          fpAUDIOEncoderRead;
724     IOCTL_AUDIO_ENCODERFLUSH                        fpAUDIOEncoderFlush;
725 }AUDIO_INSTANT_PRIVATE;
726 
727 
728 typedef struct _AUDIO_RESOURCE_PRIVATE
729 {
730     MS_U32 Dummy;
731 }AUDIO_RESOURCE_PRIVATE;
732 
733 void    AUDIORegisterToUtopia(FUtopiaOpen ModuleType);
734 MS_U32  AUDIOOpen(void **pInstance, void *pAttribute);
735 MS_U32  AUDIOClose(void *pInstance);
736 MS_U32  AUDIOIoctl(void *pInstance, MS_U32 u32Cmd, void *pArgs);
737 MS_U32  AUDIOStr(MS_U32 u32PowerState, void *pModule);
738 
739 
740 //----------------------
741 // Utopia 1.0 body API
742 //----------------------
743 
744 //============================================================
745 // AUDIO_SYSTEM RELATIONAL API FUNCTION
746 //============================================================
747 
748 void                _MApi_AUDIO_Initialize(void);
749 void                _MApi_AUDIO_SetPowerOn(MS_BOOL bFlag);
750 void                _MApi_AUDIO_SetDspBaseAddr(MS_U8 u8Index, MS_U32 u32Bin_Base_Address, MS_U32 u32Mad_Base_Buffer_Adr);
751 MS_U32              _MApi_AUDIO_GetDspMadBaseAddr(MS_U8 u8Index);
752 void                _MApi_AUDIO_WriteDecMailBox(MS_U8 u8ParamNum, MS_U16 u16Data);
753 void                _MApi_AUDIO_TriggerSifPLL(void);
754 //// **** PATCH GROUP ****////
755 void                _MDrv_AUDIO_SetDspBaseAddr(MS_U8 u8Index, MS_PHY u32Bin_Base_Address, MS_PHY u32Mad_Base_Buffer_Adr);
756 MS_PHY              _MDrv_AUDIO_GetDspMadBaseAddr(MS_U8 u8Index);
757 void                _MDrv_AUDIO_WriteDecMailBox(MS_U8 u8ParamNum, MS_U16 u16Data);
758 void                _MDrv_AUDIO_TriggerSifPLL(void);
759 //// ** PATCH GROUP END **////
760 void                _MApi_Audio_Monitor(void);
761 void                _MApi_AUDIO_SetSystemInfo(AUDIO_INIT_INFO *pau_info);
762 //void                _MApi_AUDIO_ASF_Data_To_DDR(MS_BOOL bEnable);
763 //void                _MApi_AUDIO_R2_DEBUG_MSG(MS_BOOL bEnable);
764 //void                _MApi_AUDIO_R2_DDR_LATENCY_MSG(MS_BOOL bEnable);
765 
766 void                _MApi_AUDIO_SetOutConnectivity(void);
767 void                _MApi_AUDIO_SetPathInfo(AUDIO_PATH_INFO *path_info);
768 void                _MApi_AUDIO_GetPathInfo(AUDIO_PATH_INFO *path_info);
769 void                _MApi_AUDIO_SetOutputInfo(AUDIO_OUT_INFO *pout_info);
770 void                _MApi_AUDIO_SetSourceInfo(AUDIO_SOURCE_INFO_TYPE eSourceType);
771 void                _MApi_AUDIO_InputSwitch(AUDIO_INPUT_TYPE enSource, AUDIO_SWITCH_GROUP enGroup);
772 //void                _MApi_AUDIO_SetInputScale(int Step);
773 //void                _MApi_AUDIO_SetScartScale(int Step);
774 //MS_BOOL             _MApi_AUDIO_Audyssey_VXT_Set_THRESH_LEVEL_TABLE(int *thresh_level_table);
775 //void                _MApi_AUDIO_SPDIF_SetChannelStatus(SPDIF_CS_MODE_TYPE eType, SPDIF_CS_MODE_VALUE eValue);
776 //MS_U16              _MApi_AUDIO_SPDIF_GetChannelStatus(SPDIF_CS_MODE_TYPE eType);
777 
778 MS_BOOL             _MApi_AUDIO_SetDataCaptureSource(AUDIO_DEVICE_TYPE eID, AUDIO_CAPTURE_SOURCE_TYPE eSource);
779 void                _MApi_AUDIO_SetOutputSourceInfo(OUTPUT_SOURCE_INFO *pSourceInfo);
780 void                _MApi_AUDIO_GetOutputSourceInfo(OUTPUT_SOURCE_INFO *pSourceInfo);
781 MS_U16              _MApi_AUDIO_ReadMailBox(MS_BOOL bDspType, MS_U8 u8ParamNum);
782 void                _MApi_AUDIO_WriteMailBox(MS_BOOL bDspType, MS_U8 u8ParamNum, MS_U16 u16Data);
783 void                _MApi_AUDIO_FwTriggerDSP(MS_U16 u16Cmd);
784 void                _MApi_AUDIO_SetFwStatus(MS_BOOL bBootOnDDR);
785 void                _MApi_AUDIO_ExitAudioSystem(void);
786 void                _MApi_AUDIO_RebootDsp(MS_BOOL bDspType);
787 void                _MApi_AUDIO_SendIntrupt(MS_BOOL bDspType,MS_U8 u8Cmd);
788 void                _MApi_AUDIO_I2S_SetMode(AUDIO_I2S_MODE_TYPE u8Mode, AUDIO_I2S_MODE_VALUE  u8Val);
789 void                _MApi_AUDIO_WritePreInitTable(void);
790 void                _MApi_AUDIO_EnaEarphone_LowPower_Stage(void);
791 void                _MApi_AUDIO_EnaEarphone_HighDriving_Stage(void);
792 
793 MS_BOOL             _MApi_AUDIO_Suspend(void);
794 MS_BOOL             _MApi_AUDIO_Resume(void);
795 
796 //=============================================================
797 // AUDIO_SOUND RELATIONAL API FUNCTION
798 //=============================================================
799 MS_BOOL             _MApi_SND_ProcessEnable(Sound_ENABLE_Type Type, MS_BOOL enable);
800 MS_BOOL             _MApi_SND_SetParam1(Sound_SET_PARAM_Type Type, MS_U16 param1, MS_U16 param2);
801 MS_U16              _MApi_SND_GetParam1(Sound_GET_PARAM_Type Type, MS_U16 param1);
802 MS_BOOL             _MApi_AUDIO_SOUND_SetParam(Sound_SET_Type Type, MS_U32 *p_param);
803 void                _MApi_AUDIO_SetAbsoluteVolume(MS_U8 u8Path, MS_U8 u8Vol1, MS_U8 u8Vol2);
804 void                _MApi_AUDIO_SetPreScale(MS_U8 u8Path, MS_U8 u8PreScale);
805 void                _MApi_AUDIO_SetMute(MS_U8 u8Path, MS_BOOL EnMute );
806 void                _MApi_AUDIO_SourceConnect(AUDIO_OUTPORT_SOURCE_TYPE eConnectSourceType, MS_BOOL bConnect );
807 void                _MApi_AUDIO_SetBalance(MS_U8 u8Balance);
808 void                _MApi_AUDIO_EnableEQ(MS_BOOL EnEQ);
809 void                _MApi_AUDIO_EnableTone(MS_BOOL EnTone);
810 void                _MApi_AUDIO_EnableAutoVolume(MS_BOOL EnAVC);
811 void                _MApi_AUDIO_EnableSurround(MS_BOOL EnSurround);
812 void                _MApi_AUDIO_EnableBalance(MS_BOOL EnBalance);
813 void                _MApi_AUDIO_SetDynamicBass(MS_U8 u8DynamicBass);
814 void                _MApi_AUDIO_SetBass(MS_U8 u8Bass);
815 void                _MApi_AUDIO_AbsoluteBass(MS_U8 u8Bass);
816 void                _MApi_AUDIO_SetTreble(MS_U8 u8Treble);
817 void                _MApi_AUDIO_AbsoluteTreble(MS_U8 u8Treble);
818 void                _MApi_AUDIO_SetEq(MS_U8 u8band, MS_U8 u8level);
819 void                _MApi_AUDIO_SetEq_7band(MS_U8 u8band, MS_U8 u8level);
820 void                _MApi_AUDIO_SetAvcThreshold(MS_U8 Level);
821 void                _MApi_AUDIO_SetAvcMode(MS_U8 AvcMode);
822 void                _MApi_AUDIO_SetAvcAT(MS_U8 AvcAT);
823 void                _MApi_AUDIO_SetAvcRT(MS_U8 AvcRT);
824 void                _MApi_AUDIO_SetBufferProcess(MS_U8 DelayTime);
825 void                _MApi_AUDIO_SetSurroundXA(MS_U8 mode);
826 void                _MApi_AUDIO_SetSurroundXB(MS_U8 mode);
827 void                _MApi_AUDIO_SetSurroundXK( MS_U8 mode);
828 void                _MApi_AUDIO_SetSurroundLPFGain(MS_U8 mode);
829 MS_U8               _MApi_AUDIO_ConvertVolumeUnit(MS_U8 UiVolume);
830 void                _MApi_AUDIO_SetPEQCoef(AUDIO_PEQ_COEF *peq_coef);
831 void                _MApi_AUDIO_EnablePEQ(MS_BOOL Enpeq);
832 MS_BOOL             _MApi_AUDIO_EnableDcRemove(MS_BOOL EnDcRemove);
833 
834 //============================================================
835 // AUDIO_DTV RELATIONAL API FUNCTION
836 //============================================================
837 MS_BOOL             _MApi_AUDIO_ReleaseDecodeSystem(AUDIO_DEC_ID DecId);
838 MS_BOOL             _MApi_AUDIO_SetDecodeSystem(AUDIO_DEC_ID DecId,  AudioDecStatus_t * p_AudioDecStatus);
839 MS_BOOL             _MApi_AUDIO_GetDecodeSystem(AUDIO_DEC_ID DecId,  AudioDecStatus_t * p_AudioDecStatus);
840 MS_BOOL             _MApi_AUDIO_SetDecodeCmd(AUDIO_DEC_ID DecId, En_DVB_decCmdType enDecComamnd);
841 AUDIO_DEC_ID        _MApi_AUDIO_OpenDecodeSystem(AudioDecStatus_t * p_AudioDecStatus);
842 MS_BOOL             _MApi_AUDIO_SetSystem(En_DVB_decSystemType enDecSystem);
843 MS_BOOL             _MApi_AUDIO_GetDecSysSupportStatus(En_DVB_decSystemType enDecSystem);
844 MS_BOOL             _MApi_AUDIO_IsMadLock(void);
845 En_DVB_decCmdType   _MApi_AUDIO_GetDecStatus(void);
846 AU_DVB_DECCMD       _MApi_AUDIO_GetCommand(En_DVB_AudioDecoder AdoDecoderNo);
847 void                _MApi_AUDIO_SetCommand(En_DVB_decCmdType enDecComamnd);
848 MS_BOOL             _MApi_AUDIO_GetMAD_LOCK(void);
849 void                _MApi_AUDIO_SetADOutputMode (MS_U8 out_mode);
850 void                _MApi_AUDIO_SetADAbsoluteVolume (MS_U8 AbsVolume);
851 //void                _MApi_AUDIO_SetMainVolumeForAD (MS_U8 u8Vol1, MS_U8 u8Vol2);
852 void                _MApi_AUDIO_ADSetMute(MS_BOOL EnMute);
853 
854 //============================================================
855 // AUDIO_PVR RELATED FUNCTIONS
856 //============================================================
857 void                _MApi_AUDIO_SetEncInit(AU_DVB_ENCBR BitRate, MS_U8 u8EncFrameNum);
858 void                _MApi_AUDIO_SetEncCommand(AU_DVB_ENCCMD enEncComamnd);
859 void                _MApi_AUDIO_GetEncodeFrameInfo(AU_DVB_ENC_FRAME_INFO *EncFrameInfo);
860 MS_BOOL             _MApi_AUDIO_GetEncodeDoneFlag(void);
861 
862 //============================================================
863 // AUDIO_ATV RELATIONAL API FUNCTION
864 //============================================================
865 void                _MApi_AUDIO_SIF_SetStandard(AUDIOSTANDARD_TYPE standard_type);
866 MS_U8               _MApi_AUDIO_SIF_GetSoundMode(void);
867 MS_BOOL             _MApi_AUDIO_SIF_SetSoundMode(MS_U8 u8SifSoundMode);
868 MS_BOOL             _MApi_AUDIO_SIF_GetAudioStatus(AUDIOSTATUS * eAudioStatus);
869 void                _MApi_AUDIO_SIF_StartAutoStandardDetection(void);
870 AUDIOSTANDARD_TYPE  _MApi_AUDIO_SIF_GetResultOfAutoStandardDetection(void);
871 AUDIOSTANDARD_TYPE  _MApi_AUDIO_SIF_ConvertToBasicAudioStandard(AUDIOSTANDARD_TYPE eStandard);
872 void                _MApi_AUDIO_SIF_SetThreshold(THR_TBL_TYPE *ThrTbl);
873 void                _MApi_AUDIO_SIF_SetPrescale(MS_U8 gain_type, MS_S32 db_value);
874 MS_BOOL             _MApi_AUDIO_SIF_IsPALType(AUDIO_SIF_PAL_TYPE pal_type);
875 void                _MApi_AUDIO_SIF_SetPALType(AUDIO_SIF_PAL_TYPE pal_type);
876 void                _MApi_AUDIO_SIF_SendCmd(En_AUD_SIF_CmdType enAudSifCommand, MS_U8 comm_arg1, MS_U8 comm_arg2);
877 void                _MApi_AUDIO_SIF_Shift(En_AUD_VIF_Type type);
878 
879 #if 1
880 //============================================================
881 // AUDIO_FM_RADIO RELATIONAL API FUNCTION
882 //============================================================
883 MS_U8               _MApi_AUDIO_FM_RADIO_GetSoundMode(void);
884 void                _MApi_AUDIO_FM_RADIO_SetSoundMode(MS_U8 u8FMRadioSoundMode);
885 void                _MApi_AUDIO_FM_RADIO_DeEmphassisOption(MS_BOOL Is_Europe);
886 MS_S8               _MApi_AUDIO_FM_RADIO_GET_DC_AMP(void);
887 MS_U8               _MApi_AUDIO_FM_RADIO_GET_NSR(void);
888 void                _MApi_AUDIO_FM_RADIO_RESET(void);
889 #endif
890 
891 //=============================================================
892 // AUDIO_SPDIF RELATIONAL API FUNCTION
893 //=============================================================
894 void                _MApi_AUDIO_SPDIF_HWEN(MS_BOOL spdif_en);
895 void                _MApi_AUDIO_SPDIF_SetMute(MS_BOOL mute_en);
896 void                _MApi_AUDIO_SPDIF_SetMode(MS_U8 spdif_mode);
897 MS_U8               _MApi_AUDIO_SPDIF_GetMode(void);
898 void                _MApi_AUDIO_SPDIF_SetSCMS(MS_U8 C_bit_en, MS_U8 L_bit_en);
899 MS_U8               _MApi_AUDIO_SPDIF_GetSCMS(void);
900 void                _MApi_Audio_SPDIF_Monitor(void);
901 MS_BOOL             _MApi_AUDIO_SPDIF_ChannelStatus_CTRL(AUDIO_SPDIF_CS_TYPE cs_mode, AUDIO_SPDIF_CS_TYPE_STATUS status);
902 MS_BOOL             _MApi_AUDIO_DigitalOut_SetChannelStatus(DIGITAL_OUTPUT_TYPE ePath, Digital_Out_Channel_Status_t *stChannelStatus);
903 MS_BOOL             _MApi_AUDIO_DigitalOut_SetDeviceCapability(DIGITAL_OUTPUT_TYPE eoutType, AUDIO_FORMAT_CODE ecodecType, Digital_Out_Device_Capability_t *p_codecCapability);
904 
905 //void                _MApi_AUDIO_DigitalOut_GetChannelStatus(DIGITAL_OUTPUT_TYPE ePath, Digital_Out_Channel_Status_t *stChannelStatus);
906 
907 //=============================================================
908 // AUDIO_HDMI RELATIONAL API FUNCTION
909 //=============================================================
910 MS_BOOL             _MApi_AUDIO_HDMI_RX_GetHdmiInAudioStatus(ST_HDMI_AUDIO_STATUS *p_hdmiAudioSts);
911 void                _MApi_AUDIO_HDMI_Tx_GetStatus(MS_BOOL *onOff, AUDIO_FS_TYPE *hdmi_SmpFreq, HDMI_TX_OUTPUT_TYPE *outType);
912 MS_U8               _MApi_AUDIO_HDMI_Monitor(void);
913 MS_BOOL             _MApi_AUDIO_HDMI_GetNonpcmFlag(void);
914 void                _MApi_AUDIO_HDMI_SetNonpcm(MS_U8 nonPCM_en);
915 AUDIO_HDMI_RX_TYPE  _MApi_AUDIO_HDMI_RX_SetNonpcm(MS_U8 nonPCM_en);
916 AUDIO_HDMI_RX_TYPE  _MApi_AUDIO_HDMI_RX_GetNonPCM(void);
917 void                _MApi_AUDIO_DTV_HDMI_CFG(MS_U8 ctrl);
918 MS_U16              _MApi_AUDIO_HDMI_GetSynthFreq(void);
919 void                _MApi_AUDIO_HDMI_SetDownSample(MS_U8 ratio);
920 void                _MApi_AUDIO_HDMI_TX_SetMode(HDMI_TX_OUTPUT_TYPE outType);
921 void                _MApi_AUDIO_HDMI_Tx_SetMute(MS_BOOL mute_en);
922 
923 //=============================================================
924 // AUDIO_ADVANCE_SOUND RELATIONAL API FUNCTION
925 //=============================================================
926 MS_BOOL             _MApi_AUDIO_ADVSOUND_ProcessEnable(ADVSND_TYPE type);
927 MS_BOOL             _MApi_AUDIO_ADVSOUND_SubProcessEnable(ADVFUNC proc, MS_BOOL enable);
928 MS_BOOL             _MApi_AUDIO_ADVSOUND_SetParam(ADVSND_PARAM param, MS_U16 u16value1, MS_U16 u16value2);
929 MS_BOOL             _MApi_AUDIO_ADVSND_SetParam(ADVSND_PARAM param, MS_U32 u32value1, MS_U16 u16value2);
930 //MS_U32              _MApi_AUDIO_ADVSOUND_GetParam(ADVSND_GET_PARAM param);
931 //MS_BOOL             _MApi_AUDIO_ADVSOUND_SetASFParam(ADVSND_PARAM param, MS_S16 s16value1, MS_S16 s16value2);
932 //MS_U32              _MApi_AUDIO_ADVSOUND_GetASFParam(ADVSND_GET_PARAM param);
933 MS_U32              _MApi_AUDIO_ADVSOUND_GetInfo(AdvSound_GET_Type Type);
934 void                _MApi_DBXTV_SetMode(EN_DBXTV_TotSonMode totsonmode, EN_DBXTV_TotVolMode totvolmode, EN_DBXTV_TotSurMode totsurmode,MS_U32 enable);
935 void                _MApi_AUDIO_SeInit(void);
936 void                _MApi_AUDIO_SetAdvSndSys(En_DVB_advsndType u8AdvSurrMod);
937 //void                _MApi_AUDIO_ADVSND_Set_Sound_Param(AdvSound_SET_Type Type, MS_U32 *pParam);
938 void                _MApi_AUDIO_SetVDS(MS_U8 u8enVDS);
939 void                _MApi_AUDIO_SetVSPK(MS_U8 u8enVSPK);
940 void                _MApi_AUDIO_SetSRS(MS_U8 u8enSRS);
941 void                _MApi_AUDIO_SetBBE(MS_U8 u8enBBE , MS_U8 u8BBEMode);
942 void                _MApi_AUDIO_VSPK_WMod(MS_U8 u8VSPK_WMode);
943 void                _MApi_AUDIO_VSPK_SMod(MS_U8 u8VSPK_SMode);
944 void                _MApi_AUDIO_SRS_DC(MS_U8 u8SRSenDC);
945 void                _MApi_AUDIO_SRS_TruBass(MS_U8 u8SRSenTruBass);
946 void                _MApi_AUDIO_SRS_SetTsxtPara(MS_U8 u8mode, MS_U8 u8value);
947 void                _MApi_AUDIO_SetSRSTSHD(MS_U8 u8enTSHD);
948 void                _MApi_AUDIO_TSHD_TruBass(MS_U8 u8TSHDenTruBass);
949 void                _MApi_AUDIO_TSHD_Definition(MS_U8 u8TSHDenDefinition);
950 void                _MApi_AUDIO_TSHD_Clarity(MS_U8 u8TSHDenClarity);
951 void                _MApi_AUDIO_SRS_SetTshdPara(MS_U8 u8mode, MS_U8 u8value);
952 void                _MApi_AUDIO_COPY_Parameter(ADVSND_PARAM type, void* Parameter_ptr, MS_U32 size);
953 
954 //=============================================================
955 // AUDIO_KTV RELATIONAL API FUNCTION
956 //=============================================================
957 MS_BOOL             _MApi_AUDIO_SetKTVInfo (AUDIO_KTV_MODEL modelType, AUDIO_KTV_PARAMTYPE paramType, MS_U32 param1, MS_U32 param2);
958 MS_U32              _MApi_AUDIO_GetKTVInfo(AUDIO_KTV_MODEL modelType, AUDIO_KTV_INFOTYPE infoType);
959 void                _MApi_AUDIO_SetMixModeVolume(AUDIO_SOURCE_INFO_TYPE eSourceType, AUDIO_MIX_VOL_TYPE VolType, MS_U8 u8Vol1, MS_U8 u8Vol2);
960 void                _MApi_AUDIO_SetMixModeMute(AUDIO_SOURCE_INFO_TYPE eSourceType, AUDIO_MIX_VOL_TYPE VolType, MS_BOOL EnMute);
961 void                _MApi_AUDIO_PlayMenuSound(void);
962 
963 //=============================================================
964 // AUDIO_MM RELATIONAL API FUNCTION
965 //=============================================================
966 // Each Decoder functions
967 // Set Info
968 MS_BOOL             _MApi_AUDIO_SetCommAudioInfo(Audio_COMM_infoType infoType, MS_VIRT param1, MS_VIRT param2);
969 //MS_BOOL             _MApi_ADEC_SetDecodeParam( AUDIO_DEC_ID DecId, Audio_ParamType paramType, MS_U32* Param );
970 MS_BOOL             _MApi_AUDIO_SetMpegInfo( Audio_MPEG_infoType infoType, MS_VIRT param1, MS_VIRT param2 );
971 MS_BOOL             _MApi_AUDIO_SetAC3Info(Audio_AC3_infoType infoType, MS_VIRT param1, MS_VIRT param2 );
972 MS_BOOL             _MApi_AUDIO_SetAC3PInfo(Audio_AC3P_infoType infoType, MS_VIRT param1, MS_VIRT param2 );
973 MS_BOOL             _MApi_AUDIO_SetAACInfo( Audio_AAC_infoType infoType, MS_VIRT param1, MS_VIRT param2 );
974 MS_BOOL             _MApi_AUDIO_SetWmaInfo(Audio_WMA_infoType infoType, MS_VIRT param1, MS_VIRT param2 );
975 MS_BOOL             _MApi_AUDIO_SetDTSCommonCtrl( Audio_DTS_infoType infoType, Audio_DTS_CtrlType ctrl_type );
976 //Get Info
977 MS_U64             _MApi_AUDIO_GetCommAudioInfo( Audio_COMM_infoType infoType );
978 MS_U32              _MApi_AUDIO_GetMpegInfo( Audio_MPEG_infoType infoType );
979 MS_U32              _MApi_AUDIO_GetAC3Info(Audio_AC3_infoType infoType );
980 MS_U32              _MApi_AUDIO_GetAC3PInfo( Audio_AC3P_infoType infoType );
981 MS_U32              _MApi_AUDIO_GetAACInfo( Audio_AAC_infoType infoType );
982 MS_U32              _MApi_AUDIO_GetWmaInfo( Audio_WMA_infoType infoType );
983 MS_U32              _MApi_AUDIO_GetDTSInfo( Audio_DTS_infoType infoType );
984 MS_U8               _MApi_AUDIO_XPCM_Param(XPCM_TYPE audioType, MS_U8  channels, MS_U16 sampleRate, MS_U8  bitsPerSample, MS_U16 blockSize, MS_U16 samplePerBlock);
985 void                _MApi_AUDIO_XPCM2_Param(XPCM_TYPE audioType, MS_U8  channels, MS_U16 sampleRate, MS_U8  bitsPerSample, MS_U16 blockSize, MS_U16 samplePerBlock);
986 MS_U16              _MApi_AUDIO_XPCM2_CheckIntStatus(void);
987 // RM
988 MS_U8               _MApi_AUDIO_RA8_Param(MS_U16 mNumCodecs, MS_U16 mSamples, MS_U16 mSampleRate, MS_U16* Channels, MS_U16* Regions, MS_U16* cplStart, MS_U16* cplQbits, MS_U16* FrameSize);
989 
990 void                _MApi_AUDIO_Init(En_DVB_decSystemType enDecSystem);
991 void                _MApi_AUDIO_StartDecode(void);
992 void                _MApi_AUDIO_StartBrowse(void);
993 void                _MApi_AUDIO_StopDecode(void);
994 void                _MApi_AUDIO_PauseDecode(void);
995 MS_U8               _MApi_AUDIO_CheckPlayDone(void);
996 MS_U16              _MApi_AUDIO_GetResidualBufferSize(void);
997 MS_U16              _MApi_AUDIO_GetPCMBufferSize(MS_U16 u16BitRate);
998 MS_U16              _MApi_AUDIO_GetPCMBufferSize2(MS_U16 u16BitRate,MS_U16 u16SampleRate);
999 MS_U32              _MApi_AUDIO_GetCurrentFrameNumber(void);
1000 MS_U16              _MApi_AUDIO_GetSampleRate(void);
1001 MS_U32              _MApi_AUDIO_GetBitRate(void);
1002 Audio_MP3_LAYER     _MApi_AUDIO_GetLayer(void);
1003 MS_U8               _MApi_AUDIO_CheckInputRequest(MS_PHY *pPHYWrtAddr, MS_U32 *pU32WrtBytes);
1004 void                _MApi_AUDIO_SetInput(void);
1005 void                _MApi_AUDIO_SetSampleRateIndex(MS_U16 u16Index);
1006 void                _MApi_AUDIO_SetXPCMParam(XPCM_TYPE audioType, MS_U8 channels, MS_U16 sampleRate, MS_U8 bitsPerSample, MS_U16 blockSize, MS_U16 samplePerBlock);
1007 void                _MApi_AUDIO_FileEndNotification(void);
1008 void                _MApi_AUDIO_FileEndDataHandle(MS_U32 u32DataLeft);
1009 MS_U32              _MApi_AUDIO_GetPlayTick(void);
1010 MS_U16              _MApi_AUDIO_GetEsMEMCnt(void);
1011 void                _MApi_AUDIO_SetASFParm(WMA_ASF_PARMTYPE parm_type, MS_U32 value);
1012 void                _MApi_AUDIO_MM_SetInput (En_DVB_AudioDecoder AUDDecoderNo, MS_U8 u8IntTag);
1013 MS_U32              _MApi_AUDIO_MM_CheckPlayDone (En_DVB_AudioDecoder AUDDecoderNo);
1014 MS_U8               _MApi_AUDIO_MM_CheckInputRequest(En_DVB_AudioDecoder AUDDecoderNo, MS_PHY *pPHYWrtAddr, MS_U32 *pU32WrtBytes);
1015 void                _MApi_AUDIO_DmaReader_Init(SAMPLE_RATE sampleRate);
1016 void                _MApi_AUDIO_DmaReader_AllInput_Init(void);
1017 MS_BOOL             _MApi_AUDIO_DmaReader_WritePCM(void* buffer, MS_U32 bytes);
1018 void                _MApi_AUDIO_DmaWriter_Init(void);
1019 void                _MApi_AUDIO_USBPCM_Enable(MS_BOOL bEnable);
1020 void                _MApi_AUDIO_USBPCM_SetFlag(MS_BOOL bEnable);
1021 MS_BOOL             _MApi_AUDIO_USBPCM_GetFlag(void);
1022 void                _MApi_AUDIO_USBPCM_GetMemInfo(AUDIO_UPLOAD_INFO *uploadInfo);
1023 MS_BOOL             _MApi_AUDIO_PCMCapture_Init(const AUDIO_DEVICE_TYPE eID, const AUDIO_CAPTURE_SOURCE_TYPE eSource);
1024 MS_BOOL             _MApi_AUDIO_PCMCapture_Start(const AUDIO_DEVICE_TYPE eID);
1025 MS_BOOL             _MApi_AUDIO_PCMCapture_Stop(const AUDIO_DEVICE_TYPE eID);
1026 MS_BOOL             _MApi_AUDIO_PCMCapture_Read(const AUDIO_DEVICE_TYPE eID, void *buffer, const MS_U32 bytes);
1027 MS_BOOL             _MApi_AUDIO_VoIP_Config(AUDIO_VoIP_CONFIG_TYPE configType, MS_U32 param1, MS_U32 param2);
1028 MS_BOOL             _MApi_AUDIO_ALSA_Check(void);
1029 MS_BOOL             _MApi_AUDIO_ALSA_Enable(MS_BOOL bEnable);
1030 MS_BOOL             _MApi_AUDIO_UNI_CheckDecodeDone(MS_PHY *pPHYWrtAddr, MS_U32 *pU32WrtBytes);
1031 void                _MApi_AUDIO_UNI_SetOutput (MS_U32 PCMOutCnt);
1032 void                _MApi_AUDIO_UNI_Set_PCMInputWriteAddr (MS_U32 PCMIn_Wptr);
1033 MS_U32              _MApi_AUDIO_UNI_Get_OutPCMLevel (void);
1034 void                _MApi_AUDIO_RingTask(audioRingTask* auRingTask);        // this function is used for auto ring address
1035 void                _MApi_AUDIO_Ring_DataTransfer(audioRingTask* auRingTask, audioRingTask* auRingTask_1);
1036 MS_BOOL             _MApi_AUDIO_MM2_initAesInfo( AUDIO_DEC_ID dec_id );
1037 MS_BOOL             _MApi_AUDIO_MM2_checkAesInfo( AUDIO_DEC_ID  dec_id, AES_INFO *aes_info );
1038 MS_BOOL             _MApi_AUDIO_MM2_inputAesFinished( AUDIO_DEC_ID dec_id, MS_U32 es_size, MS_BOOL ptsExist, MS_U64 pts );
1039 MS_BOOL             _MApi_AUDIO_SetAudioParam2( AUDIO_DEC_ID DecId, Audio_ParamType paramType, MS_VIRT Param );
1040 MS_BOOL             _MApi_AUDIO_GetAudioInfo2(AUDIO_DEC_ID DecId, Audio_InfoType infoType, void * pInfo );
1041 MS_PHY              _MApi_AUDIO_GetDDRInfo(AUDIO_DEC_ID DecId, EN_AUDIO_DDRINFO DDRInfo);
1042 MS_U32              _MApi_AUDIO_GetCaps(AUDIO_DEC_ID DecId, MS_U32 *pCaps);
1043 MS_S32              _MApi_AUDIO_PCM_Open(void *pData);
1044 MS_S32              _MApi_AUDIO_PCM_Close(MS_S32 s32DeviceId);
1045 MS_S32              _MApi_AUDIO_PCM_Start(MS_S32 s32DeviceId);
1046 MS_S32              _MApi_AUDIO_PCM_Stop(MS_S32 s32DeviceId);
1047 MS_S32              _MApi_AUDIO_PCM_Set(MS_S32 s32DeviceId, MS_U32 u32Cmd, const void *pData);
1048 MS_S32              _MApi_AUDIO_PCM_Get(MS_S32 s32DeviceId, MS_U32 u32Cmd, void *pData);
1049 MS_U32              _MApi_AUDIO_PCM_Read(MS_S32 s32DeviceId, void *pBuf, MS_U32 u32Size);
1050 MS_U32              _MApi_AUDIO_PCM_Write(MS_S32 s32DeviceId, const void *pBuf, MS_U32 u32Size);
1051 MS_S32              _MApi_AUDIO_PCM_Flush(MS_S32 s32DeviceId);
1052 MS_S32              _MApi_AUDIO_ENCODER_Open(const char *pName);
1053 MS_S32              _MApi_AUDIO_ENCODER_Close(MS_S32 s32DeviceId);
1054 MS_S32              _MApi_AUDIO_ENCODER_Start(MS_S32 s32DeviceId);
1055 MS_S32              _MApi_AUDIO_ENCODER_Stop(MS_S32 s32DeviceId);
1056 MS_S32              _MApi_AUDIO_ENCODER_Ioctl(MS_S32 s32DeviceId, const char *pCmd, void *pData);
1057 MS_U32              _MApi_AUDIO_ENCODER_Read(MS_S32 s32DeviceId, void *pBuf, MS_U32 u32Size);
1058 MS_S32              _MApi_AUDIO_ENCODER_Flush(MS_S32 s32DeviceId);
1059 
1060 
1061 #ifdef __cplusplus
1062 }
1063 #endif
1064 
1065 #endif //_DMX_PRIV_H_
1066