xref: /utopia/UTPA2-700.0.x/mxlib/include/apiAUDIO.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi //<MStar Software>
2*53ee8cc1Swenshuai.xi //******************************************************************************
3*53ee8cc1Swenshuai.xi // MStar Software
4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are
6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties.
8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all
9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written
10*53ee8cc1Swenshuai.xi // permission has been granted by MStar.
11*53ee8cc1Swenshuai.xi //
12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you
13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to
14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations:
15*53ee8cc1Swenshuai.xi //
16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar
17*53ee8cc1Swenshuai.xi //    Software and any modification/derivatives thereof.
18*53ee8cc1Swenshuai.xi //    No right, ownership, or interest to MStar Software and any
19*53ee8cc1Swenshuai.xi //    modification/derivatives thereof is transferred to you under Terms.
20*53ee8cc1Swenshuai.xi //
21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be
22*53ee8cc1Swenshuai.xi //    supplied together with third party`s software and the use of MStar
23*53ee8cc1Swenshuai.xi //    Software may require additional licenses from third parties.
24*53ee8cc1Swenshuai.xi //    Therefore, you hereby agree it is your sole responsibility to separately
25*53ee8cc1Swenshuai.xi //    obtain any and all third party right and license necessary for your use of
26*53ee8cc1Swenshuai.xi //    such third party`s software.
27*53ee8cc1Swenshuai.xi //
28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29*53ee8cc1Swenshuai.xi //    MStar`s confidential information and you agree to keep MStar`s
30*53ee8cc1Swenshuai.xi //    confidential information in strictest confidence and not disclose to any
31*53ee8cc1Swenshuai.xi //    third party.
32*53ee8cc1Swenshuai.xi //
33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34*53ee8cc1Swenshuai.xi //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35*53ee8cc1Swenshuai.xi //    without limitation, any warranties of merchantability, non-infringement of
36*53ee8cc1Swenshuai.xi //    intellectual property rights, fitness for a particular purpose, error free
37*53ee8cc1Swenshuai.xi //    and in conformity with any international standard.  You agree to waive any
38*53ee8cc1Swenshuai.xi //    claim against MStar for any loss, damage, cost or expense that you may
39*53ee8cc1Swenshuai.xi //    incur related to your use of MStar Software.
40*53ee8cc1Swenshuai.xi //    In no event shall MStar be liable for any direct, indirect, incidental or
41*53ee8cc1Swenshuai.xi //    consequential damages, including without limitation, lost of profit or
42*53ee8cc1Swenshuai.xi //    revenues, lost or damage of data, and unauthorized system use.
43*53ee8cc1Swenshuai.xi //    You agree that this Section 4 shall still apply without being affected
44*53ee8cc1Swenshuai.xi //    even if MStar Software has been modified by MStar in accordance with your
45*53ee8cc1Swenshuai.xi //    request or instruction for your use, except otherwise agreed by both
46*53ee8cc1Swenshuai.xi //    parties in writing.
47*53ee8cc1Swenshuai.xi //
48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or
49*53ee8cc1Swenshuai.xi //    services in relation with MStar Software to you for your use of
50*53ee8cc1Swenshuai.xi //    MStar Software in conjunction with your or your customer`s product
51*53ee8cc1Swenshuai.xi //    ("Services").
52*53ee8cc1Swenshuai.xi //    You understand and agree that, except otherwise agreed by both parties in
53*53ee8cc1Swenshuai.xi //    writing, Services are provided on an "AS IS" basis and the warranty
54*53ee8cc1Swenshuai.xi //    disclaimer set forth in Section 4 above shall apply.
55*53ee8cc1Swenshuai.xi //
56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels
57*53ee8cc1Swenshuai.xi //    or otherwise:
58*53ee8cc1Swenshuai.xi //    (a) conferring any license or right to use MStar name, trademark, service
59*53ee8cc1Swenshuai.xi //        mark, symbol or any other identification;
60*53ee8cc1Swenshuai.xi //    (b) obligating MStar or any of its affiliates to furnish any person,
61*53ee8cc1Swenshuai.xi //        including without limitation, you and your customers, any assistance
62*53ee8cc1Swenshuai.xi //        of any kind whatsoever, or any information; or
63*53ee8cc1Swenshuai.xi //    (c) conferring any license or right under any intellectual property right.
64*53ee8cc1Swenshuai.xi //
65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws
66*53ee8cc1Swenshuai.xi //    of Taiwan, R.O.C., excluding its conflict of law rules.
67*53ee8cc1Swenshuai.xi //    Any and all dispute arising out hereof or related hereto shall be finally
68*53ee8cc1Swenshuai.xi //    settled by arbitration referred to the Chinese Arbitration Association,
69*53ee8cc1Swenshuai.xi //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70*53ee8cc1Swenshuai.xi //    Rules of the Association by three (3) arbitrators appointed in accordance
71*53ee8cc1Swenshuai.xi //    with the said Rules.
72*53ee8cc1Swenshuai.xi //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73*53ee8cc1Swenshuai.xi //    be English.
74*53ee8cc1Swenshuai.xi //    The arbitration award shall be final and binding to both parties.
75*53ee8cc1Swenshuai.xi //
76*53ee8cc1Swenshuai.xi //******************************************************************************
77*53ee8cc1Swenshuai.xi //<MStar Software>
78*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
79*53ee8cc1Swenshuai.xi //
80*53ee8cc1Swenshuai.xi // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
81*53ee8cc1Swenshuai.xi // All rights reserved.
82*53ee8cc1Swenshuai.xi //
83*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained
84*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of
85*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence
86*53ee8cc1Swenshuai.xi // ("MStar Confidential Information") by the recipient.
87*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure,
88*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling,
89*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential
90*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the
91*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom.
92*53ee8cc1Swenshuai.xi //
93*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
94*53ee8cc1Swenshuai.xi 
95*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////////////////////////
96*53ee8cc1Swenshuai.xi ///
97*53ee8cc1Swenshuai.xi /// @file    apiAUDIO.h
98*53ee8cc1Swenshuai.xi /// @brief  AUDIO API
99*53ee8cc1Swenshuai.xi /// @author MStar Semiconductor Inc.
100*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////////////////////////
101*53ee8cc1Swenshuai.xi 
102*53ee8cc1Swenshuai.xi /*! \defgroup Audio Audio interface
103*53ee8cc1Swenshuai.xi 
104*53ee8cc1Swenshuai.xi      \brief
105*53ee8cc1Swenshuai.xi     Audio Module is used for:
106*53ee8cc1Swenshuai.xi 
107*53ee8cc1Swenshuai.xi     - 1. Audio Input source handling
108*53ee8cc1Swenshuai.xi     - support input source as VGA, ATV, CVBS, YPbPr, SCART, HDMI, DTV, MM ...
109*53ee8cc1Swenshuai.xi 
110*53ee8cc1Swenshuai.xi     - 2. Audio Output source handling
111*53ee8cc1Swenshuai.xi     - support stereo audio analog output ,SPDIF digital output, I2S, HDMI 1.4 ARC output
112*53ee8cc1Swenshuai.xi 
113*53ee8cc1Swenshuai.xi     - 3. Basic Sound Effect support
114*53ee8cc1Swenshuai.xi     - support Volume Control , Bass, Treble, GEQ, PEQ, Surround, AVC ...
115*53ee8cc1Swenshuai.xi 
116*53ee8cc1Swenshuai.xi     - 4. Digital audio format decoding
117*53ee8cc1Swenshuai.xi     - support MPEG-1, MPEG-2(Layer I/II), MP3, AC-3,E-AC-3, WMA, HE-AAC, DTS, FLAC, XPCM
118*53ee8cc1Swenshuai.xi 
119*53ee8cc1Swenshuai.xi     - 5. Advanced Sound Effect support
120*53ee8cc1Swenshuai.xi     - support SRS-TSHD , SRS-TSXT, DBX....
121*53ee8cc1Swenshuai.xi 
122*53ee8cc1Swenshuai.xi     - All audio related features , architecture and bolck diagram are collected in
123*53ee8cc1Swenshuai.xi       MStar Audio Application Note(Chip dependent).
124*53ee8cc1Swenshuai.xi 
125*53ee8cc1Swenshuai.xi  *! \defgroup Audio_System System
126*53ee8cc1Swenshuai.xi  *  \ingroup Audio
127*53ee8cc1Swenshuai.xi 
128*53ee8cc1Swenshuai.xi  *! \defgroup Audio_Decoder Decoder
129*53ee8cc1Swenshuai.xi  *  \ingroup Audio
130*53ee8cc1Swenshuai.xi 
131*53ee8cc1Swenshuai.xi  *! \defgroup Audio_ATV_SPDIF_HDMI ATV SPDIF HDMI
132*53ee8cc1Swenshuai.xi  *  \ingroup Audio
133*53ee8cc1Swenshuai.xi 
134*53ee8cc1Swenshuai.xi  *! \defgroup Audio_BASIC_SOUNDEFFECT Basic Sound Effect
135*53ee8cc1Swenshuai.xi  *  \ingroup Audio
136*53ee8cc1Swenshuai.xi 
137*53ee8cc1Swenshuai.xi  *! \defgroup Audio_ADVANCED_SOUNDEFFECT Advanced Sound Effect
138*53ee8cc1Swenshuai.xi  *  \ingroup Audio
139*53ee8cc1Swenshuai.xi 
140*53ee8cc1Swenshuai.xi  *! \defgroup Audio_ToBeMerged To Be Merged
141*53ee8cc1Swenshuai.xi  *  \ingroup Audio
142*53ee8cc1Swenshuai.xi 
143*53ee8cc1Swenshuai.xi  *! \defgroup Audio_ToBeModified To Be Modified
144*53ee8cc1Swenshuai.xi  *  \ingroup Audio
145*53ee8cc1Swenshuai.xi 
146*53ee8cc1Swenshuai.xi  *! \defgroup Audio_ToBeMoved To Be Moved
147*53ee8cc1Swenshuai.xi  *  \ingroup Audio
148*53ee8cc1Swenshuai.xi 
149*53ee8cc1Swenshuai.xi  *! \defgroup Audio_ToBeRemove To Be Removed
150*53ee8cc1Swenshuai.xi  *  \ingroup Audio
151*53ee8cc1Swenshuai.xi  */
152*53ee8cc1Swenshuai.xi 
153*53ee8cc1Swenshuai.xi #ifndef _API_AUDIO_H_
154*53ee8cc1Swenshuai.xi #define _API_AUDIO_H_
155*53ee8cc1Swenshuai.xi 
156*53ee8cc1Swenshuai.xi #include "MsCommon.h"
157*53ee8cc1Swenshuai.xi #include "drvAUDIO_if.h"
158*53ee8cc1Swenshuai.xi #include "UFO.h"
159*53ee8cc1Swenshuai.xi 
160*53ee8cc1Swenshuai.xi 
161*53ee8cc1Swenshuai.xi #ifdef __cplusplus
162*53ee8cc1Swenshuai.xi extern "C"
163*53ee8cc1Swenshuai.xi {
164*53ee8cc1Swenshuai.xi #endif
165*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
166*53ee8cc1Swenshuai.xi //  Macro and Define
167*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
168*53ee8cc1Swenshuai.xi //-----------------------------------------------------------
169*53ee8cc1Swenshuai.xi #define  MSAPI_AUD_SPDIF_PCM    0
170*53ee8cc1Swenshuai.xi #define  MSAPI_AUD_SPDIF_OFF    1
171*53ee8cc1Swenshuai.xi #define  MSAPI_AUD_SPDIF_NONPCM 2
172*53ee8cc1Swenshuai.xi 
173*53ee8cc1Swenshuai.xi #define  MSAPI_AUD_DTV_IN       0
174*53ee8cc1Swenshuai.xi #define  MSAPI_AUD_ATV_IN       1
175*53ee8cc1Swenshuai.xi #define  MSAPI_AUD_HDMI_IN      2
176*53ee8cc1Swenshuai.xi #define  MSAPI_AUD_ADC_IN       3
177*53ee8cc1Swenshuai.xi #define  MSAPI_AUD_CardRD_IN    4
178*53ee8cc1Swenshuai.xi #define  MSAPI_AUD_MM_IN    5
179*53ee8cc1Swenshuai.xi 
180*53ee8cc1Swenshuai.xi #define  MSAPI_AUD_AVsync       0
181*53ee8cc1Swenshuai.xi #define  MSAPI_AUD_FreeRun      1
182*53ee8cc1Swenshuai.xi 
183*53ee8cc1Swenshuai.xi /// A2/FM/_SOUND_MOD Report info
184*53ee8cc1Swenshuai.xi #define _STATUS_MOD_MONO_EXIST                  0x01
185*53ee8cc1Swenshuai.xi #define _STATUS_MOD_STEREO_EXIST                0x02
186*53ee8cc1Swenshuai.xi #define _STATUS_MOD_DUAL_EXIST                  0x04
187*53ee8cc1Swenshuai.xi #define _STATUS_MOD_A2_PILOT_EXIST             0x08
188*53ee8cc1Swenshuai.xi #define _STATUS_MOD_A2_PRIMARY_EXIST           0x10
189*53ee8cc1Swenshuai.xi #define _STATUS_MOD_A2_SECONDARY_EXIST         0x20
190*53ee8cc1Swenshuai.xi #define _STATUS_MOD_A2_DK2_EXIST                0x40
191*53ee8cc1Swenshuai.xi #define _STATUS_MOD_A2_DK3_EXIST                0x80
192*53ee8cc1Swenshuai.xi 
193*53ee8cc1Swenshuai.xi /// NICAM_SOUND_MOD Report info
194*53ee8cc1Swenshuai.xi #define _MASK_NICAM_STATUS_INFO                 0x0F
195*53ee8cc1Swenshuai.xi #define _NICAM_SOUND_MODE_LOCK_STATE            0x05
196*53ee8cc1Swenshuai.xi #define _MASK_NICAM_SOUND_MODE_INFO             0xF0
197*53ee8cc1Swenshuai.xi #define _NICAM_SOUND_MOD_MONO_NOT_EXIST         0x00
198*53ee8cc1Swenshuai.xi #define _NICAM_SOUND_MOD_NICAM_MONO             0x10
199*53ee8cc1Swenshuai.xi #define _NICAM_SOUND_MOD_NICAM_STEREO           0x20
200*53ee8cc1Swenshuai.xi #define _NICAM_SOUND_MOD_NICAM_DUAL             0x30
201*53ee8cc1Swenshuai.xi #define _NICAM_SOUND_MOD_MONO_EXIST             0x80
202*53ee8cc1Swenshuai.xi #define _NICAM_SOUND_MOD_MONO_n_NICAM_MONO     0x90
203*53ee8cc1Swenshuai.xi #define _NICAM_SOUND_MOD_MONO_n_NICAM_STEREO   0xA0
204*53ee8cc1Swenshuai.xi #define _NICAM_SOUND_MOD_MONO_n_NICAM_DUAL     0xB0
205*53ee8cc1Swenshuai.xi 
206*53ee8cc1Swenshuai.xi /********************************
207*53ee8cc1Swenshuai.xi *   SIF Standard
208*53ee8cc1Swenshuai.xi ********************************/
209*53ee8cc1Swenshuai.xi #define _STD_SEL_INVALID    0x00
210*53ee8cc1Swenshuai.xi #define _STD_SEL_M_BTSC     0x01
211*53ee8cc1Swenshuai.xi #define _STD_SEL_M_EIAJ     0x02
212*53ee8cc1Swenshuai.xi #define _STD_SEL_M_A2       0x03
213*53ee8cc1Swenshuai.xi #define _STD_SEL_BG_A2      0x04
214*53ee8cc1Swenshuai.xi #define _STD_SEL_DK1_A2     0x05
215*53ee8cc1Swenshuai.xi #define _STD_SEL_DK2_A2     0x06
216*53ee8cc1Swenshuai.xi #define _STD_SEL_DK3_A2     0x07
217*53ee8cc1Swenshuai.xi #define _STD_SEL_BG_NICAM   0x08
218*53ee8cc1Swenshuai.xi #define _STD_SEL_DK_NICAM   0x09
219*53ee8cc1Swenshuai.xi #define _STD_SEL_I_NICAM    0x0A
220*53ee8cc1Swenshuai.xi #define _STD_SEL_L_NICAM    0x0B
221*53ee8cc1Swenshuai.xi #define _STD_SEL_AUTO       0xE0
222*53ee8cc1Swenshuai.xi 
223*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
224*53ee8cc1Swenshuai.xi //  Type and Structure
225*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
226*53ee8cc1Swenshuai.xi ///< Decoder command type
227*53ee8cc1Swenshuai.xi typedef enum
228*53ee8cc1Swenshuai.xi {
229*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_STOP = 0x0,   ///< 1st DSP stop
230*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_PLAY,         ///< 1st DSP play
231*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_RESYNC,
232*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_FREE_RUN,
233*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_AVSYNC,
234*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_PLAYFILE,     ///< 1st DSP play file
235*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_PAUSE,        ///< 1st DSP pause
236*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_PLAYFILETSP,  ///< 1st DSP play TS file
237*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_STARTBROWSE,
238*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_PLAYFRAME,    ///<1st DSP play MM (for uniplayer/Mstreamer)
239*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_PLAYFRAME_STAGE, ////<1st DSP play MM (for stagecraft)
240*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_PLAYFRAME_GS,  ///<1st DSP play MM (for uniplayer/Gstreamer ES copy)
241*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_PLAYMM_FILE2,
242*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_PLAY_AD,
243*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_STOP_AD,
244*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_DECCMD_SKIP,
245*53ee8cc1Swenshuai.xi     // SE DSP
246*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB2_DECCMD_STOP=0x10,   ///< 2nd DSP stop
247*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB2_DECCMD_PLAY,        ///< 2nd DSP play
248*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB2_DECCMD_RESYNC,
249*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB2_DECCMD_FREE_RUN,
250*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB2_DECCMD_AVSYNC,
251*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB2_DECCMD_PLAYFILE,    ///< 2nd DSP play file
252*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB2_DECCMD_PAUSE,       ///< 2nd DSP pause
253*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB2_DECCMD_PLAYFILETSP,  ///< 2nd DSP play TS file
254*53ee8cc1Swenshuai.xi 
255*53ee8cc1Swenshuai.xi } En_DVB_decCmdType;
256*53ee8cc1Swenshuai.xi 
257*53ee8cc1Swenshuai.xi ///< Encoder Command
258*53ee8cc1Swenshuai.xi typedef enum
259*53ee8cc1Swenshuai.xi {
260*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_ENCCMD_STOP = 0x0,   ///< stop encode
261*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_ENCCMD_START         ///<  start encode
262*53ee8cc1Swenshuai.xi }En_DVB_EncCmdType;
263*53ee8cc1Swenshuai.xi 
264*53ee8cc1Swenshuai.xi ///< ATV SIF Command
265*53ee8cc1Swenshuai.xi typedef enum
266*53ee8cc1Swenshuai.xi {
267*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_SET_STOP = 0x00,
268*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_SET_PLAY = 0x01,
269*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_ENABLE_HIDEV = 0x02,
270*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_SET_HIDEV_FILTER_BW_LEVEL = 0x03,
271*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_RESET_FC_TRACKING = 0x04,
272*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_ENABLE_FC_TRACKING = 0x05,
273*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_SET_ADC_FROM_VIF_PATH = 0x06,
274*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_ENABLE_AUTO_MUTE = 0x07,
275*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_ENABLE_BEEPER_FUNCTION = 0x08,
276*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_SET_BEEPER_TONE = 0x09,
277*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_ENABLE_AGC = 0x0A,
278*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_RESET_AGC = 0x0B,
279*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_STANDARD_RESET = 0x0C,
280*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_DETECT_MAIN_STD_ONLY = 0x0D,
281*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_ENABLE_AUTO_SOUNDMODE = 0x0E,
282*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_FMTX_SET_PREEMP = 0x0F,
283*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_SET_ENC_CMD = 0x10,
284*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_SET_ENC_Input_attenuation= 0x11,
285*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_SET_ENC_Output_scaling= 0x12,
286*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_SET_BTSC_Enc_M_Gain=0x13,
287*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_SET_BTSC_Enc_D_Gain= 0x14,
288*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_SET_BTSC_Enc_SAP_Gain= 0x15,
289*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD_SET_FM_CH2_FILTER_BW_LEVEL=0x16,
290*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_CMD2_ADC_VIA_VIF_PIN = 0x01
291*53ee8cc1Swenshuai.xi } En_AUD_SIF_CmdType;
292*53ee8cc1Swenshuai.xi 
293*53ee8cc1Swenshuai.xi typedef enum
294*53ee8cc1Swenshuai.xi {
295*53ee8cc1Swenshuai.xi    MSAPI_AUD_SIF_42M,
296*53ee8cc1Swenshuai.xi    MSAPI_AUD_SIF_43M,
297*53ee8cc1Swenshuai.xi    MSAPI_AUD_SIF_44M,
298*53ee8cc1Swenshuai.xi } En_AUD_VIF_Type;
299*53ee8cc1Swenshuai.xi 
300*53ee8cc1Swenshuai.xi enum
301*53ee8cc1Swenshuai.xi {
302*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_HIDEV_FILTER_BW_DEFAULT = 0x00, // equal middle filter bandwidth
303*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_HIDEV_FILTER_BW_L1 = 0x10,    // narrowest filter bandwidth
304*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_HIDEV_FILTER_BW_L2 = 0x20,    // middle filter bandwidth
305*53ee8cc1Swenshuai.xi     MSAPI_AUD_SIF_HIDEV_FILTER_BW_L3 = 0x30     // widest filter bandwidth
306*53ee8cc1Swenshuai.xi };
307*53ee8cc1Swenshuai.xi 
308*53ee8cc1Swenshuai.xi ///< Decoder Number
309*53ee8cc1Swenshuai.xi typedef enum
310*53ee8cc1Swenshuai.xi {
311*53ee8cc1Swenshuai.xi    DVB_Audio_Decoder1,             ///<Audio decoder1
312*53ee8cc1Swenshuai.xi    DVB_Audio_Decoder2              ///<Audio decoder2
313*53ee8cc1Swenshuai.xi } En_DVB_AudioDecoder;
314*53ee8cc1Swenshuai.xi 
315*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500) || defined(UFO_PUBLIC_HEADER_700)
316*53ee8cc1Swenshuai.xi 
317*53ee8cc1Swenshuai.xi ///< Advance sound effect type
318*53ee8cc1Swenshuai.xi typedef char* En_DVB_advsndType;
319*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_NONE          ((En_DVB_advsndType)"ADVSND_NONE")
320*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_PL2           ((En_DVB_advsndType)"ADVSND_PL2")
321*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_BBE           ((En_DVB_advsndType)"ADVSND_BBE")
322*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_SRS           ((En_DVB_advsndType)"ADVSND_SRS")
323*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_VDS           ((En_DVB_advsndType)"ADVSND_VDS")
324*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_VSPK          ((En_DVB_advsndType)"ADVSND_VSPK")
325*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_SUPV          ((En_DVB_advsndType)"ADVSND_SUPV")
326*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_TSHD          ((En_DVB_advsndType)"ADVSND_TSHD")
327*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_DTS_ULTRATV   ((En_DVB_advsndType)"ADVSND_DTS_ULTRATV")
328*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_TSHDVIQ       ((En_DVB_advsndType)"ADVSND_TSHDVIQ")
329*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_AUDYSSEY      ((En_DVB_advsndType)"ADVSND_AUDYSSEY")
330*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_DBX           ((En_DVB_advsndType)"ADVSND_DBX")
331*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_SSHD_TSHD     ((En_DVB_advsndType)"ADVSND_SSHD_TSHD")
332*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_PURESND       ((En_DVB_advsndType)"ADVSND_PURESND")
333*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_BONGIOVI_DPS  ((En_DVB_advsndType)"ADVSND_BONGIOVI_DPS")
334*53ee8cc1Swenshuai.xi #define MSAPI_AUD_ADVSND_DOLBY_DAP     ((En_DVB_advsndType)"ADVSND_DOLBY_DAP")
335*53ee8cc1Swenshuai.xi 
336*53ee8cc1Swenshuai.xi #else
337*53ee8cc1Swenshuai.xi 
338*53ee8cc1Swenshuai.xi ///< Advance sound effect type
339*53ee8cc1Swenshuai.xi typedef enum
340*53ee8cc1Swenshuai.xi {
341*53ee8cc1Swenshuai.xi     MSAPI_AUD_ADVSND_PL2,             ///<ID = 0
342*53ee8cc1Swenshuai.xi     MSAPI_AUD_ADVSND_BBE,             ///<ID = 1
343*53ee8cc1Swenshuai.xi     MSAPI_AUD_ADVSND_SRS,             ///<ID = 2
344*53ee8cc1Swenshuai.xi     MSAPI_AUD_ADVSND_VDS,             ///<ID = 3
345*53ee8cc1Swenshuai.xi     MSAPI_AUD_ADVSND_VSPK,            ///<ID = 4
346*53ee8cc1Swenshuai.xi     MSAPI_AUD_ADVSND_SUPV,            ///<ID = 5
347*53ee8cc1Swenshuai.xi     MSAPI_AUD_ADVSND_TSHD,            ///<ID = 6
348*53ee8cc1Swenshuai.xi     MSAPI_AUD_ADVSND_DTS_ULTRATV,     ///<ID = 7
349*53ee8cc1Swenshuai.xi     MSAPI_AUD_ADVSND_TSHDVIQ,         ///<ID = 8
350*53ee8cc1Swenshuai.xi     MSAPI_AUD_ADVSND_AUDYSSEY,        ///<ID = 9
351*53ee8cc1Swenshuai.xi     MSAPI_AUD_ADVSND_DBX,             ///<ID = 10
352*53ee8cc1Swenshuai.xi     MSAPI_AUD_ADVSND_SSHD_TSHD,       ///<ID = 55
353*53ee8cc1Swenshuai.xi     MSAPI_AUD_ADVSND_PURESND,         ///<ID = 66
354*53ee8cc1Swenshuai.xi     MSAPI_AUD_ADVSND_BONGIOVI_DPS,   ///<ID = 93
355*53ee8cc1Swenshuai.xi     MSAPI_AUD_ADVSND_CV3,
356*53ee8cc1Swenshuai.xi } En_DVB_advsndType;
357*53ee8cc1Swenshuai.xi 
358*53ee8cc1Swenshuai.xi #endif
359*53ee8cc1Swenshuai.xi 
360*53ee8cc1Swenshuai.xi ///< Select audio output mode type
361*53ee8cc1Swenshuai.xi typedef enum
362*53ee8cc1Swenshuai.xi {
363*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_SOUNDMODE_STEREO,
364*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_SOUNDMODE_LEFT,
365*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_SOUNDMODE_RIGHT,
366*53ee8cc1Swenshuai.xi     MSAPI_AUD_DVB_SOUNDMODE_NONE,
367*53ee8cc1Swenshuai.xi } En_DVB_soundModeType;
368*53ee8cc1Swenshuai.xi 
369*53ee8cc1Swenshuai.xi ///< Melody play command type
370*53ee8cc1Swenshuai.xi typedef enum
371*53ee8cc1Swenshuai.xi {
372*53ee8cc1Swenshuai.xi     MSAPI_AUD_MELODY_START,
373*53ee8cc1Swenshuai.xi     MSAPI_AUD_MELODY_STOP,
374*53ee8cc1Swenshuai.xi     MSAPI_AUD_MELODY_RESUME,
375*53ee8cc1Swenshuai.xi     MSAPI_AUD_MELODY_CHK_STATUS
376*53ee8cc1Swenshuai.xi }En_DVB_melodyPlayCmdType;
377*53ee8cc1Swenshuai.xi 
378*53ee8cc1Swenshuai.xi typedef struct
379*53ee8cc1Swenshuai.xi {
380*53ee8cc1Swenshuai.xi     MS_U32 u32BufStartAddr;
381*53ee8cc1Swenshuai.xi     MS_U32 u32BufEndAddr;
382*53ee8cc1Swenshuai.xi     MS_U32 u32BufWrPtr;
383*53ee8cc1Swenshuai.xi     MS_U32 u32BufTotalSize;
384*53ee8cc1Swenshuai.xi     MS_U32 u32BufferedPCMSize;
385*53ee8cc1Swenshuai.xi }audioBufMonitor;
386*53ee8cc1Swenshuai.xi 
387*53ee8cc1Swenshuai.xi typedef struct
388*53ee8cc1Swenshuai.xi {
389*53ee8cc1Swenshuai.xi     audioBufMonitor _stBufInfo;
390*53ee8cc1Swenshuai.xi     MS_U32 u32ReqAddr;
391*53ee8cc1Swenshuai.xi     MS_U32 u32ReqSize;
392*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
393*53ee8cc1Swenshuai.xi     MS_U32 u32RetAddr1;
394*53ee8cc1Swenshuai.xi #else
395*53ee8cc1Swenshuai.xi     MS_PHY phyRetAddr1;
396*53ee8cc1Swenshuai.xi #endif
397*53ee8cc1Swenshuai.xi     MS_U32 u32RetSize1;
398*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
399*53ee8cc1Swenshuai.xi     MS_U32 u32RetAddr2;
400*53ee8cc1Swenshuai.xi #else
401*53ee8cc1Swenshuai.xi     MS_PHY phyRetAddr2;
402*53ee8cc1Swenshuai.xi #endif
403*53ee8cc1Swenshuai.xi     MS_U32 u32RetSize2;
404*53ee8cc1Swenshuai.xi     MS_U8 u8RingStatus;
405*53ee8cc1Swenshuai.xi }audioRingTask;
406*53ee8cc1Swenshuai.xi 
407*53ee8cc1Swenshuai.xi 
408*53ee8cc1Swenshuai.xi ///< Melody play status
409*53ee8cc1Swenshuai.xi typedef enum
410*53ee8cc1Swenshuai.xi {
411*53ee8cc1Swenshuai.xi     MSAPI_AUD_MELODY_NEED_MORE_DATA,
412*53ee8cc1Swenshuai.xi     MSAPI_AUD_MELODY_PLAY_INIT,
413*53ee8cc1Swenshuai.xi     MSAPI_AUD_MELODY_PLAY_ING,
414*53ee8cc1Swenshuai.xi     MSAPI_AUD_MELODY_PLAY_DONE,
415*53ee8cc1Swenshuai.xi     MSAPI_AUD_MELODY_PLAY_STOP
416*53ee8cc1Swenshuai.xi }En_DVB_melodyPlayStatus;
417*53ee8cc1Swenshuai.xi 
418*53ee8cc1Swenshuai.xi ///< Select AD output type
419*53ee8cc1Swenshuai.xi enum
420*53ee8cc1Swenshuai.xi {
421*53ee8cc1Swenshuai.xi     AD_OUT_SPEAKER, ///< AD out in speaker only
422*53ee8cc1Swenshuai.xi     AD_OUT_HP,      ///< AD out in HP only
423*53ee8cc1Swenshuai.xi     AD_OUT_BOTH,    ///< AD out both in speaker & HP
424*53ee8cc1Swenshuai.xi     AD_OUT_NONE     ///< no AD out
425*53ee8cc1Swenshuai.xi };
426*53ee8cc1Swenshuai.xi 
427*53ee8cc1Swenshuai.xi ///< Audio System Type
428*53ee8cc1Swenshuai.xi typedef enum
429*53ee8cc1Swenshuai.xi {
430*53ee8cc1Swenshuai.xi     E_AUDIO_SYSTEM_BTSC,
431*53ee8cc1Swenshuai.xi     E_AUDIO_SYSTEM_A2,
432*53ee8cc1Swenshuai.xi     E_AUDIO_SYSTEM_EIAJ
433*53ee8cc1Swenshuai.xi }AUDIO_SYSTEM_TYPE;
434*53ee8cc1Swenshuai.xi 
435*53ee8cc1Swenshuai.xi ///< Audio SIF Standard Type
436*53ee8cc1Swenshuai.xi typedef enum
437*53ee8cc1Swenshuai.xi {
438*53ee8cc1Swenshuai.xi     E_AUDIOSTANDARD_BG          = 0x00,         ///< Audio standard BG
439*53ee8cc1Swenshuai.xi     E_AUDIOSTANDARD_BG_A2       = 0x01,         ///< Audio standard BG A2
440*53ee8cc1Swenshuai.xi     E_AUDIOSTANDARD_BG_NICAM    = 0x02,         ///< Audio standard BG NICAM
441*53ee8cc1Swenshuai.xi     E_AUDIOSTANDARD_I           = 0x03,         ///< Audio standard I
442*53ee8cc1Swenshuai.xi     E_AUDIOSTANDARD_DK          = 0x04,         ///< Audio standard DK
443*53ee8cc1Swenshuai.xi     E_AUDIOSTANDARD_DK1_A2      = 0x05,         ///< Audio standard DK1 A2
444*53ee8cc1Swenshuai.xi     E_AUDIOSTANDARD_DK2_A2      = 0x06,         ///< Audio standard DK2 A2
445*53ee8cc1Swenshuai.xi     E_AUDIOSTANDARD_DK3_A2      = 0x07,         ///< Audio standard DK3 A2
446*53ee8cc1Swenshuai.xi     E_AUDIOSTANDARD_DK_NICAM    = 0x08,         ///< Audio standard DK NICAM
447*53ee8cc1Swenshuai.xi     E_AUDIOSTANDARD_L           = 0x09,         ///< Audio standard L
448*53ee8cc1Swenshuai.xi     E_AUDIOSTANDARD_M           = 0x0A,         ///< Audio standard M
449*53ee8cc1Swenshuai.xi     E_AUDIOSTANDARD_M_BTSC      = 0x0B,         ///< Audio standard M BTSC
450*53ee8cc1Swenshuai.xi     E_AUDIOSTANDARD_M_A2        = 0x0C,         ///< Audio standard M A2
451*53ee8cc1Swenshuai.xi     E_AUDIOSTANDARD_M_EIA_J     = 0x0D,         ///< Audio standard M EIA J
452*53ee8cc1Swenshuai.xi     E_AUDIOSTANDARD_NOTSTANDARD = 0x0F          ///< Not Audio standard
453*53ee8cc1Swenshuai.xi } AUDIOSTANDARD_TYPE;
454*53ee8cc1Swenshuai.xi 
455*53ee8cc1Swenshuai.xi ///< Audio Stream type
456*53ee8cc1Swenshuai.xi typedef enum
457*53ee8cc1Swenshuai.xi {
458*53ee8cc1Swenshuai.xi     E_AUDIOSTREAM_INVALID       = 0x00,
459*53ee8cc1Swenshuai.xi     E_AUDIOSTREAM_MPEG          = 0x01,
460*53ee8cc1Swenshuai.xi     E_AUDIOSTREAM_AC3           = 0x02,
461*53ee8cc1Swenshuai.xi     E_AUDIOSTREAM_MPEG_AD       = 0x03,
462*53ee8cc1Swenshuai.xi     E_AUDIOSTREAM_MPEG4         = 0x04,
463*53ee8cc1Swenshuai.xi     E_AUDIOSTREAM_AAC           = 0x05,
464*53ee8cc1Swenshuai.xi     E_AUDIOSTREAM_AC3P          = 0x06,
465*53ee8cc1Swenshuai.xi     E_AUDIOSTREAM_AC3_AD        = 0x07,
466*53ee8cc1Swenshuai.xi     E_AUDIOSTREAM_AC3P_AD       = 0x08,
467*53ee8cc1Swenshuai.xi     E_AUDIOSTREAM_AACP_AD       = 0x09,
468*53ee8cc1Swenshuai.xi     E_AUDIOSTREAM_DRA           = 0x0A
469*53ee8cc1Swenshuai.xi } AUDIOSTREAM_TYPE;
470*53ee8cc1Swenshuai.xi 
471*53ee8cc1Swenshuai.xi ///< Audio mode type
472*53ee8cc1Swenshuai.xi typedef enum
473*53ee8cc1Swenshuai.xi {
474*53ee8cc1Swenshuai.xi     E_AUDIOMODE_INVALID      = 0x00,            ///< Audio Mode Invalid
475*53ee8cc1Swenshuai.xi     E_AUDIOMODE_MONO         = 0x01,           ///< Audio Mode MONO
476*53ee8cc1Swenshuai.xi     E_AUDIOMODE_FORCED_MONO  = 0x02,           ///< Audio Mode Forced MONO
477*53ee8cc1Swenshuai.xi     E_AUDIOMODE_G_STEREO     = 0x03,           ///< Audio Mode G Stereo
478*53ee8cc1Swenshuai.xi     E_AUDIOMODE_K_STEREO     = 0x04,           ///< Audio Mode  K Stereo
479*53ee8cc1Swenshuai.xi     E_AUDIOMODE_MONO_SAP     = 0x05,           ///< Audio Mode MONO SAP
480*53ee8cc1Swenshuai.xi     E_AUDIOMODE_STEREO_SAP   = 0x06,           ///< Audio Mode Stereo SAP
481*53ee8cc1Swenshuai.xi     E_AUDIOMODE_DUAL_A       = 0x07,           ///< Audio Mode Dual A
482*53ee8cc1Swenshuai.xi     E_AUDIOMODE_DUAL_B       = 0x08,           ///< Audio Mode Dual B
483*53ee8cc1Swenshuai.xi     E_AUDIOMODE_DUAL_AB      = 0x09,           ///< Audio Mode Dual AB
484*53ee8cc1Swenshuai.xi     E_AUDIOMODE_NICAM_MONO   = 0x0A,           ///< Audio Mode NICAM MONO
485*53ee8cc1Swenshuai.xi     E_AUDIOMODE_NICAM_STEREO = 0x0B,           ///< Audio Mode NICAM Stereo
486*53ee8cc1Swenshuai.xi     E_AUDIOMODE_NICAM_DUAL_A = 0x0C,           ///< Audio Mode NICAM DUAL A
487*53ee8cc1Swenshuai.xi     E_AUDIOMODE_NICAM_DUAL_B = 0x0D,           ///< Audio Mode NICAM DUAL B
488*53ee8cc1Swenshuai.xi     E_AUDIOMODE_NICAM_DUAL_AB = 0x0E,           ///< Audio Mode NICAM DUAL AB
489*53ee8cc1Swenshuai.xi     E_AUDIOMODE_HIDEV_MONO   = 0x0F,           ///< Audio Mode HIDEV MONO
490*53ee8cc1Swenshuai.xi     E_AUDIOMODE_LEFT_LEFT    = 0x10,           ///< Audio Mode Left left
491*53ee8cc1Swenshuai.xi     E_AUDIOMODE_RIGHT_RIGHT  = 0x11,           ///< Audio Mode right right
492*53ee8cc1Swenshuai.xi     E_AUDIOMODE_LEFT_RIGHT   = 0x12           ///< Audio Mode left right
493*53ee8cc1Swenshuai.xi } AUDIOMODE_TYPE;
494*53ee8cc1Swenshuai.xi 
495*53ee8cc1Swenshuai.xi ///< sif carrier status define
496*53ee8cc1Swenshuai.xi typedef enum
497*53ee8cc1Swenshuai.xi { // Never change the value of enumeration. Because each bit has weight.
498*53ee8cc1Swenshuai.xi     E_STATE_AUDIO_NO_CARRIER           = 0x00, ///< No carrier detect
499*53ee8cc1Swenshuai.xi     E_STATE_AUDIO_PRIMARY_CARRIER      = 0x01, ///< Carrier 1 exist
500*53ee8cc1Swenshuai.xi     E_STATE_AUDIO_SECONDARY_CARRIER    = 0x02, ///< Carrier 2 exist
501*53ee8cc1Swenshuai.xi     E_STATE_AUDIO_NICAM                = 0x04, ///< Nicam lock state
502*53ee8cc1Swenshuai.xi     E_STATE_AUDIO_STEREO               = 0x08, ///< A2 Stereo exist
503*53ee8cc1Swenshuai.xi     E_STATE_AUDIO_BILINGUAL            = 0x10, ///< A2 Dual exist
504*53ee8cc1Swenshuai.xi     E_STATE_AUDIO_PILOT                = 0x20, ///< A2 Pilot exist
505*53ee8cc1Swenshuai.xi     E_STATE_AUDIO_DK2                  = 0x40, ///< Sound standard is DK2
506*53ee8cc1Swenshuai.xi     E_STATE_AUDIO_DK3                  = 0x80 ///< Sound standard is DK3
507*53ee8cc1Swenshuai.xi } AUDIOSTATUS;
508*53ee8cc1Swenshuai.xi 
509*53ee8cc1Swenshuai.xi ///< EQ band define
510*53ee8cc1Swenshuai.xi typedef enum
511*53ee8cc1Swenshuai.xi {
512*53ee8cc1Swenshuai.xi     E_EQUALIZER_BAND_1    = 0x00, ///< EQ Band1
513*53ee8cc1Swenshuai.xi     E_EQUALIZER_BAND_2    = 0x01, ///< EQ Band2
514*53ee8cc1Swenshuai.xi     E_EQUALIZER_BAND_3    = 0x02, ///< EQ Band3
515*53ee8cc1Swenshuai.xi     E_EQUALIZER_BAND_4    = 0x03, ///< EQ Band4
516*53ee8cc1Swenshuai.xi     E_EQUALIZER_BAND_5    = 0x04, ///< EQ Band5
517*53ee8cc1Swenshuai.xi     E_EQUALIZER_BAND_6    = 0x05, ///< EQ Band6
518*53ee8cc1Swenshuai.xi     E_EQUALIZER_BAND_7    = 0x06  ///< EQ Band7
519*53ee8cc1Swenshuai.xi } EQUALIZER_BAND;
520*53ee8cc1Swenshuai.xi 
521*53ee8cc1Swenshuai.xi ///< Audio command type
522*53ee8cc1Swenshuai.xi typedef enum
523*53ee8cc1Swenshuai.xi {
524*53ee8cc1Swenshuai.xi     E_AUDIO_COM_PLAY,
525*53ee8cc1Swenshuai.xi     E_AUDIO_COM_STOP,
526*53ee8cc1Swenshuai.xi     E_AUDIO_COM_RESYNC,
527*53ee8cc1Swenshuai.xi     E_AUDIO_COM_FREE_RUN,
528*53ee8cc1Swenshuai.xi     E_AUDIO_COM_LOCK_AVSYNC,
529*53ee8cc1Swenshuai.xi     E_AUDIO_COM_FILE_PLAY,      // start playing file based audio in MHEG5
530*53ee8cc1Swenshuai.xi     E_AUDIO_COM_FILE_PAUSE,      // pause playing file based audio in MHEG5
531*53ee8cc1Swenshuai.xi     E_AUDIO_DVB2_COM_PLAY,
532*53ee8cc1Swenshuai.xi     E_AUDIO_DVB2_COM_STOP,
533*53ee8cc1Swenshuai.xi     E_AUDIO_DVB2_COM_RESYNC,
534*53ee8cc1Swenshuai.xi     E_AUDIO_DVB2_COM_FREE_RUN,
535*53ee8cc1Swenshuai.xi     E_AUDIO_DVB2_COM_LOCK_AVSYNC,
536*53ee8cc1Swenshuai.xi     E_AUDIO_DVB2_COM_FILE_PLAY,      // start playing file based audio in MHEG5
537*53ee8cc1Swenshuai.xi     E_AUDIO_DVB2_COM_FILE_PAUSE      // pause playing file based audio in MHEG5
538*53ee8cc1Swenshuai.xi } DTV_AUDIO_COMMAND;
539*53ee8cc1Swenshuai.xi 
540*53ee8cc1Swenshuai.xi enum
541*53ee8cc1Swenshuai.xi {
542*53ee8cc1Swenshuai.xi     MSAPI_AUD_MODE_STEREO,  ///< 0:STEREO
543*53ee8cc1Swenshuai.xi     MSAPI_AUD_MODE_LL,      ///< 1: LL
544*53ee8cc1Swenshuai.xi     MSAPI_AUD_MODE_RR,      ///< 2: RR
545*53ee8cc1Swenshuai.xi     MSAPI_AUD_MODE_MUTE     ///< 3:MUTE
546*53ee8cc1Swenshuai.xi };
547*53ee8cc1Swenshuai.xi 
548*53ee8cc1Swenshuai.xi /// TSXT mode
549*53ee8cc1Swenshuai.xi enum
550*53ee8cc1Swenshuai.xi {
551*53ee8cc1Swenshuai.xi     MSAPI_TSXT_OFF     = 0,
552*53ee8cc1Swenshuai.xi     MSAPI_TSXT_STEREO,
553*53ee8cc1Swenshuai.xi     MSAPI_TSXT_3D_MONO,
554*53ee8cc1Swenshuai.xi     MSAPI_TSXT_MAX,
555*53ee8cc1Swenshuai.xi     MSAPI_TSXT_INVALID = -1
556*53ee8cc1Swenshuai.xi };
557*53ee8cc1Swenshuai.xi 
558*53ee8cc1Swenshuai.xi typedef enum
559*53ee8cc1Swenshuai.xi {
560*53ee8cc1Swenshuai.xi     E_TSXT_MOD_STEREO,         ///< 0:STEREO
561*53ee8cc1Swenshuai.xi     E_TSXT_MOD_3D_MONO,        ///< 0:MONO
562*53ee8cc1Swenshuai.xi     E_TSXT_MOD_MAX             ///< 0:PASSIVE MATRIX
563*53ee8cc1Swenshuai.xi } TSXT_MODETYPE;
564*53ee8cc1Swenshuai.xi 
565*53ee8cc1Swenshuai.xi ///< TSXT parameter
566*53ee8cc1Swenshuai.xi typedef enum
567*53ee8cc1Swenshuai.xi {
568*53ee8cc1Swenshuai.xi     E_TSXT_PARA_TS_GAIN,
569*53ee8cc1Swenshuai.xi     E_TSXT_PARA_DC_GAIN,
570*53ee8cc1Swenshuai.xi     E_TSXT_PARA_TB_GAIN,
571*53ee8cc1Swenshuai.xi     E_TSXT_PARA_SPK,
572*53ee8cc1Swenshuai.xi     E_TSXT_PARA_INPUT_MOD,
573*53ee8cc1Swenshuai.xi     E_TSXT_PARA_OUTPUT_GAIN
574*53ee8cc1Swenshuai.xi } TSXT_PARATYPE;
575*53ee8cc1Swenshuai.xi 
576*53ee8cc1Swenshuai.xi ///< Audio DSP system type
577*53ee8cc1Swenshuai.xi typedef enum
578*53ee8cc1Swenshuai.xi {
579*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_MPEG,                       ///< AUDIO DSP = MPEG
580*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_AC3,                        ///< AUDIO DSP = AC3
581*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_AC3_AD,                     ///< AUDIO DSP = AC3 AD
582*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_SIF,                        ///< AUDIO DSP = SIF
583*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_AACP,                       ///< AUDIO DSP = HE-AAC
584*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_MPEG_AD,                    ///< AUDIO DSP = MPEG AD
585*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_AC3P,                       ///< AUDIO DSP = AC3+
586*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_AC3P_AD,                    ///< AUDIO DSP = AC3P AD
587*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_AACP_AD,                    ///< AUDIO DSP = HE-AAC AD
588*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_DTS,                        ///< AUDIO DSP = DTS
589*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_MS10_DDT,                   ///< AUDIO DSP = MS10 DDT
590*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_MS10_DDC,                   ///< AUDIO DSP = MS10 DDC
591*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_FLAC,                       ///< AUDIO DSP = FLAC
592*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_FM_RADIO,                   ///< AUDIO DSP = FM RADIO
593*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_KTV,
594*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_RESERVE3,
595*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_RESERVE2,
596*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_RESERVE1,
597*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_MAX,
598*53ee8cc1Swenshuai.xi     E_AUDIO_DSP_INVALID=0xFF                ///< AUDIO DSP = Invalid
599*53ee8cc1Swenshuai.xi } AUDIO_DSP_SYSTEM;
600*53ee8cc1Swenshuai.xi 
601*53ee8cc1Swenshuai.xi ///<Audio source switch group
602*53ee8cc1Swenshuai.xi typedef enum
603*53ee8cc1Swenshuai.xi {
604*53ee8cc1Swenshuai.xi     E_AUDIO_GROUP_MAIN,      ///< Main speaker, HP, Line-out , S/PDIF PCM mode
605*53ee8cc1Swenshuai.xi     E_AUDIO_GROUP_SCART,    ///< SCART
606*53ee8cc1Swenshuai.xi     E_AUDIO_GROUP_SPDIF,    ///< SPDIF non-pcm
607*53ee8cc1Swenshuai.xi     E_AUDIO_GROUP_SUB,       ///< SUB source for PIP application
608*53ee8cc1Swenshuai.xi     E_AUDIO_GROUP_INVALID
609*53ee8cc1Swenshuai.xi } AUDIO_SWITCH_GROUP;
610*53ee8cc1Swenshuai.xi 
611*53ee8cc1Swenshuai.xi #define TBL_INDEX  MS_U8
612*53ee8cc1Swenshuai.xi #define TBL_LENGTH MS_U8
613*53ee8cc1Swenshuai.xi 
614*53ee8cc1Swenshuai.xi #define FM_RADIO_TBL_LENGTH    6   ///< FM Radio Threshold table length
615*53ee8cc1Swenshuai.xi #define BTSC_TBL_LENGTH       10   ///< BTSC Threshold table length
616*53ee8cc1Swenshuai.xi #define A2_M_TBL_LENGTH       10   ///< A2_M Threshold table length
617*53ee8cc1Swenshuai.xi #define A2_BG_TBL_LENGTH      10   ///< A2_BG Threshold table length
618*53ee8cc1Swenshuai.xi #define A2_DK_TBL_LENGTH      10   ///< A2_DK Threshold table length
619*53ee8cc1Swenshuai.xi #define FM_I_TBL_LENGTH        4   ///< FM_I Threshold table length
620*53ee8cc1Swenshuai.xi #define AM_TBL_LENGTH          2   ///< AM Threshold table length
621*53ee8cc1Swenshuai.xi #define NICAM_BG_TBL_LENGTH    2   ///< NICAM_BG Threshold table length
622*53ee8cc1Swenshuai.xi #define NICAM_I_TBL_LENGTH     2   ///< NICAM_I Threshold table length
623*53ee8cc1Swenshuai.xi #define HIDEV_M_TBL_LENGTH     4   ///< HIDEV_M Threshold table length
624*53ee8cc1Swenshuai.xi #define HIDEV_BG_TBL_LENGTH    4   ///< HIDEV_BG Threshold table length
625*53ee8cc1Swenshuai.xi #define HIDEV_DK_TBL_LENGTH    4   ///< HIDEV_DK Threshold table length
626*53ee8cc1Swenshuai.xi #define HIDEV_I_TBL_LENGTH     4   ///< HIDEV_I Threshold table length
627*53ee8cc1Swenshuai.xi 
628*53ee8cc1Swenshuai.xi #define FM_RADIO_TBL_INDEX      0
629*53ee8cc1Swenshuai.xi #define BTSC_TBL_INDEX          0
630*53ee8cc1Swenshuai.xi #define A2_M_TBL_INDEX          0
631*53ee8cc1Swenshuai.xi #define A2_BG_TBL_INDEX      A2_M_TBL_INDEX + A2_M_TBL_LENGTH
632*53ee8cc1Swenshuai.xi #define A2_DK_TBL_INDEX      A2_BG_TBL_INDEX + A2_BG_TBL_LENGTH
633*53ee8cc1Swenshuai.xi #define FM_I_TBL_INDEX       A2_DK_TBL_INDEX + A2_DK_TBL_LENGTH
634*53ee8cc1Swenshuai.xi #define AM_TBL_INDEX         FM_I_TBL_INDEX + FM_I_TBL_LENGTH
635*53ee8cc1Swenshuai.xi #define NICAM_BG_TBL_INDEX  AM_TBL_INDEX + AM_TBL_LENGTH
636*53ee8cc1Swenshuai.xi #define NICAM_I_TBL_INDEX   NICAM_BG_TBL_INDEX + NICAM_BG_TBL_LENGTH
637*53ee8cc1Swenshuai.xi #define HIDEV_M_TBL_INDEX   NICAM_I_TBL_INDEX + NICAM_I_TBL_LENGTH
638*53ee8cc1Swenshuai.xi #define HIDEV_BG_TBL_INDEX  HIDEV_M_TBL_INDEX + HIDEV_M_TBL_LENGTH
639*53ee8cc1Swenshuai.xi #define HIDEV_DK_TBL_INDEX  HIDEV_BG_TBL_INDEX + HIDEV_BG_TBL_LENGTH
640*53ee8cc1Swenshuai.xi #define HIDEV_I_TBL_INDEX   HIDEV_DK_TBL_INDEX + HIDEV_DK_TBL_LENGTH
641*53ee8cc1Swenshuai.xi 
642*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
643*53ee8cc1Swenshuai.xi //  Function and Variable
644*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
645*53ee8cc1Swenshuai.xi 
646*53ee8cc1Swenshuai.xi //============================================================
647*53ee8cc1Swenshuai.xi // AUDIO_SYSTEM RELATIONAL API FUNCTION
648*53ee8cc1Swenshuai.xi //============================================================
649*53ee8cc1Swenshuai.xi 
650*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
651*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
652*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetPowerOn()
653*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to execute DSP power on/down setting.
654*53ee8cc1Swenshuai.xi /// @param bFlag        \b : TRUE --power on;
655*53ee8cc1Swenshuai.xi ///                         FALSE--power off
656*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
657*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetPowerOn(MS_BOOL bFlag);
658*53ee8cc1Swenshuai.xi 
659*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
660*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
661*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUD_Initialize()
662*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Audio initialize function incluing DSP power on and load code.
663*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
664*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_Initialize(void);
665*53ee8cc1Swenshuai.xi 
666*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
667*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
668*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetSystemInfo()
669*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Function for Driver layer to get the system compile option
670*53ee8cc1Swenshuai.xi ///                                                  (TV system , Audio system ....)
671*53ee8cc1Swenshuai.xi /// @param pau_info    \b : Audio output path information structure pointer
672*53ee8cc1Swenshuai.xi ///                                    Please refer  AUDIO_INIT_INFO   in header file
673*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
674*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetSystemInfo(AUDIO_INIT_INFO *pau_info);
675*53ee8cc1Swenshuai.xi 
676*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
677*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
678*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_Audio_Monitor()
679*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This function is used to monitor DSP while-loop and ISR running counter.
680*53ee8cc1Swenshuai.xi ///                                  If these counters stop longer than a certain period of time in any abnormal condition, DSP reboot will be launched to alive DSP process again.
681*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
682*53ee8cc1Swenshuai.xi  void    MApi_Audio_Monitor(void);
683*53ee8cc1Swenshuai.xi 
684*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
685*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
686*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetOutConnectivity()
687*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Set the TV output connectivity information from APP layer
688*53ee8cc1Swenshuai.xi ///                                                   to audio driver .  Then audio driver will set the audio output
689*53ee8cc1Swenshuai.xi ///                                                   port with these information automatically.
690*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////
691*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetOutConnectivity(void);
692*53ee8cc1Swenshuai.xi 
693*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
694*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
695*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetPathInfo()
696*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Get audio output path information from APP
697*53ee8cc1Swenshuai.xi /// @param path_info   \b : path information structure pointer
698*53ee8cc1Swenshuai.xi ///                                    for Speaker , Head phone , Monitor out , Scart out and SPDIF out
699*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
700*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetPathInfo(AUDIO_PATH_INFO *path_info);
701*53ee8cc1Swenshuai.xi 
702*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
703*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
704*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetPathInfo()
705*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Get audio output path information from APP
706*53ee8cc1Swenshuai.xi /// @param path_info   \b : path information structure pointer
707*53ee8cc1Swenshuai.xi ///                                    for Speaker , Head phone , Monitor out , Scart out and SPDIF out
708*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
709*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_GetPathInfo(AUDIO_PATH_INFO *path_info);
710*53ee8cc1Swenshuai.xi 
711*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
712*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
713*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetOutputInfo()
714*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Get audio output information from APP
715*53ee8cc1Swenshuai.xi /// @param pout_info   \b : Audio output path information structure pointer.
716*53ee8cc1Swenshuai.xi ///                                    Please refer  AUDIO_OUT_INFO   in header file
717*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
718*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetOutputInfo(AUDIO_OUT_INFO *pout_info);
719*53ee8cc1Swenshuai.xi 
720*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
721*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
722*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetSourceInfo()
723*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  For driver layer to get audio source information from APP
724*53ee8cc1Swenshuai.xi /// @param eSourceType   \b : information structure pointer ==>AUDIO_SOURCE_INFO_TYPE
725*53ee8cc1Swenshuai.xi ///                         - E_AUDIO_INFO_DTV_IN,
726*53ee8cc1Swenshuai.xi ///                         - E_AUDIO_INFO_ATV_IN,
727*53ee8cc1Swenshuai.xi ///                         - E_AUDIO_INFO_HDMI_IN,
728*53ee8cc1Swenshuai.xi ///                         - E_AUDIO_INFO_ADC_IN,
729*53ee8cc1Swenshuai.xi ///                         - E_AUDIO_INFO_MM_IN,
730*53ee8cc1Swenshuai.xi ///                         - E_AUDIO_INFO_SPDIF_IN,
731*53ee8cc1Swenshuai.xi ///                         - E_AUDIO_INFO_KTV_IN,
732*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
733*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetSourceInfo(AUDIO_SOURCE_INFO_TYPE eSourceType);
734*53ee8cc1Swenshuai.xi 
735*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
736*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
737*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_InputSwitch()
738*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Set audio Input connectivity (for S7 serious only)
739*53ee8cc1Swenshuai.xi /// @param enSource   \b :  Please refer  AUDIO_INPUT_TYPE  enum in header file
740*53ee8cc1Swenshuai.xi ///@param  enGroup  \b : Please refer  AUDIO_SWITCH_GROUP  enum in header file
741*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////
742*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_InputSwitch(AUDIO_INPUT_TYPE enSource, AUDIO_SWITCH_GROUP enGroup);
743*53ee8cc1Swenshuai.xi 
744*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
745*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
746*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetDataCaptureSource()
747*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Select source for data capture
748*53ee8cc1Swenshuai.xi /// @param <IN>        \b AUDIO_DEVICE_TYPE : select 1st or 2nd data capture
749*53ee8cc1Swenshuai.xi /// @param <IN>        \b AUDIO_CAPTURE_SOURCE_TYPE : Data Source
750*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_BOOL    : return TRUE if success, else return FALSE
751*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
752*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
753*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
754*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_SetDataCaptureSource(AUDIO_DEVICE_TYPE eID, AUDIO_CAPTURE_SOURCE_TYPE eSource);
755*53ee8cc1Swenshuai.xi 
756*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
757*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
758*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetOutputSourceInfo()
759*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Set audio output source information
760*53ee8cc1Swenshuai.xi /// @param path_info   \b : output port source information structure pointer
761*53ee8cc1Swenshuai.xi ///                                    for Speaker , Head phone , Monitor out , Scart out and SPDIF out
762*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
763*53ee8cc1Swenshuai.xi  void   MApi_AUDIO_SetOutputSourceInfo(OUTPUT_SOURCE_INFO *pSourceInfo);
764*53ee8cc1Swenshuai.xi 
765*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
766*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
767*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetOutputSourceInfo()
768*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Get audio output path information from APP
769*53ee8cc1Swenshuai.xi /// @param pSourceInfo   \b : output port source information structure pointer
770*53ee8cc1Swenshuai.xi ///                                    for Speaker , Head phone , Monitor out , Scart out and SPDIF out
771*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
772*53ee8cc1Swenshuai.xi  void   MApi_AUDIO_GetOutputSourceInfo(OUTPUT_SOURCE_INFO *pSourceInfo);
773*53ee8cc1Swenshuai.xi 
774*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
775*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
776*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ReadMailBox()
777*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This routine is used to read the DSP mail box value
778*53ee8cc1Swenshuai.xi /// @param bDspType    \b : Select audio DEC/SE DSP
779*53ee8cc1Swenshuai.xi /// @param u8ParamNum  \b : Mail box address
780*53ee8cc1Swenshuai.xi /// @return MS_U16     \b : Mail Box value
781*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
782*53ee8cc1Swenshuai.xi  MS_U16  MApi_AUDIO_ReadMailBox(MS_BOOL bDspType, MS_U8 u8ParamNum);
783*53ee8cc1Swenshuai.xi 
784*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
785*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
786*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_AUDIO_WriteDecMailBox()
787*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This routine is used to write DSP mail box
788*53ee8cc1Swenshuai.xi /// @param bDspType    \b : Select audio DEC/SE DSP
789*53ee8cc1Swenshuai.xi /// @param u8ParamNum  \b : Mail box address
790*53ee8cc1Swenshuai.xi /// @param u16Data     \b : value
791*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
792*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_WriteMailBox(MS_BOOL bDspType, MS_U8 u8ParamNum, MS_U16 u16Data);
793*53ee8cc1Swenshuai.xi 
794*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
795*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
796*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_FwTriggerDSP()
797*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This routine send a PIO interrupt to DSP with a command .
798*53ee8cc1Swenshuai.xi /// @param u16Cmd      \b :    0xF0-- for MHEG5 file protocol
799*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
800*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_FwTriggerDSP(MS_U16 u16Cmd);
801*53ee8cc1Swenshuai.xi 
802*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
803*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
804*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetFwStatus()
805*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  FW set DSP load/reload code from DDR or Flash
806*53ee8cc1Swenshuai.xi /// @param bBootOnDDR  \b :
807*53ee8cc1Swenshuai.xi ///                     - TRUE==> Boot from DDR;
808*53ee8cc1Swenshuai.xi ///                     - FALSE==> Boot from Flash
809*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
810*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_SetFwStatus(MS_BOOL en);
811*53ee8cc1Swenshuai.xi 
812*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
813*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
814*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ExitAudioSystem()
815*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to exit audio system
816*53ee8cc1Swenshuai.xi ///                                  by performing DSP power down setting.
817*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
818*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_ExitAudioSystem(void);
819*53ee8cc1Swenshuai.xi 
820*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
821*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
822*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_RebootDsp(void)
823*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This routine reboot DSP.
824*53ee8cc1Swenshuai.xi /// @param bDspType    \b : 0- DEC DSP; 1- SNDEff DSP
825*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
826*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_RebootDsp(MS_BOOL bDspType);
827*53ee8cc1Swenshuai.xi 
828*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
829*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
830*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SendIntrupt()
831*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine send a PIO8 interrupt to DSP.
832*53ee8cc1Swenshuai.xi /// @param bDspType    \b :  0- DEC DSP; 1- SNDEff DSP
833*53ee8cc1Swenshuai.xi /// @param u8Cmd       \b :  0xE0, for MHEG5 file protocol
834*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
835*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_SendIntrupt(MS_BOOL bDspType,MS_U8 u8Cmd);
836*53ee8cc1Swenshuai.xi 
837*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
838*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
839*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_I2S_SetMode()
840*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This routine is used to Set the I2S output mode.
841*53ee8cc1Swenshuai.xi /// @param u8Mode      \b : I2S mode select
842*53ee8cc1Swenshuai.xi ///                       - AUDIO_I2S_MCLK               ==>Set I2S MCLK
843*53ee8cc1Swenshuai.xi ///                       - AUDIO_I2S_WORD_WIDTH, ==>Set I2S Word-width
844*53ee8cc1Swenshuai.xi ///                       - AUDIO_I2S_SOURCE_CH,    ==>Set I2S channel Source
845*53ee8cc1Swenshuai.xi ///                       - AUDIO_I2S_FORMAT            ==>Set  I2S format
846*53ee8cc1Swenshuai.xi /// @param u8Val      \b : I2S mode value
847*53ee8cc1Swenshuai.xi ///                      - I2S_MCLK_64FS=0x04,               ==> MCLK=64 Fs ;
848*53ee8cc1Swenshuai.xi ///                      - I2S_MCLK_128FS=0x05,             ==> MCLK=128 Fs ;
849*53ee8cc1Swenshuai.xi ///                      - I2S_MCLK_256FS=0x06,             ==> MCLK=256 Fs ; default setting
850*53ee8cc1Swenshuai.xi ///                      - I2S_MCLK_384FS=0x07,             ==> MCLK=384 Fs ;
851*53ee8cc1Swenshuai.xi ///                      - I2S_WORD_WIDTH_16BIT=0x4,  ==>Word width=16bit;
852*53ee8cc1Swenshuai.xi ///                      - I2S_WORD_WIDTH_24BIT=0x5,  ==>Word width=24bit;
853*53ee8cc1Swenshuai.xi ///                      - I2S_WORD_WIDTH_32BIT=0x6,  ==>Word width=32bit; default setting
854*53ee8cc1Swenshuai.xi ///                      - I2S_FORMAT_STANDARD=0,       ==>I2S  in Standard format
855*53ee8cc1Swenshuai.xi ///                      - I2S_FORMAT_LEFT_JUSTIFIED=1 ==> I2S in Left-justify format
856*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////
857*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_I2S_SetMode(AUDIO_I2S_MODE_TYPE u8Mode, AUDIO_I2S_MODE_VALUE  u8Val);
858*53ee8cc1Swenshuai.xi 
859*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
860*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
861*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_WritePreInitTable()
862*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is to set power on DAC sequence before setting init table.
863*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
864*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_WritePreInitTable(void);            //Refine power on sequence for earphone & DAC pop noise issue
865*53ee8cc1Swenshuai.xi 
866*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
867*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
868*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_EnaEarphone_LowPower_Stage()
869*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to enable earphone low power stage.
870*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
871*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_EnaEarphone_LowPower_Stage(void);   //Refine power on sequence for earphone & DAC pop noise issue
872*53ee8cc1Swenshuai.xi 
873*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
874*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
875*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_EnaEarphone_HighDriving_Stage()
876*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to enable earphone high driving stage.
877*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
878*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_EnaEarphone_HighDriving_Stage(void);//Refine power on sequence for earphone & DAC pop noise issue
879*53ee8cc1Swenshuai.xi 
880*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
881*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetDspBaseAddr()
882*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function is used to set bin file base address in flash for Audio module.
883*53ee8cc1Swenshuai.xi /// @param u8Index     \b :
884*53ee8cc1Swenshuai.xi /// @param u32Bin_Base_Address    \b :
885*53ee8cc1Swenshuai.xi /// @param u32Mad_Base_Buffer_Adr \b :
886*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
887*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetDspBaseAddr(MS_U8 u8Index, MS_U32 u32Bin_Base_Address, MS_U32 u32Mad_Base_Buffer_Adr);
888*53ee8cc1Swenshuai.xi 
889*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
890*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetDspMadBaseAddr()
891*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function is used to get the MAD base address.
892*53ee8cc1Swenshuai.xi /// @param u8Index     \b     :
893*53ee8cc1Swenshuai.xi /// @return MS_U32     \b     :
894*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
895*53ee8cc1Swenshuai.xi  MS_U32  MApi_AUDIO_GetDspMadBaseAddr(MS_U8 u8Index);
896*53ee8cc1Swenshuai.xi 
897*53ee8cc1Swenshuai.xi //=============================================================
898*53ee8cc1Swenshuai.xi // AUDIO_SOUND RELATIONAL API FUNCTION
899*53ee8cc1Swenshuai.xi //=============================================================
900*53ee8cc1Swenshuai.xi 
901*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
902*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
903*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_SND_ProcessEnable()
904*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used for adjust Common Sound parameters
905*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
906*53ee8cc1Swenshuai.xi  MS_BOOL MApi_SND_ProcessEnable(Sound_ENABLE_Type Type, MS_BOOL enable);
907*53ee8cc1Swenshuai.xi 
908*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
909*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
910*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_SND_SetParam1()
911*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used for adjust Common Sound parameters
912*53ee8cc1Swenshuai.xi /// @return MS_BOOL     \b : True / False
913*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
914*53ee8cc1Swenshuai.xi  MS_BOOL MApi_SND_SetParam1( Sound_SET_PARAM_Type Type, MS_U16 param1, MS_U16 param2);
915*53ee8cc1Swenshuai.xi 
916*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
917*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
918*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: HAL_AUDIO_SOUND_SetParam()
919*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used for adjust Common Sound parameters
920*53ee8cc1Swenshuai.xi /// @return MS_BOOL     \b : True / False
921*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
922*53ee8cc1Swenshuai.xi  MS_U16  MApi_SND_GetParam1( Sound_GET_PARAM_Type Type, MS_U16 param1);
923*53ee8cc1Swenshuai.xi 
924*53ee8cc1Swenshuai.xi //******************************************************************************
925*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
926*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SOUND_SetParam()
927*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used for adjust Common Sound parameters
928*53ee8cc1Swenshuai.xi /// @return MS_BOOL     \b : True / False
929*53ee8cc1Swenshuai.xi //******************************************************************************
930*53ee8cc1Swenshuai.xi   MS_BOOL MApi_AUDIO_SOUND_SetParam( Sound_SET_Type Type, MS_U32 *p_param );
931*53ee8cc1Swenshuai.xi 
932*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
933*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
934*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_SOUND_AbsoluteVolume()
935*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set the absolute u8Volume of audio u8Path.
936*53ee8cc1Swenshuai.xi /// @param u8Path      \b : for audio u8Path0 ~ u8Path6
937*53ee8cc1Swenshuai.xi /// @param u8Vol1      \b : MSB 7-bit register value of 10-bit u8Volume
938*53ee8cc1Swenshuai.xi ///                         range from 0x00 to 0x7E , gain: +12db to   -114db (-1 db per step)
939*53ee8cc1Swenshuai.xi /// @param u8Vol2      \b : LSB 3-bit register value of 10-bit u8Volume
940*53ee8cc1Swenshuai.xi ///                         range from 0x00 to 0x07 , gain:  -0db to -0.875db (-0.125 db per step)
941*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
942*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetAbsoluteVolume( MS_U8 u8Path, MS_U8 u8Vol1, MS_U8 u8Vol2 );
943*53ee8cc1Swenshuai.xi 
944*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
945*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
946*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetPreScale()
947*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set the prescale of audio u8Path.
948*53ee8cc1Swenshuai.xi /// @param u8Path      \b : for audio u8Path0 ~ u8Path5
949*53ee8cc1Swenshuai.xi /// @param u8PreScale  \b : range from 0x01 to 0xFF , gain: -13.75db to +18db (0.125 db per step)
950*53ee8cc1Swenshuai.xi ///                       - 0x00: disable pre-scale
951*53ee8cc1Swenshuai.xi ///                       - 0x6F: gain = 0db
952*53ee8cc1Swenshuai.xi ///                       - 0xFF: gain = +18db
953*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
954*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetPreScale ( MS_U8 u8Path, MS_U8 u8PreScale );
955*53ee8cc1Swenshuai.xi 
956*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
957*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
958*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetMute()
959*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set audio path S/W mute.
960*53ee8cc1Swenshuai.xi /// @param u8Path      \b : for audio path0 ~ path6
961*53ee8cc1Swenshuai.xi /// @param EnMute      \b : TRUE --Mute;
962*53ee8cc1Swenshuai.xi ///                         FALSE--Unmute
963*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
964*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetMute( MS_U8 u8Path, MS_BOOL EnMute);
965*53ee8cc1Swenshuai.xi 
966*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
967*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
968*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SourceConnect()
969*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set audio mute by processor
970*53ee8cc1Swenshuai.xi /// @param u8Path      \b : eProcessor: Set Main/Sub processor,
971*53ee8cc1Swenshuai.xi /// @param EnMute      \b : TRUE --Mute;
972*53ee8cc1Swenshuai.xi ///                                    FALSE--Unmute
973*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
974*53ee8cc1Swenshuai.xi  void MApi_AUDIO_SourceConnect(AUDIO_OUTPORT_SOURCE_TYPE eConnectSourceType, MS_BOOL bIsConnect );
975*53ee8cc1Swenshuai.xi 
976*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
977*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
978*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetBalance()
979*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set  balance value
980*53ee8cc1Swenshuai.xi /// @param u8Balance   \b : balance (0~100)
981*53ee8cc1Swenshuai.xi ///                       - 0    :  R channel is muted ...
982*53ee8cc1Swenshuai.xi ///                       - 50   :  L & R channel output the same level...
983*53ee8cc1Swenshuai.xi ///                       -  100 :  L channel is muted .
984*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
985*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetBalance ( MS_U8 u8Balance );
986*53ee8cc1Swenshuai.xi 
987*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
988*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
989*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_EnableEQ()
990*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to enable EQ function.
991*53ee8cc1Swenshuai.xi /// @param EnEQ        \b : TRUE --Enable EQ;
992*53ee8cc1Swenshuai.xi ///                                   FALSE--Disable EQ
993*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
994*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_EnableEQ ( MS_BOOL EnEQ );
995*53ee8cc1Swenshuai.xi 
996*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
997*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
998*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_EnableTone()
999*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to enable Bass/Treble function.
1000*53ee8cc1Swenshuai.xi /// @param EnTone      \b : TRUE --Enable Bass/Treble;
1001*53ee8cc1Swenshuai.xi ///                         FALSE--Disable Bass/Treble
1002*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1003*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_EnableTone ( MS_BOOL EnTone );
1004*53ee8cc1Swenshuai.xi 
1005*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1006*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1007*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_EnableAutoVolume()
1008*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to enable auto volume(AVC) function.
1009*53ee8cc1Swenshuai.xi /// @param EnAVC       \b : TRUE --Enable AVC;
1010*53ee8cc1Swenshuai.xi ///                        FALSE--Disable AVC
1011*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1012*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_EnableAutoVolume ( MS_BOOL EnAVL );
1013*53ee8cc1Swenshuai.xi 
1014*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1015*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1016*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_EnableSurround()
1017*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to enable surround function.
1018*53ee8cc1Swenshuai.xi /// @param EnSurround   \b : TRUE --Enable Surround;
1019*53ee8cc1Swenshuai.xi ///                          FALSE--Disable Surround
1020*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1021*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_EnableSurround ( MS_BOOL EnSurround );
1022*53ee8cc1Swenshuai.xi 
1023*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1024*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1025*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_EnableBalance()
1026*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to enable Balance function.
1027*53ee8cc1Swenshuai.xi /// @param EnBalance   \b : Balance Enable bits
1028*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1029*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_EnableBalance( MS_U8 EnBalance );
1030*53ee8cc1Swenshuai.xi 
1031*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1032*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1033*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetDynamicBass()
1034*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set DynamicBass level.
1035*53ee8cc1Swenshuai.xi /// @param u8Bass      \b :
1036*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1037*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetDynamicBass( MS_U8 u8DynamicBass );
1038*53ee8cc1Swenshuai.xi 
1039*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1040*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1041*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetBass()
1042*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set Bass level.
1043*53ee8cc1Swenshuai.xi /// @param u8Bass      \b :Bass Level (0~100)
1044*53ee8cc1Swenshuai.xi ///                       - CHIP_FAMILY_U3 & S4LE==>mapping to -16 ~ +15 dB Gain
1045*53ee8cc1Swenshuai.xi ///                       - CHIP_FAMILY_S7 ==>mapping to -12 ~ +12 dB Gain
1046*53ee8cc1Swenshuai.xi ///                       - CHIP_FAMILY_S7J       ==> mapping to -16 ~ +15 dB Gain
1047*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1048*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetBass( MS_U8 u8Bass );
1049*53ee8cc1Swenshuai.xi 
1050*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1051*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1052*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_AbsoluteBass()
1053*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set abs. Bass value.
1054*53ee8cc1Swenshuai.xi /// @param u8Bass      \b : register value
1055*53ee8cc1Swenshuai.xi ///                       - CHIP_FAMILY_U3 & S4LE ==>mapping to -16 ~ +15 dB Gain
1056*53ee8cc1Swenshuai.xi ///                       - CHIP_FAMILY_S7 ==>mapping to -12 ~ +12 dB Gain
1057*53ee8cc1Swenshuai.xi ///                       - CHIP_FAMILY_S7J       ==> mapping to -16 ~ +15 dB Gain
1058*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1059*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_AbsoluteBass( MS_U8 u8Bass );
1060*53ee8cc1Swenshuai.xi 
1061*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1062*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1063*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetTreble()
1064*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set Treble level.
1065*53ee8cc1Swenshuai.xi /// @param u8Treble    \b :Treble Level (0~100)
1066*53ee8cc1Swenshuai.xi ///                       - CHIP_FAMILY_U3 & S4LE ==>mapping to -16 ~ +15 dB Gain
1067*53ee8cc1Swenshuai.xi ///                       - CHIP_FAMILY_S7 ==>mapping to -12 ~ +12 dB Gain
1068*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1069*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetTreble( MS_U8 u8Treble );
1070*53ee8cc1Swenshuai.xi 
1071*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1072*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1073*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_AbsoluteTreble()
1074*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set abs. Treble value.
1075*53ee8cc1Swenshuai.xi /// @param u8Treble    \b : register value
1076*53ee8cc1Swenshuai.xi ///                       - CHIP_FAMILY_U3 & S4LE ==> mapping to -16 ~ +15 dB Gain
1077*53ee8cc1Swenshuai.xi ///                       - CHIP_FAMILY_S7        ==> mapping to -12 ~ +12 dB Gain
1078*53ee8cc1Swenshuai.xi ///                       - CHIP_FAMILY_S7J       ==> mapping to -16 ~ +15 dB Gain
1079*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1080*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_AbsoluteTreble( MS_U8 u8Treble );
1081*53ee8cc1Swenshuai.xi 
1082*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1083*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1084*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetEq()
1085*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set the the 5-band EQ level  .
1086*53ee8cc1Swenshuai.xi /// @param u8band      \b :  EQ band 0~4
1087*53ee8cc1Swenshuai.xi /// @param u8level     \b :  Absolute EQ register value  ;
1088*53ee8cc1Swenshuai.xi ///                       - 0011-0000: +12.00db. (Max)
1089*53ee8cc1Swenshuai.xi ///                       - 0000-0001: +0.25db.
1090*53ee8cc1Swenshuai.xi ///                       - 0000-0000: +0.00db.
1091*53ee8cc1Swenshuai.xi ///                       - 1111-1111: -0.25db.
1092*53ee8cc1Swenshuai.xi ///                       - 1101-0000: -12.00db. (Min)
1093*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1094*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetEq(MS_U8 u8band, MS_U8 u8level);
1095*53ee8cc1Swenshuai.xi 
1096*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1097*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1098*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetEq_7band()
1099*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set the the 7-band EQ level  .
1100*53ee8cc1Swenshuai.xi /// @param u8band      \b :  EQ band 0~6
1101*53ee8cc1Swenshuai.xi /// @param u8level     \b :  Absolute EQ register value  ;
1102*53ee8cc1Swenshuai.xi ///                          0011-0000: +12.00db. (Max)
1103*53ee8cc1Swenshuai.xi ///                          0000-0001: +0.25db.
1104*53ee8cc1Swenshuai.xi ///                          0000-0000: +0.00db.
1105*53ee8cc1Swenshuai.xi ///                          1111-1111: -0.25db.
1106*53ee8cc1Swenshuai.xi ///                          1101-0000: -12.00db. (Min)
1107*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1108*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetEq_7band(MS_U8 u8band, MS_U8 u8level);
1109*53ee8cc1Swenshuai.xi 
1110*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1111*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1112*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetAvcThreshold()
1113*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set the AVC  threshold level.
1114*53ee8cc1Swenshuai.xi /// @param Level       \b :  AVC threshold level
1115*53ee8cc1Swenshuai.xi ///                       - 0x00--  0    dBFS
1116*53ee8cc1Swenshuai.xi ///                       - 0x01--  -0.5    dBFS
1117*53ee8cc1Swenshuai.xi ///                       - 0x20--  -16    dBFS
1118*53ee8cc1Swenshuai.xi ///                       - 0x50--  -40    dBFS
1119*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1120*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetAvcThreshold(MS_U8 Level);
1121*53ee8cc1Swenshuai.xi 
1122*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1123*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1124*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetAvcMode()
1125*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set the AVC mode.
1126*53ee8cc1Swenshuai.xi /// @param <IN>        \b u8AvcMode    :  AVC u8Mode
1127*53ee8cc1Swenshuai.xi ///                                    - 0: L mode
1128*53ee8cc1Swenshuai.xi ///                                    - 1: S mode
1129*53ee8cc1Swenshuai.xi ///                                    - 2: M mode
1130*53ee8cc1Swenshuai.xi /// @image html L_mode.JPG "L mode"
1131*53ee8cc1Swenshuai.xi /// @image html S_mode.JPG "S mode"
1132*53ee8cc1Swenshuai.xi /// @image html M_mode.JPG "M mode"
1133*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
1134*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
1135*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
1136*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1137*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetAvcMode( MS_U8 AvcMode );
1138*53ee8cc1Swenshuai.xi 
1139*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1140*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1141*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetAvcAT()
1142*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set the AVC  attack time .
1143*53ee8cc1Swenshuai.xi /// @param AvcAT       \b :  AVC attack time
1144*53ee8cc1Swenshuai.xi ///                       - AvcAT = 0 --> 20  ms
1145*53ee8cc1Swenshuai.xi ///                       - AvcAT = 1 --> 100 ms
1146*53ee8cc1Swenshuai.xi ///                       - AvcAT = 2 --> 200 ms
1147*53ee8cc1Swenshuai.xi ///                       - AvcAT = 3 --> 1 sec
1148*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1149*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetAvcAT( MS_U8 AvcAT );
1150*53ee8cc1Swenshuai.xi 
1151*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1152*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1153*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetAvcRT()
1154*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set the AVC  release time .
1155*53ee8cc1Swenshuai.xi /// @param AvcRT       \b :  AVC release time
1156*53ee8cc1Swenshuai.xi ///                       - AvcRT = 0 --> 1 sec
1157*53ee8cc1Swenshuai.xi ///                       - AvcRT = 1 --> 2 sec
1158*53ee8cc1Swenshuai.xi ///                       - AvcRT = 2 --> 100 ms
1159*53ee8cc1Swenshuai.xi ///                       - AvcRT = 3 --> 200 ms
1160*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1161*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetAvcRT( MS_U8 AvcRT );
1162*53ee8cc1Swenshuai.xi 
1163*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1164*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1165*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetBufferProcess()
1166*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: sets the value of audio delay time (ms)..
1167*53ee8cc1Swenshuai.xi /// @param DelayTime   \b : 0x00~0xFA(0~250), each step=1 ms , 0~250 ms
1168*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1169*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetBufferProcess(MS_U8 DelayTime);
1170*53ee8cc1Swenshuai.xi 
1171*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1172*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1173*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetSurroundXA()
1174*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set the Surround xA echo Gain.
1175*53ee8cc1Swenshuai.xi /// @param <IN>        \b mode    :     A Gain : register SURROUND[3:2]
1176*53ee8cc1Swenshuai.xi ///                       - 0 :    x0.1
1177*53ee8cc1Swenshuai.xi ///                       - 1 :    x0.15
1178*53ee8cc1Swenshuai.xi ///                       - 2 :    x0.2
1179*53ee8cc1Swenshuai.xi ///                       - 3 :    x0.25
1180*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
1181*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
1182*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE
1183*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1184*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetSurroundXA( MS_U8 mode );
1185*53ee8cc1Swenshuai.xi 
1186*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1187*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1188*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetSurroundXB()
1189*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set the Surround xB echo Gain.
1190*53ee8cc1Swenshuai.xi /// @param <IN>        \b mode    :   B Gain : register SURROUND[5:4]
1191*53ee8cc1Swenshuai.xi ///                       - 0 :    x0.25
1192*53ee8cc1Swenshuai.xi ///                       - 1 :    x0.3
1193*53ee8cc1Swenshuai.xi ///                       - 2 :    x0.35
1194*53ee8cc1Swenshuai.xi ///                       - 3 :    x0.45
1195*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
1196*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
1197*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE
1198*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1199*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetSurroundXB( MS_U8 mode );
1200*53ee8cc1Swenshuai.xi 
1201*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1202*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1203*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetSurroundXK()
1204*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set the Surround xK feedback Gain.
1205*53ee8cc1Swenshuai.xi /// @param <IN>        \b mode    :     K Gain : register SURROUND[10:8]
1206*53ee8cc1Swenshuai.xi ///                       - 0 :    x0.1
1207*53ee8cc1Swenshuai.xi ///                       - 1 :    x0.2
1208*53ee8cc1Swenshuai.xi ///                       - 2 :    x0.3
1209*53ee8cc1Swenshuai.xi ///                       - 3 :    x0.4
1210*53ee8cc1Swenshuai.xi ///                       - 4 :    x0.5
1211*53ee8cc1Swenshuai.xi ///                       - 5 :    x0.6
1212*53ee8cc1Swenshuai.xi ///                       - 6 :    x0.7
1213*53ee8cc1Swenshuai.xi ///                       - 7 :    x0.8
1214*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
1215*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
1216*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE
1217*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1218*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetSurroundXK( MS_U8 mode );
1219*53ee8cc1Swenshuai.xi 
1220*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1221*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1222*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetSurroundLPFGain()
1223*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set the Surround LPF Gain.
1224*53ee8cc1Swenshuai.xi /// @image html surround.JPG "Surround block diagram"
1225*53ee8cc1Swenshuai.xi /// @param <IN>        \b mode    : LPF Gain : register SURROUND[7:6]
1226*53ee8cc1Swenshuai.xi ///                       - 0 :    0 dB
1227*53ee8cc1Swenshuai.xi ///                       - 1 :    2 dB
1228*53ee8cc1Swenshuai.xi ///                       - 2 :    4 dB
1229*53ee8cc1Swenshuai.xi ///                       - 3 :    un-support
1230*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
1231*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
1232*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE
1233*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1234*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetSurroundLPFGain( MS_U8 mode );
1235*53ee8cc1Swenshuai.xi 
1236*53ee8cc1Swenshuai.xi /////////////////////////////////////////////////////////////////////////////////
1237*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
1238*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ConvertVolumeUnit()
1239*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Convert UI Volume to Absolute Volume.
1240*53ee8cc1Swenshuai.xi ///                                                  valid value of UiVolume is between 0 and 100
1241*53ee8cc1Swenshuai.xi /// @param UiVolume    \b :    UI Volume 0 -> 62, 50 -> 12, 100 -> 7
1242*53ee8cc1Swenshuai.xi /// @param MS_U8       \b :    register value
1243*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1244*53ee8cc1Swenshuai.xi  MS_U8   MApi_AUDIO_ConvertVolumeUnit(MS_U8 UiVolume);
1245*53ee8cc1Swenshuai.xi 
1246*53ee8cc1Swenshuai.xi // void  MApi_AUDIO_SetMaxClipping( MS_U8 MaxClippingValue, MS_U16 Volume );
1247*53ee8cc1Swenshuai.xi 
1248*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1249*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1250*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetPEQCoef()
1251*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set PEQ Coefficient.
1252*53ee8cc1Swenshuai.xi /// @param <IN>        \b peq_coef
1253*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE  :
1254*53ee8cc1Swenshuai.xi /// @param <RET>       \b  NONE :
1255*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE
1256*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1257*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetPEQCoef(AUDIO_PEQ_COEF *peq_coef);
1258*53ee8cc1Swenshuai.xi 
1259*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1260*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1261*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_EnablePEQ()
1262*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to eable PEQ.
1263*53ee8cc1Swenshuai.xi /// @param <IN>        \b Enpeq
1264*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE  :
1265*53ee8cc1Swenshuai.xi /// @param <RET>       \b  NONE :
1266*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE
1267*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1268*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_EnablePEQ(MS_BOOL Enpeq);
1269*53ee8cc1Swenshuai.xi 
1270*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1271*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1272*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_EnableDcRemove()
1273*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to eable PEQ.
1274*53ee8cc1Swenshuai.xi /// @param <IN>        \b EnDcRemove
1275*53ee8cc1Swenshuai.xi /// @param <OUT>       \b True / False
1276*53ee8cc1Swenshuai.xi /// @param <RET>       \b  NONE :
1277*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE
1278*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1279*53ee8cc1Swenshuai.xi   MS_BOOL MApi_AUDIO_EnableDcRemove(MS_BOOL EnDcRemove);
1280*53ee8cc1Swenshuai.xi 
1281*53ee8cc1Swenshuai.xi //============================================================
1282*53ee8cc1Swenshuai.xi // AUDIO_DTV RELATIONAL API FUNCTION
1283*53ee8cc1Swenshuai.xi //============================================================
1284*53ee8cc1Swenshuai.xi 
1285*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1286*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
1287*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ReleaseDecodeSystem()
1288*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function will release/close decode system
1289*53ee8cc1Swenshuai.xi /// @param DecId  \b : Decoder ID to be released
1290*53ee8cc1Swenshuai.xi /// @return\b MS_BOOL  \b : set decoder system process status FALSE-> fail TRUE-> Success
1291*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1292*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_ReleaseDecodeSystem(AUDIO_DEC_ID DecId);
1293*53ee8cc1Swenshuai.xi 
1294*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1295*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
1296*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetDecodeSystem()
1297*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function will set DecId decoder as  structure p_AudioDecStatus
1298*53ee8cc1Swenshuai.xi /// @param\b DecId  \b : Decoder ID to be controled
1299*53ee8cc1Swenshuai.xi /// @param\b p_AudioDecStatus  \b : decoder status structure pointer
1300*53ee8cc1Swenshuai.xi /// @return\b MS_BOOL  \b : set decoder system process status FALSE-> fail TRUE-> Success
1301*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1302*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_SetDecodeSystem(AUDIO_DEC_ID DecId, AudioDecStatus_t * p_AudioDecStatus);
1303*53ee8cc1Swenshuai.xi 
1304*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1305*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
1306*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetDecodeSystem()
1307*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function will get DecId decoder status
1308*53ee8cc1Swenshuai.xi /// @param DecId  \b : Decoder ID to get status
1309*53ee8cc1Swenshuai.xi /// @param p_AudioDecStatus  \b : return status to p_AudioDecStatus pointer
1310*53ee8cc1Swenshuai.xi /// @return\b MS_BOOL  \b : set decoder system process status FALSE-> fail TRUE-> Success
1311*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1312*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_GetDecodeSystem(AUDIO_DEC_ID DecId, AudioDecStatus_t * p_AudioDecStatus);
1313*53ee8cc1Swenshuai.xi 
1314*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1315*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
1316*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetDecodeCmd()
1317*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function will send decode command to DecId decoder
1318*53ee8cc1Swenshuai.xi /// @param DecId  \b : Decoder ID to be controled
1319*53ee8cc1Swenshuai.xi /// @param enDecComamnd  \b : decoder command
1320*53ee8cc1Swenshuai.xi /// @return\b MS_BOOL  \b : set decoder system process status FALSE-> fail TRUE-> Success
1321*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1322*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_SetDecodeCmd(AUDIO_DEC_ID DecId, En_DVB_decCmdType enDecComamnd);
1323*53ee8cc1Swenshuai.xi 
1324*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1325*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
1326*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_OpenDecodeSystem()
1327*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function will open decode system according audio dec status
1328*53ee8cc1Swenshuai.xi /// @param p_AudioDecStatus  \b : decoder status stucture
1329*53ee8cc1Swenshuai.xi /// @return\b AUDIO_DEC_ID  \b : return available decoder ID
1330*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1331*53ee8cc1Swenshuai.xi  AUDIO_DEC_ID MApi_AUDIO_OpenDecodeSystem(AudioDecStatus_t * p_AudioDecStatus);
1332*53ee8cc1Swenshuai.xi 
1333*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1334*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
1335*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetSystem()
1336*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function will load
1337*53ee8cc1Swenshuai.xi ///                                     different audio decoder to audio system.
1338*53ee8cc1Swenshuai.xi ///
1339*53ee8cc1Swenshuai.xi ///                                     In Mstar audio system, we can support 1 or 2 decoders.
1340*53ee8cc1Swenshuai.xi ///                                     One is for main DTV audio or Multimedia audio player.
1341*53ee8cc1Swenshuai.xi ///                                     Another is for second audio decode (ex: used for Audio Description purpose)
1342*53ee8cc1Swenshuai.xi ///
1343*53ee8cc1Swenshuai.xi /// @param enDecSystem  \b : (En_DVB_decSystemType) decoder type
1344*53ee8cc1Swenshuai.xi ///                        - parameter type "MSAPI_AUD_DVB_XXXX" is decoder type for main audio decoder
1345*53ee8cc1Swenshuai.xi ///                        - parameter type "MSAPI_AUD_DVB2_XXXX" is decoder type for second audio decoder
1346*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1347*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_SetSystem(En_DVB_decSystemType enDecSystem);
1348*53ee8cc1Swenshuai.xi 
1349*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1350*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
1351*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetDecSysSupportStatus()
1352*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This function will report Audio Decoder support feature status when giving DecSystem type
1353*53ee8cc1Swenshuai.xi /// @param <IN>        \b   enDecSystem : Decoder type
1354*53ee8cc1Swenshuai.xi /// @param <RET>       \b   BOOL        : True or False
1355*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1356*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_GetDecSysSupportStatus(En_DVB_decSystemType enDecSystem);
1357*53ee8cc1Swenshuai.xi 
1358*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1359*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
1360*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetH264StreamID_Mod()
1361*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to AC3 Stream ID mod.
1362*53ee8cc1Swenshuai.xi /// @param stream_id_mod  \b : DTV stream ID
1363*53ee8cc1Swenshuai.xi ///                          - stream_id_mod = 0, video MPEG mode;
1364*53ee8cc1Swenshuai.xi ///                          - stream_id_mod = 1, video H264 mode
1365*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1366*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_SetH264StreamID_Mod(MS_U8 stream_id_mod);
1367*53ee8cc1Swenshuai.xi 
1368*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1369*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
1370*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_IsMadLock()
1371*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This function show DTV Audio stream lock status
1372*53ee8cc1Swenshuai.xi /// @return MS_BOOL    \b :       1 : lock  ; 0 : unlock
1373*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1374*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_IsMadLock(void);
1375*53ee8cc1Swenshuai.xi 
1376*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1377*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
1378*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetDecStatus()
1379*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to get the decoder's status (paly or stop)
1380*53ee8cc1Swenshuai.xi /// @return En_DVB_decCmdType \b : Decoder status (paly or stop)
1381*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1382*53ee8cc1Swenshuai.xi  En_DVB_decCmdType MApi_AUDIO_GetDecStatus ( void );
1383*53ee8cc1Swenshuai.xi 
1384*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////////////
1385*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
1386*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetCommand()
1387*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is to get  the DVB1 decode command.
1388*53ee8cc1Swenshuai.xi /// @return AU_DVB_DECCMD \b :
1389*53ee8cc1Swenshuai.xi ///                          - AU_DVB_DECCMD_STOP,        //0
1390*53ee8cc1Swenshuai.xi ///                         - AU_DVB_DECCMD_PLAY,        //1
1391*53ee8cc1Swenshuai.xi ///                         - AU_DVB_DECCMD_PLAYFILETSP, //2
1392*53ee8cc1Swenshuai.xi ///                          - AU_DVB_DECCMD_RESYNC,
1393*53ee8cc1Swenshuai.xi ///                                 ....etc
1394*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////////////
1395*53ee8cc1Swenshuai.xi  AU_DVB_DECCMD MApi_AUDIO_GetCommand(En_DVB_AudioDecoder AdoDecoderNo);
1396*53ee8cc1Swenshuai.xi 
1397*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1398*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
1399*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetCommand()
1400*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Set decoder Command for Digital Audio module
1401*53ee8cc1Swenshuai.xi /// @param enDecComamnd \b : deccoder command for DVB Audio
1402*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1403*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetCommand(En_DVB_decCmdType enDecComamnd);
1404*53ee8cc1Swenshuai.xi 
1405*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1406*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
1407*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetMAD_LOCK()
1408*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to report decoder lock information.
1409*53ee8cc1Swenshuai.xi /// @retun MS_U8      \b the decoder status
1410*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////
1411*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_GetMAD_LOCK(void);
1412*53ee8cc1Swenshuai.xi 
1413*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1414*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
1415*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetADOutputMode()
1416*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Set AD output mode
1417*53ee8cc1Swenshuai.xi /// @param out_mode    \b : out_mode:
1418*53ee8cc1Swenshuai.xi ///                       - AD_OUT_SPEAKER
1419*53ee8cc1Swenshuai.xi ///                       - AD_OUT_HP
1420*53ee8cc1Swenshuai.xi ///                       - AD_OUT_BOTH
1421*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1422*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetADOutputMode (MS_U8 out_mode);
1423*53ee8cc1Swenshuai.xi 
1424*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1425*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
1426*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetADAbsoluteVolume()
1427*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set the absolute u8Volume of AD.
1428*53ee8cc1Swenshuai.xi /// @param AbsVolume   \b : MSB 7-bit register value of 10-bit u8Volume
1429*53ee8cc1Swenshuai.xi ///                         range from 0x00 to 0x7E , gain: +12db to   -114db (-1 db per step)
1430*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1431*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetADAbsoluteVolume (MS_U8 AbsVolume);
1432*53ee8cc1Swenshuai.xi 
1433*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1434*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
1435*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ADSetMute()
1436*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set AD mute.
1437*53ee8cc1Swenshuai.xi /// @param EnMute      \b :     TRUE --Mute AD;
1438*53ee8cc1Swenshuai.xi ///                             FALSE--Unmute AD
1439*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1440*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_ADSetMute(MS_BOOL EnMute);
1441*53ee8cc1Swenshuai.xi 
1442*53ee8cc1Swenshuai.xi //============================================================
1443*53ee8cc1Swenshuai.xi // AUDIO_PVR RELATED FUNCTIONS
1444*53ee8cc1Swenshuai.xi //============================================================
1445*53ee8cc1Swenshuai.xi 
1446*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1447*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
1448*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_AUDIO_SetEncodeInit()
1449*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function is used to set Encod init
1450*53ee8cc1Swenshuai.xi /// @param BitRate \b :   Encode Output Bitrate
1451*53ee8cc1Swenshuai.xi ///                      -  AU_DVB_ENCBR_192K,    // 0
1452*53ee8cc1Swenshuai.xi ///                      -  AU_DVB_ENCBR_384K,    // 1
1453*53ee8cc1Swenshuai.xi ///                      -  AU_DVB_ENCBR_128K,    // 2
1454*53ee8cc1Swenshuai.xi ///                      -  AU_DVB_ENCBR_64K      // 3
1455*53ee8cc1Swenshuai.xi /// @param EncFrameNum \b :   Frame number per interrupt
1456*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1457*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetEncInit(AU_DVB_ENCBR BitRate, MS_U8 u8EncFrameNum);
1458*53ee8cc1Swenshuai.xi 
1459*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1460*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
1461*53ee8cc1Swenshuai.xi /// @brief \b Function   \b Name: MApi_AUDIO_SetEncCommand()
1462*53ee8cc1Swenshuai.xi /// @brief \b Function   \b Description: Set Encoder Command for Digital Audio module
1463*53ee8cc1Swenshuai.xi /// @param enEnccComamnd \b : Encoder command for DVB Audio
1464*53ee8cc1Swenshuai.xi ///                                       -   AU_DVB_ENCCMD_STOP,      //0
1465*53ee8cc1Swenshuai.xi ///                                       -   AU_DVB_ENCCMD_START      // 1
1466*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1467*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_SetEncCommand(AU_DVB_ENCCMD enEncComamnd);
1468*53ee8cc1Swenshuai.xi 
1469*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1470*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
1471*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_AUDIO_GetEncodeFrameInfo()
1472*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function is used to get the Encoded frame info
1473*53ee8cc1Swenshuai.xi /// @param input       \b EncFrameInfo:   structure to store encoded frame info
1474*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1475*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_GetEncodeFrameInfo(AU_DVB_ENC_FRAME_INFO *EncFrameInfo);
1476*53ee8cc1Swenshuai.xi 
1477*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1478*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
1479*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetEncodeDoneFlag()
1480*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function is used to get check encode done flag
1481*53ee8cc1Swenshuai.xi /// @param input       \b None
1482*53ee8cc1Swenshuai.xi /// @param output      \b BOOL  TRUE/FALSE
1483*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1484*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_GetEncodeDoneFlag(void);
1485*53ee8cc1Swenshuai.xi 
1486*53ee8cc1Swenshuai.xi //============================================================
1487*53ee8cc1Swenshuai.xi // AUDIO_ATV RELATIONAL API FUNCTION
1488*53ee8cc1Swenshuai.xi //============================================================
1489*53ee8cc1Swenshuai.xi 
1490*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1491*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1492*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SIF_SetStandard()
1493*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Set SIF standard
1494*53ee8cc1Swenshuai.xi /// @param system_type \b : standard type
1495*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1496*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SIF_SetStandard(AUDIOSTANDARD_TYPE standard_type);
1497*53ee8cc1Swenshuai.xi 
1498*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1499*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1500*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SIF_GetSoundMode()
1501*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get SIF BTSC sound mode type
1502*53ee8cc1Swenshuai.xi /// @return MS_U8      \b : Sound mode type
1503*53ee8cc1Swenshuai.xi ///                       - MS_U8 = 0x0 : Mute
1504*53ee8cc1Swenshuai.xi ///                       - bit 0 : Mono
1505*53ee8cc1Swenshuai.xi ///                       - bit 1 : Stereo
1506*53ee8cc1Swenshuai.xi ///                       - bit 2 : SAP
1507*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1508*53ee8cc1Swenshuai.xi  MS_U8   MApi_AUDIO_SIF_GetSoundMode(void);
1509*53ee8cc1Swenshuai.xi 
1510*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1511*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1512*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SIF_SetSoundMode()
1513*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Set sound mode for ATV source.
1514*53ee8cc1Swenshuai.xi /// @param u8SifSoundMode  \b : sound mode type
1515*53ee8cc1Swenshuai.xi ///                           - AU_MODE_MONO
1516*53ee8cc1Swenshuai.xi ///                           - AU_MODE_STEREO
1517*53ee8cc1Swenshuai.xi ///                           - AU_MODE_SAP
1518*53ee8cc1Swenshuai.xi ///                           - AU_MODE_LANG_A
1519*53ee8cc1Swenshuai.xi ///                           - AU_MODE_LANG_B
1520*53ee8cc1Swenshuai.xi ///                           - AU_MODE_NICAM_MONO, ...etc
1521*53ee8cc1Swenshuai.xi /// @return MS_BOOL    \b : success / fail
1522*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1523*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_SIF_SetSoundMode(MS_U8 u8SifSoundMode);
1524*53ee8cc1Swenshuai.xi 
1525*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1526*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1527*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SIF_GetAudioStatus()
1528*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get the current audio status.
1529*53ee8cc1Swenshuai.xi ///                                    It can be used for getting available sound modes and real-time audio standard monitor.
1530*53ee8cc1Swenshuai.xi /// @param eAudioStatus \b : audio status pointer
1531*53ee8cc1Swenshuai.xi /// @return MS_BOOL     \b : TRUE/FALSE
1532*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1533*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_SIF_GetAudioStatus(AUDIOSTATUS * eAudioStatus);
1534*53ee8cc1Swenshuai.xi 
1535*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1536*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1537*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SIF_StartAutoStandardDetection()
1538*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: To start automatic detection about input audio standard
1539*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1540*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SIF_StartAutoStandardDetection(void);
1541*53ee8cc1Swenshuai.xi 
1542*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1543*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1544*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SIF_GetResultOfAutoStandardDetection()
1545*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: To get result of audio standard after automatic detection called by MDrv_ASP_StartAutoStandardDetection.
1546*53ee8cc1Swenshuai.xi /// @return AUDIOSTANDARD_TYPE \b :
1547*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1548*53ee8cc1Swenshuai.xi  AUDIOSTANDARD_TYPE MApi_AUDIO_SIF_GetResultOfAutoStandardDetection(void);
1549*53ee8cc1Swenshuai.xi 
1550*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1551*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1552*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SIF_ConvertToBasicAudioStandard()
1553*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Convert the audio standard to the basic standard
1554*53ee8cc1Swenshuai.xi /// @param eStandard   \b : Please refer AUDIOSTANDARD_TYPE enum in header file
1555*53ee8cc1Swenshuai.xi /// @return AUDIOSTANDARD_TYPE \b : basic standard
1556*53ee8cc1Swenshuai.xi ///                               - E_AUDIOSTANDARD_BG
1557*53ee8cc1Swenshuai.xi ///                               - E_AUDIOSTANDARD_I
1558*53ee8cc1Swenshuai.xi ///                               - E_AUDIOSTANDARD_DK
1559*53ee8cc1Swenshuai.xi ///                               - E_AUDIOSTANDARD_L
1560*53ee8cc1Swenshuai.xi ///                               - E_AUDIOSTANDARD_M
1561*53ee8cc1Swenshuai.xi ///                               - E_AUDIOSTANDARD_NOTSTANDARD
1562*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1563*53ee8cc1Swenshuai.xi  AUDIOSTANDARD_TYPE MApi_AUDIO_SIF_ConvertToBasicAudioStandard(AUDIOSTANDARD_TYPE eStandard);
1564*53ee8cc1Swenshuai.xi 
1565*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1566*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1567*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SIF_SetThreshold()
1568*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This routine is used to set SIF threshold
1569*53ee8cc1Swenshuai.xi /// @param ThrTbl  \b : SIF thresholds Table
1570*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1571*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_212)
1572*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SIF_SetThreshold(THR_TBL_TYPE code *ThrTbl);
1573*53ee8cc1Swenshuai.xi #else
1574*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SIF_SetThreshold(THR_TBL_TYPE *ThrTbl);
1575*53ee8cc1Swenshuai.xi #endif
1576*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1577*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1578*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SIF_SetPrescale()
1579*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: SIF output level = (original level add db_value gain)
1580*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1581*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
1582*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SIF_SetPrescale(MS_U8, int);
1583*53ee8cc1Swenshuai.xi #else
1584*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SIF_SetPrescale(MS_U8, MS_S32);
1585*53ee8cc1Swenshuai.xi #endif
1586*53ee8cc1Swenshuai.xi 
1587*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1588*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1589*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SIF_IsPALType()
1590*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Check the DSP type is pal_type or not
1591*53ee8cc1Swenshuai.xi /// @return MS_BOOL    \b : TRUE/FALSE
1592*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1593*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_SIF_IsPALType(AUDIO_SIF_PAL_TYPE pal_type);
1594*53ee8cc1Swenshuai.xi 
1595*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1596*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1597*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SIF_SetPALType()
1598*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Set DSP type to pal_type
1599*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1600*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SIF_SetPALType(AUDIO_SIF_PAL_TYPE pal_type);
1601*53ee8cc1Swenshuai.xi 
1602*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1603*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1604*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SIF_SetCommand()
1605*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Set decoder Command for ATV module
1606*53ee8cc1Swenshuai.xi /// @param enDecComamnd \b : deccoder command for ATV AUDIO
1607*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1608*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SIF_SendCmd(En_AUD_SIF_CmdType enAudSifCommand, MS_U8 comm_arg1, MS_U8 comm_arg2);
1609*53ee8cc1Swenshuai.xi 
1610*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1611*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1612*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SIF_Shift()
1613*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This function is used to provide a API for application to choose what kind of VIF mdoe.
1614*53ee8cc1Swenshuai.xi ///
1615*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1616*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SIF_Shift(En_AUD_VIF_Type type);
1617*53ee8cc1Swenshuai.xi 
1618*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1619*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_TriggerSifPLL()
1620*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function is used to initialize SIF analog part .
1621*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1622*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_TriggerSifPLL(void);
1623*53ee8cc1Swenshuai.xi 
1624*53ee8cc1Swenshuai.xi //============================================================
1625*53ee8cc1Swenshuai.xi // AUDIO_FM_RADIO RELATIONAL API FUNCTION
1626*53ee8cc1Swenshuai.xi //============================================================
1627*53ee8cc1Swenshuai.xi 
1628*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1629*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1630*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_FM_RADIO_GetSoundMode()
1631*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Getting FM Radio Sound Mode
1632*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE :
1633*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U8   : return E_AUDIOMODE_MONO, E_AUDIOMODE_K_STEREO or E_AUDIOMODE_INVALID
1634*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1635*53ee8cc1Swenshuai.xi   MS_U8 MApi_AUDIO_FM_RADIO_GetSoundMode(void);
1636*53ee8cc1Swenshuai.xi 
1637*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1638*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1639*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_FM_RADIO_SetSoundMode()
1640*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Setting FM Radio Sound Mode
1641*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_U8 : u8FMRadioSoundMode
1642*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE :
1643*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1644*53ee8cc1Swenshuai.xi   void MApi_AUDIO_FM_RADIO_SetSoundMode(MS_U8 u8FMRadioSoundMode);
1645*53ee8cc1Swenshuai.xi 
1646*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1647*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1648*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_FM_RADIO_DeEmphassisOption()
1649*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: FM Radio De-emphassis Option
1650*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_BOOL : Is_Europe
1651*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE :
1652*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1653*53ee8cc1Swenshuai.xi  void MApi_AUDIO_FM_RADIO_DeEmphassisOption(MS_BOOL Is_Europe);
1654*53ee8cc1Swenshuai.xi 
1655*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1656*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1657*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_FM_RADIO_GET_DC_AMP()
1658*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: FM Radio get DC amp
1659*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE
1660*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_S8 DC amp
1661*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1662*53ee8cc1Swenshuai.xi  MS_S8 MApi_AUDIO_FM_RADIO_GET_DC_AMP(void);
1663*53ee8cc1Swenshuai.xi 
1664*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1665*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1666*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_FM_RADIO_GET_NSR()
1667*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: FM Radio get NSR
1668*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE
1669*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U8 NSR
1670*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1671*53ee8cc1Swenshuai.xi   MS_U8 MApi_AUDIO_FM_RADIO_GET_NSR(void);
1672*53ee8cc1Swenshuai.xi 
1673*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1674*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1675*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_FM_RADIO_RESET()
1676*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: FM Radio reset
1677*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE
1678*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE
1679*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1680*53ee8cc1Swenshuai.xi  void MApi_AUDIO_FM_RADIO_RESET(void);
1681*53ee8cc1Swenshuai.xi 
1682*53ee8cc1Swenshuai.xi //=============================================================
1683*53ee8cc1Swenshuai.xi // AUDIO_SPDIF RELATIONAL API FUNCTION
1684*53ee8cc1Swenshuai.xi //=============================================================
1685*53ee8cc1Swenshuai.xi 
1686*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1687*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1688*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SPDIF_HWEN()
1689*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This routine is used to enable S/PDIF output (Hardware)
1690*53ee8cc1Swenshuai.xi /// @param spdif_en    \b :    0--Disable S/PDIF out;
1691*53ee8cc1Swenshuai.xi ///                            1--Enable S/PDIF out
1692*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1693*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SPDIF_HWEN(MS_BOOL spdif_hwen);
1694*53ee8cc1Swenshuai.xi 
1695*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1696*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1697*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SPDIF_SetMute()
1698*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This routine is used to enable S/PDIF output (Hardware)
1699*53ee8cc1Swenshuai.xi /// @param mute_en     \b :    0--Disable mute;
1700*53ee8cc1Swenshuai.xi ///                            1--Enable mute
1701*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1702*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SPDIF_SetMute(MS_BOOL mute_en);
1703*53ee8cc1Swenshuai.xi 
1704*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1705*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1706*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SPDIF_SetMode()
1707*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This routine is used to set S/PDIF mode.
1708*53ee8cc1Swenshuai.xi /// @param spdif_mode  \b : PCM or Non-PCM mode
1709*53ee8cc1Swenshuai.xi ///                - spdif_mode = 0x0 : SPDIF enable, PCM mode
1710*53ee8cc1Swenshuai.xi ///                - spdif_mode = 0x1 : SPDIF off
1711*53ee8cc1Swenshuai.xi ///                - spdif_mode = 0x2 : SPDIF enable, nonPCM mode
1712*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1713*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SPDIF_SetMode(MS_U8 spdif_mode);
1714*53ee8cc1Swenshuai.xi 
1715*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1716*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1717*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SPDIF_GetMode()
1718*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This routine is used to get S/PDIF mode.
1719*53ee8cc1Swenshuai.xi /// @return MS_U8      \b :  register SPDIF_CTRL value
1720*53ee8cc1Swenshuai.xi ///                       - 0x0 : SPDIF enable, PCM mode
1721*53ee8cc1Swenshuai.xi ///                       - 0x1 : SPDIF OFF
1722*53ee8cc1Swenshuai.xi ///                       - 0x2 : SPDIF enable, non-PCM mode
1723*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1724*53ee8cc1Swenshuai.xi   MS_U8   MApi_AUDIO_SPDIF_GetMode(void);
1725*53ee8cc1Swenshuai.xi 
1726*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1727*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1728*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SPDIF_SetSCMS()
1729*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This routine is used to set SPDIF SCMS.
1730*53ee8cc1Swenshuai.xi /// @param C_bit_en  \b : copy right control bit
1731*53ee8cc1Swenshuai.xi /// @param L_bit_en  \b : generation bit
1732*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1733*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SPDIF_SetSCMS(MS_U8 C_bit_en, MS_U8 L_bit_en);
1734*53ee8cc1Swenshuai.xi 
1735*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1736*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1737*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SPDIF_GetSCMS()
1738*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This routine is used to get SPDIF SCMS.
1739*53ee8cc1Swenshuai.xi /// @return MS_U8      \b :  SCMS[0] = C bit status, SCMS[1] = L bit status
1740*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1741*53ee8cc1Swenshuai.xi  MS_U8   MApi_AUDIO_SPDIF_GetSCMS(void);
1742*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SPDIF_SetOutputType(AUDIO_SPDIF_OUTPUT_TYPE eType); // New API for S/PDIF output auto/PCM mode switching
1743*53ee8cc1Swenshuai.xi 
1744*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1745*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1746*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_Audio_SPDIF_Monitor()
1747*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:
1748*53ee8cc1Swenshuai.xi /// @param pau_info    \b :  AUDIO INIT STRUCTURE
1749*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1750*53ee8cc1Swenshuai.xi void    MApi_Audio_SPDIF_Monitor(void);
1751*53ee8cc1Swenshuai.xi  void    MApi_Audio_Monitor_SPDIF_NONPCM_SmpRate(void);
1752*53ee8cc1Swenshuai.xi 
1753*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1754*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1755*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SPDIF_ChannelStatus_CTRL()
1756*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:
1757*53ee8cc1Swenshuai.xi /// @param pau_info    \b :  AUDIO INIT STRUCTURE
1758*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1759*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_SPDIF_ChannelStatus_CTRL(AUDIO_SPDIF_CS_TYPE cs_mode, AUDIO_SPDIF_CS_TYPE_STATUS status);
1760*53ee8cc1Swenshuai.xi 
1761*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1762*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1763*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: HAL_AUDIO_Digital_Out_SetChannelStatus()
1764*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set SPDIF/HDMI/ARC channel status.
1765*53ee8cc1Swenshuai.xi /// @param <IN>        \b   eType   :
1766*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
1767*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
1768*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1769*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_DigitalOut_SetChannelStatus(DIGITAL_OUTPUT_TYPE ePath, Digital_Out_Channel_Status_t *stChannelStatus);
1770*53ee8cc1Swenshuai.xi 
1771*53ee8cc1Swenshuai.xi 
1772*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1773*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1774*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_DigitalOut_SetDeviceCapability()
1775*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set output device capability.
1776*53ee8cc1Swenshuai.xi /// @param <IN>        \b eoutType: output type (ARC_OUTPUT or HDMI_OUTPUT)
1777*53ee8cc1Swenshuai.xi /// @param <IN>        \b ecodecType: kind of codec
1778*53ee8cc1Swenshuai.xi /// @param <IN>        \b *p_codecCapability: codec support capability structure
1779*53ee8cc1Swenshuai.xi /// @param <RET>       \b bRet: return api setting success or fail
1780*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1781*53ee8cc1Swenshuai.xi MS_BOOL MApi_AUDIO_DigitalOut_SetDeviceCapability(DIGITAL_OUTPUT_TYPE eoutType, AUDIO_FORMAT_CODE ecodecType, Digital_Out_Device_Capability_t *p_codecCapability);
1782*53ee8cc1Swenshuai.xi 
1783*53ee8cc1Swenshuai.xi //=============================================================
1784*53ee8cc1Swenshuai.xi // AUDIO_HDMI RELATIONAL API FUNCTION
1785*53ee8cc1Swenshuai.xi //=============================================================
1786*53ee8cc1Swenshuai.xi 
1787*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1788*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1789*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_HDMI_Tx_SetMute()
1790*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This routine is used to enable HDMI Tx output (Software)
1791*53ee8cc1Swenshuai.xi /// @param mute_en     \b :    0--Disable mute;
1792*53ee8cc1Swenshuai.xi ///                            1--Enable mute
1793*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1794*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_HDMI_Tx_SetMute(MS_BOOL mute_en);
1795*53ee8cc1Swenshuai.xi 
1796*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1797*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1798*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_HDMI_Tx_GetStatus()
1799*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This routine is used to get HDMI Tx status
1800*53ee8cc1Swenshuai.xi /// @param onOff     \b : HDMI tx function is availible in this chip ?
1801*53ee8cc1Swenshuai.xi /// @param hdmi_SmpFreq \b : Audio current sample freq for tx
1802*53ee8cc1Swenshuai.xi /// @param outType \b   : PCM mode or nonPCM mode
1803*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1804*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_HDMI_Tx_GetStatus(MS_BOOL *onOff, AUDIO_FS_TYPE *hdmi_SmpFreq, HDMI_TX_OUTPUT_TYPE *outType );
1805*53ee8cc1Swenshuai.xi 
1806*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1807*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1808*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_HDMI_Monitor()
1809*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This function report HDMI non-PCM or PCM format (register STATUS_INPUT)
1810*53ee8cc1Swenshuai.xi /// @return MS_U8      \b :
1811*53ee8cc1Swenshuai.xi ///                     - non-PCM --> register STATUS_INPUT[7:6]= 0x1;
1812*53ee8cc1Swenshuai.xi ///                     - PCM   --> register STATUS_INPUT[7:6]= 0x0
1813*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1814*53ee8cc1Swenshuai.xi   MS_U8   MApi_AUDIO_HDMI_Monitor(void);
1815*53ee8cc1Swenshuai.xi 
1816*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1817*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1818*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_HDMI_GetNonpcmFlag()
1819*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This function report HDMI non-PCM or PCM format (register STATUS_INPUT)
1820*53ee8cc1Swenshuai.xi /// @return MS_BOOL    \b :
1821*53ee8cc1Swenshuai.xi ///                     - TRUE : non-PCM --> register STATUS_INPUT[7:6]= 0x1 ;
1822*53ee8cc1Swenshuai.xi ///                     - FALSE : PCM     --> register STATUS_INPUT[7:6]= 0x0
1823*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1824*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_HDMI_GetNonpcmFlag(void);
1825*53ee8cc1Swenshuai.xi 
1826*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1827*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1828*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_HDMI_SetNonpcm()
1829*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This function setting HDMI non-PCM or PCM relational register
1830*53ee8cc1Swenshuai.xi /// @param nonPCM_en   \b :    1: nonPCM; 0: PCM
1831*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1832*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_HDMI_SetNonpcm(MS_U8 nonPCM_en);
1833*53ee8cc1Swenshuai.xi 
1834*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1835*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1836*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_HDMI_RX_SetNonpcm()
1837*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This function setting HDMI non-PCM or PCM relational register
1838*53ee8cc1Swenshuai.xi /// @param nonPCM_en   \b :    1: nonPCM; 0: PCM
1839*53ee8cc1Swenshuai.xi /// @return AUDIO_HDMI_RX_TYPE \b : Return HDMI RX Type
1840*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1841*53ee8cc1Swenshuai.xi  AUDIO_HDMI_RX_TYPE MApi_AUDIO_HDMI_RX_SetNonpcm(MS_U8 nonPCM_en);
1842*53ee8cc1Swenshuai.xi 
1843*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1844*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1845*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_HDMI_RX_SetNonpcm()
1846*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This function setting HDMI non-PCM or PCM relational register
1847*53ee8cc1Swenshuai.xi /// @param nonPCM_en   \b :    1: nonPCM; 0: PCM
1848*53ee8cc1Swenshuai.xi /// @return AUDIO_HDMI_RX_TYPE \b : Return HDMI RX Type
1849*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1850*53ee8cc1Swenshuai.xi  AUDIO_HDMI_RX_TYPE MApi_AUDIO_HDMI_RX_GetNonPCM(void);
1851*53ee8cc1Swenshuai.xi 
1852*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1853*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1854*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_DTV_HDMI_CFG()
1855*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Set DVB/HDMI AC3 path configure
1856*53ee8cc1Swenshuai.xi /// @param ctrl    \b : 0: DVB2_AD path;
1857*53ee8cc1Swenshuai.xi ///                     1: HDMI path
1858*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1859*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_DTV_HDMI_CFG(MS_U8 ctrl);
1860*53ee8cc1Swenshuai.xi 
1861*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1862*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1863*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_HDMI_GetSynthFreq()
1864*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Audio HDMI CTS-N synthesizer input signal detect.
1865*53ee8cc1Swenshuai.xi /// @return MS_U16     \b : return freq. If no signal, return 0
1866*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1867*53ee8cc1Swenshuai.xi  MS_U16  MApi_AUDIO_HDMI_GetSynthFreq(void);
1868*53ee8cc1Swenshuai.xi 
1869*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1870*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1871*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_HDMI_SetDownSample()
1872*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  set HDMI downsample rate
1873*53ee8cc1Swenshuai.xi /// @param ratio       \b : donwsample ratio
1874*53ee8cc1Swenshuai.xi ///                       - 00: Normal (from 1x to 1x).
1875*53ee8cc1Swenshuai.xi ///                       - 01: Down sample from 2x to 1x.
1876*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1877*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_HDMI_SetDownSample(MS_U8 ratio);
1878*53ee8cc1Swenshuai.xi 
1879*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1880*53ee8cc1Swenshuai.xi /// @ingroup Audio_ATV_SPDIF_HDMI
1881*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_HDMI_SetOutputType()
1882*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  To set HDMI output type independently
1883*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1884*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_HDMI_TX_SetMode(HDMI_TX_OUTPUT_TYPE outType);
1885*53ee8cc1Swenshuai.xi 
1886*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1887*53ee8cc1Swenshuai.xi /// @ingroup Audio_System
1888*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_HDMI_RX_GetHdmiInAudioStatus()
1889*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Return audio status.
1890*53ee8cc1Swenshuai.xi /// @return MS_U16     \b : return structure which include pcm, non pcm, sampling rate.
1891*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1892*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_HDMI_RX_GetHdmiInAudioStatus( ST_HDMI_AUDIO_STATUS *p_hdmiAudioSts);
1893*53ee8cc1Swenshuai.xi 
1894*53ee8cc1Swenshuai.xi //=============================================================
1895*53ee8cc1Swenshuai.xi // AUDIO_ADVANCE_SOUND RELATIONAL API FUNCTION
1896*53ee8cc1Swenshuai.xi //=============================================================
1897*53ee8cc1Swenshuai.xi 
1898*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1899*53ee8cc1Swenshuai.xi /// @ingroup Audio_ADVANCED_SOUNDEFFECT
1900*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ADVSOUND_ProcessEnable
1901*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to enable process of advanced sound effect.
1902*53ee8cc1Swenshuai.xi /// @param <IN>        \b ADVSND_TYPE type
1903*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE  :
1904*53ee8cc1Swenshuai.xi /// @param <RET>       \b  NONE :
1905*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE
1906*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1907*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_ADVSOUND_ProcessEnable(ADVSND_TYPE type);
1908*53ee8cc1Swenshuai.xi 
1909*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1910*53ee8cc1Swenshuai.xi /// @ingroup Audio_ADVANCED_SOUNDEFFECT
1911*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ADVSOUND_SubProcessEnable(ADVFUNC proc, BOOL enable)
1912*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to enable subprocess of advanced sound effect.
1913*53ee8cc1Swenshuai.xi /// @param <IN>        \b proc, enable
1914*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE  :
1915*53ee8cc1Swenshuai.xi /// @param <RET>       \b  NONE :
1916*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE
1917*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1918*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_ADVSOUND_SubProcessEnable(ADVFUNC proc, MS_BOOL enable);
1919*53ee8cc1Swenshuai.xi 
1920*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1921*53ee8cc1Swenshuai.xi /// @ingroup Audio_ADVANCED_SOUNDEFFECT
1922*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ADVSOUND_SetParam(ADVSND_PARAM param, U16 value1, U16 value2)
1923*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set paramters advanced sound effect.
1924*53ee8cc1Swenshuai.xi /// @param <IN>        \b param, value1, value2
1925*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE  :
1926*53ee8cc1Swenshuai.xi /// @param <RET>       \b  NONE :
1927*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE
1928*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1929*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_ADVSOUND_SetParam(ADVSND_PARAM param, MS_U16 u16value1, MS_U16 u16value2);
1930*53ee8cc1Swenshuai.xi 
1931*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1932*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
1933*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ADVSOUND_SetParam(ADVSND_PARAM param, U32 value1, U16 value2)
1934*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set paramters advanced sound effect.
1935*53ee8cc1Swenshuai.xi /// @param <IN>        \b param, u32value1, u16value2
1936*53ee8cc1Swenshuai.xi ///                              \b Parameter u32value1: range 0~0x7FFFFF
1937*53ee8cc1Swenshuai.xi ///                              \b Parameter u16value2: 0/1,
1938*53ee8cc1Swenshuai.xi ///                              - 0 : if u32value1 is u16, none fix point 24 bit parameter
1939*53ee8cc1Swenshuai.xi ///                              - 1 : if u32value1 is u32, fix point 24 bit parameter
1940*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE  :
1941*53ee8cc1Swenshuai.xi /// @return <OUT>       \b FALSE : Setting Fail
1942*53ee8cc1Swenshuai.xi ///                               \b TRUE  : Setting OK
1943*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE
1944*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1945*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_ADVSND_SetParam(ADVSND_PARAM param, MS_U32 u32value1, MS_U16 u16value2);
1946*53ee8cc1Swenshuai.xi 
1947*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1948*53ee8cc1Swenshuai.xi /// @ingroup Audio_ADVANCED_SOUNDEFFECT
1949*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ADVSOUND_GetInfo()
1950*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used for Get ADV Sound info
1951*53ee8cc1Swenshuai.xi /// @return MS_BOOL     \b : True / False
1952*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1953*53ee8cc1Swenshuai.xi  MS_U32  MApi_AUDIO_ADVSOUND_GetInfo( AdvSound_GET_Type Type);
1954*53ee8cc1Swenshuai.xi 
1955*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1956*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
1957*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_DBXTV_SetMode(DBXTV_TotSonMode TotSonMode, DBXTV_TotVolMode TotVolMode, DBXTV_TotSurMode TotSurMode)
1958*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set dbx TV mode
1959*53ee8cc1Swenshuai.xi /// @param <IN>        \b param, TotSonMode, TotVolMode, TotSurMode
1960*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
1961*53ee8cc1Swenshuai.xi /// @param <RET>       \b  NONE    :
1962*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE
1963*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1964*53ee8cc1Swenshuai.xi void MApi_DBXTV_SetMode(EN_DBXTV_TotSonMode totsonmode, EN_DBXTV_TotVolMode totvolmode, EN_DBXTV_TotSurMode totsurmode,MS_U32 enable);
1965*53ee8cc1Swenshuai.xi 
1966*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1967*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
1968*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SeInit()
1969*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is the initialization for Audio sound effect module.
1970*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1971*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_SeInit(void);
1972*53ee8cc1Swenshuai.xi 
1973*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1974*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
1975*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetAdvSndSys()
1976*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Check Advance sound mod and reload code
1977*53ee8cc1Swenshuai.xi /// @param u8AdvSurrMod \b : Audio Advance Sound system mod
1978*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1979*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500) || defined(UFO_PUBLIC_HEADER_700)
1980*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetAdvSndSys(En_DVB_advsndType u8AdvSurrMod);
1981*53ee8cc1Swenshuai.xi #else
1982*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetAdvSndSys(MS_U8 u8AdvSurrMod);
1983*53ee8cc1Swenshuai.xi #endif
1984*53ee8cc1Swenshuai.xi 
1985*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1986*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
1987*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_VDS()
1988*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Dolby Virtual Surround
1989*53ee8cc1Swenshuai.xi /// @param u8enVDS     \b :   1: enable;  0: disable
1990*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1991*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_SetVDS(MS_U8 u8enVDS);
1992*53ee8cc1Swenshuai.xi 
1993*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1994*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
1995*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetVSPK()
1996*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Dolby Virtual Speaker
1997*53ee8cc1Swenshuai.xi /// @param u8enVSPK    \b :   1: enable;  0: disable
1998*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1999*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_SetVSPK(MS_U8 u8enVSPK);
2000*53ee8cc1Swenshuai.xi 
2001*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2002*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
2003*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetSRS()
2004*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: SRS TruSurr
2005*53ee8cc1Swenshuai.xi /// @param u8enSRS     \b :   1: enable;  0: disable
2006*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2007*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetSRS(MS_U8 u8enSRS);
2008*53ee8cc1Swenshuai.xi 
2009*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2010*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
2011*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetBBE()
2012*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: BBE Surround
2013*53ee8cc1Swenshuai.xi /// @param u8enBBE     \b :   1: enable;  0: disable
2014*53ee8cc1Swenshuai.xi /// @param u8BBEMode   \b :
2015*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2016*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_SetBBE(MS_U8 u8enBBE,MS_U8 u8BBEMode);
2017*53ee8cc1Swenshuai.xi 
2018*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2019*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
2020*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_VSPK_WMod()
2021*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Dolby Virtual Speaker Wide Mod
2022*53ee8cc1Swenshuai.xi /// @param u8VSPK_WMode \b : 0: reference mod; 1: wide mod
2023*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2024*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_VSPK_WMod(MS_U8 u8VSPK_WMode);
2025*53ee8cc1Swenshuai.xi 
2026*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2027*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
2028*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_VSPK_SMod()
2029*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Dolby Virtual Speaker Surround Mod
2030*53ee8cc1Swenshuai.xi /// @param u8VSPK_SMode \b : 0: movie mod; 1: music mod
2031*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2032*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_VSPK_SMod(MS_U8 u8VSPK_SMode);
2033*53ee8cc1Swenshuai.xi 
2034*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2035*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
2036*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SRS_DC()
2037*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: SRS Dialog Clarity
2038*53ee8cc1Swenshuai.xi /// @param u8SRSenDC   \b :   1: enable;  0: disable
2039*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2040*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_SRS_DC(MS_U8 u8SRSenDC);
2041*53ee8cc1Swenshuai.xi 
2042*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2043*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
2044*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SRS_TruBass()
2045*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  SRS TruBass
2046*53ee8cc1Swenshuai.xi /// @param u8SRSenTruBass \b :   1: enable;  0: disable
2047*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2048*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_SRS_TruBass(MS_U8 u8SRSenTruBass);
2049*53ee8cc1Swenshuai.xi 
2050*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2051*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
2052*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_SOUND_SRS_SetTsxtPara()
2053*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function is used to set paramters of SRS-TSXT
2054*53ee8cc1Swenshuai.xi /// @param u8mode      \b : parameter mode
2055*53ee8cc1Swenshuai.xi /// @param u8value     \b : parameter value
2056*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2057*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SRS_SetTsxtPara(MS_U8 u8mode, MS_U8 u8value);
2058*53ee8cc1Swenshuai.xi 
2059*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2060*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
2061*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetSRSTSHD()
2062*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: SRS TruSurround HD
2063*53ee8cc1Swenshuai.xi /// @param u8enSRS     \b :   1: enable;  0: disable
2064*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2065*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetSRSTSHD(MS_U8 u8enTSHD);
2066*53ee8cc1Swenshuai.xi 
2067*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2068*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2069*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: Mapi_SOUND_TSHD_TruBass()
2070*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  TSHD TruBass
2071*53ee8cc1Swenshuai.xi /// @param u8SRSenTruBass \b :   1: enable;  0: disable
2072*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2073*53ee8cc1Swenshuai.xi   void    Mapi_SOUND_TSHD_TruBass(MS_U8 u8TSHDenTruBass);
2074*53ee8cc1Swenshuai.xi 
2075*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2076*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
2077*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_TSHD_Definition()
2078*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function is used to enable/disable SRS-HD Definition
2079*53ee8cc1Swenshuai.xi /// @param u8TSHDenDefinition \b :  1: enable, 0: disable
2080*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2081*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_TSHD_Definition(MS_U8 u8TSHDenDefinition);
2082*53ee8cc1Swenshuai.xi 
2083*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2084*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2085*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: Mapi_SOUND_TSHD_Definition()
2086*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function is used to enable/disable SRS-HD Definition
2087*53ee8cc1Swenshuai.xi /// @param u8TSHDenDefinition \b :  1: enable, 0: disable
2088*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2089*53ee8cc1Swenshuai.xi   void    Mapi_SOUND_TSHD_Definition(MS_U8 u8TSHDenDefinition);
2090*53ee8cc1Swenshuai.xi 
2091*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2092*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
2093*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_SOUND_SRS_SetTshdPara()
2094*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This function is used to set paramters of SRS-TSHD
2095*53ee8cc1Swenshuai.xi /// @param u8mode      \b : parameter mode
2096*53ee8cc1Swenshuai.xi /// @param u8value     \b : parameter value
2097*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2098*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_SRS_SetTshdPara(MS_U8 u8mode, MS_U8 u8value);
2099*53ee8cc1Swenshuai.xi 
2100*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2101*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
2102*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_COPY_Parameter()
2103*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Copy parameter from APP level
2104*53ee8cc1Swenshuai.xi /// @param u8enVSPK    \b :
2105*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2106*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_COPY_Parameter(ADVSND_PARAM type, void* Parameter_ptr,MS_U32 size);
2107*53ee8cc1Swenshuai.xi 
2108*53ee8cc1Swenshuai.xi //=============================================================
2109*53ee8cc1Swenshuai.xi // AUDIO_KTV RELATIONAL API FUNCTION
2110*53ee8cc1Swenshuai.xi //=============================================================
2111*53ee8cc1Swenshuai.xi 
2112*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2113*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
2114*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetKTVInfo()
2115*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Set KTV parameter
2116*53ee8cc1Swenshuai.xi /// @param modelType   \b : KTV model type
2117*53ee8cc1Swenshuai.xi /// @param infoType    \b : KTV infomation type
2118*53ee8cc1Swenshuai.xi /// @param param1      \b :
2119*53ee8cc1Swenshuai.xi /// @param param2      \b :
2120*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2121*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_SetKTVInfo (AUDIO_KTV_MODEL modelType, AUDIO_KTV_PARAMTYPE paramType, MS_U32 param1, MS_U32 param2);
2122*53ee8cc1Swenshuai.xi 
2123*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2124*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
2125*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetKTVInfo()
2126*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get KTV parameter
2127*53ee8cc1Swenshuai.xi /// @param modelType   \b : KTV model type
2128*53ee8cc1Swenshuai.xi /// @param infoType    \b : KTV infomation type
2129*53ee8cc1Swenshuai.xi /// @return MS_U32     \b : return KTV value
2130*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2131*53ee8cc1Swenshuai.xi  MS_U32  MApi_AUDIO_GetKTVInfo (AUDIO_KTV_MODEL modelType, AUDIO_KTV_INFOTYPE infoType);
2132*53ee8cc1Swenshuai.xi 
2133*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2134*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
2135*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetMixModeVolume()
2136*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set the absolute u8Volume of mix mode.
2137*53ee8cc1Swenshuai.xi /// @param eSourceType \b : for audio source
2138*53ee8cc1Swenshuai.xi /// @param VolType     \b : for audio vol type
2139*53ee8cc1Swenshuai.xi /// @param u8Vol1      \b : MSB 7-bit register value of 10-bit u8Volume
2140*53ee8cc1Swenshuai.xi ///                         range from 0x00 to 0x7E , gain: +12db to   -114db (-1 db per step)
2141*53ee8cc1Swenshuai.xi /// @param u8Vol2      \b : LSB 3-bit register value of 10-bit u8Volume
2142*53ee8cc1Swenshuai.xi ///                         range from 0x00 to 0x07 , gain:  -0db to -0.875db (-0.125 db per step)
2143*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2144*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetMixModeVolume(AUDIO_SOURCE_INFO_TYPE eSourceType, AUDIO_MIX_VOL_TYPE VolType, MS_U8 u8Vol1, MS_U8 u8Vol2);
2145*53ee8cc1Swenshuai.xi 
2146*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2147*53ee8cc1Swenshuai.xi /// @ingroup Audio_BASIC_SOUNDEFFECT
2148*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetMixModeMute()
2149*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to set audio mix mode mute
2150*53ee8cc1Swenshuai.xi /// @param eSourceType \b : for audio source
2151*53ee8cc1Swenshuai.xi /// @param VolType     \b : for audio vol type
2152*53ee8cc1Swenshuai.xi /// @param EnMute      \b : TRUE --Mute;
2153*53ee8cc1Swenshuai.xi ///                         FALSE--Unmute
2154*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2155*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetMixModeMute(AUDIO_SOURCE_INFO_TYPE eSourceType, AUDIO_MIX_VOL_TYPE VolType, MS_BOOL EnMute);
2156*53ee8cc1Swenshuai.xi 
2157*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2158*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2159*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_PlayMenuSound()
2160*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to Play Menu Sound.
2161*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2162*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_PlayMenuSound(void);
2163*53ee8cc1Swenshuai.xi 
2164*53ee8cc1Swenshuai.xi //=============================================================
2165*53ee8cc1Swenshuai.xi // AUDIO_OTHERS FUNCTION
2166*53ee8cc1Swenshuai.xi //=============================================================
2167*53ee8cc1Swenshuai.xi //Cathy0511 void MApi_AUDIO_SetAudioSource(AUDIOSOURCE_TYPE eSource);
2168*53ee8cc1Swenshuai.xi //Certification
2169*53ee8cc1Swenshuai.xi 
2170*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2171*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2172*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetCertMode()
2173*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:
2174*53ee8cc1Swenshuai.xi /// @param CertType    \b :
2175*53ee8cc1Swenshuai.xi /// @param enable      \b :
2176*53ee8cc1Swenshuai.xi ///
2177*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2178*53ee8cc1Swenshuai.xi   MS_BOOL MApi_AUDIO_SetCertMode( Audio_CertMode CertType,Audio_CertEnable  enable);
2179*53ee8cc1Swenshuai.xi 
2180*53ee8cc1Swenshuai.xi //=============================================================
2181*53ee8cc1Swenshuai.xi // AUDIO_MM RELATIONAL API FUNCTION
2182*53ee8cc1Swenshuai.xi //=============================================================
2183*53ee8cc1Swenshuai.xi // Each Decoder functions
2184*53ee8cc1Swenshuai.xi // Set Info
2185*53ee8cc1Swenshuai.xi 
2186*53ee8cc1Swenshuai.xi //******************************************************************************
2187*53ee8cc1Swenshuai.xi /// @ingroup Audio_Decoder
2188*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetCommAudioInfo()
2189*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used for adjust Common Audio decoder parameters
2190*53ee8cc1Swenshuai.xi /// @return MS_BOOL     \b : True / False
2191*53ee8cc1Swenshuai.xi //******************************************************************************
2192*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_SetCommAudioInfo( Audio_COMM_infoType infoType, MS_VIRT param1, MS_VIRT param2 );
2193*53ee8cc1Swenshuai.xi //******************************************************************************
2194*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2195*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetMpegInfo()
2196*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used for adjust MPEG Audio decoder parameters
2197*53ee8cc1Swenshuai.xi /// @return MS_BOOL     \b : True / False
2198*53ee8cc1Swenshuai.xi //******************************************************************************
2199*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_SetMpegInfo( Audio_MPEG_infoType infoType, MS_VIRT param1, MS_VIRT param2 );
2200*53ee8cc1Swenshuai.xi  //******************************************************************************
2201*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2202*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetAC3Info()
2203*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used for adjust AC3 Audio decoder parameters
2204*53ee8cc1Swenshuai.xi /// @return MS_BOOL     \b : True / False
2205*53ee8cc1Swenshuai.xi //******************************************************************************
2206*53ee8cc1Swenshuai.xi MS_BOOL MApi_AUDIO_SetAC3Info( Audio_AC3_infoType infoType, MS_VIRT param1, MS_VIRT param2 );
2207*53ee8cc1Swenshuai.xi 
2208*53ee8cc1Swenshuai.xi //******************************************************************************
2209*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2210*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetAC3PInfo()
2211*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used for adjust AC3+ Audio decoder parameters
2212*53ee8cc1Swenshuai.xi /// @return MS_BOOL     \b : True / False
2213*53ee8cc1Swenshuai.xi //******************************************************************************
2214*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_SetAC3PInfo( Audio_AC3P_infoType infoType, MS_VIRT param1, MS_VIRT param2 );
2215*53ee8cc1Swenshuai.xi  //******************************************************************************
2216*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2217*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetAACInfo()
2218*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used for adjust AAC Audio decoder parameters
2219*53ee8cc1Swenshuai.xi /// @return MS_BOOL     \b : True / False
2220*53ee8cc1Swenshuai.xi //******************************************************************************
2221*53ee8cc1Swenshuai.xi MS_BOOL MApi_AUDIO_SetAACInfo( Audio_AAC_infoType infoType, MS_VIRT param1, MS_VIRT param2 );
2222*53ee8cc1Swenshuai.xi //******************************************************************************
2223*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2224*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetWmaInfo()
2225*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used for adjust WMA Audio decoder parameters
2226*53ee8cc1Swenshuai.xi /// @return MS_BOOL     \b : True / False
2227*53ee8cc1Swenshuai.xi //******************************************************************************
2228*53ee8cc1Swenshuai.xi MS_BOOL MApi_AUDIO_SetWmaInfo( Audio_WMA_infoType infoType, MS_VIRT param1, MS_VIRT param2 );
2229*53ee8cc1Swenshuai.xi //******************************************************************************
2230*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2231*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetDTSCommonCtrl()
2232*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used for adjust DTS Audio decoder control
2233*53ee8cc1Swenshuai.xi /// @return MS_BOOL     \b : True / False
2234*53ee8cc1Swenshuai.xi //******************************************************************************
2235*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_SetDTSCommonCtrl( Audio_DTS_infoType infoType, Audio_DTS_CtrlType ctrl_type );
2236*53ee8cc1Swenshuai.xi 
2237*53ee8cc1Swenshuai.xi //******************************************************************************
2238*53ee8cc1Swenshuai.xi /// @ingroup Audio_Decoder
2239*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetCommAudioInfo()
2240*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine will return the 64bit Common info according to info type
2241*53ee8cc1Swenshuai.xi /// @return long long     \b : 64bit info
2242*53ee8cc1Swenshuai.xi //******************************************************************************
2243*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
2244*53ee8cc1Swenshuai.xi  long long MApi_AUDIO_GetCommAudioInfo( Audio_COMM_infoType infoType );
2245*53ee8cc1Swenshuai.xi #else
2246*53ee8cc1Swenshuai.xi  MS_U64 MApi_AUDIO_GetCommAudioInfo( Audio_COMM_infoType infoType );
2247*53ee8cc1Swenshuai.xi #endif
2248*53ee8cc1Swenshuai.xi 
2249*53ee8cc1Swenshuai.xi //******************************************************************************
2250*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2251*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetMpegInfo()
2252*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine will return the 32bit mpeg info according to info type
2253*53ee8cc1Swenshuai.xi /// @return MS_U32     \b : 32bit info
2254*53ee8cc1Swenshuai.xi //******************************************************************************
2255*53ee8cc1Swenshuai.xi  MS_U32  MApi_AUDIO_GetMpegInfo( Audio_MPEG_infoType infoType );
2256*53ee8cc1Swenshuai.xi 
2257*53ee8cc1Swenshuai.xi //******************************************************************************
2258*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2259*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetAC3Info()
2260*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine will return the 32bit ac3 info according to info type
2261*53ee8cc1Swenshuai.xi /// @return MS_U32     \b : 32bit info
2262*53ee8cc1Swenshuai.xi //******************************************************************************
2263*53ee8cc1Swenshuai.xi  MS_U32  MApi_AUDIO_GetAC3Info( Audio_AC3_infoType infoType );
2264*53ee8cc1Swenshuai.xi 
2265*53ee8cc1Swenshuai.xi //******************************************************************************
2266*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2267*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetAC3PInfo()
2268*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine will return the 32bit ac3+ info according to info type
2269*53ee8cc1Swenshuai.xi /// @return MS_U32     \b : 32bit info
2270*53ee8cc1Swenshuai.xi //******************************************************************************
2271*53ee8cc1Swenshuai.xi  MS_U32  MApi_AUDIO_GetAC3PInfo( Audio_AC3P_infoType infoType );
2272*53ee8cc1Swenshuai.xi 
2273*53ee8cc1Swenshuai.xi //******************************************************************************
2274*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2275*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetAACInfo()
2276*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine will return the 32bit AAC info according to info type
2277*53ee8cc1Swenshuai.xi /// @return MS_U32     \b : 32bit info
2278*53ee8cc1Swenshuai.xi //******************************************************************************
2279*53ee8cc1Swenshuai.xi  MS_U32  MApi_AUDIO_GetAACInfo( Audio_AAC_infoType infoType );
2280*53ee8cc1Swenshuai.xi 
2281*53ee8cc1Swenshuai.xi //******************************************************************************
2282*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2283*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetWmaInfo()
2284*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine will return the 32bit wma info according to info type
2285*53ee8cc1Swenshuai.xi /// @return MS_U32     \b : 32bit info
2286*53ee8cc1Swenshuai.xi //******************************************************************************
2287*53ee8cc1Swenshuai.xi  MS_U32  MApi_AUDIO_GetWmaInfo( Audio_WMA_infoType infoType );
2288*53ee8cc1Swenshuai.xi 
2289*53ee8cc1Swenshuai.xi //******************************************************************************
2290*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2291*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetDTSInfo()
2292*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine will return the 32bit DTS info according to info type
2293*53ee8cc1Swenshuai.xi /// @return MS_U32     \b : 32bit info
2294*53ee8cc1Swenshuai.xi //******************************************************************************
2295*53ee8cc1Swenshuai.xi   MS_U32  MApi_AUDIO_GetDTSInfo( Audio_DTS_infoType infoType );
2296*53ee8cc1Swenshuai.xi 
2297*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2298*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2299*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_XPCM_Param()
2300*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine configures necessary parameters when playing XPCM data
2301*53ee8cc1Swenshuai.xi /// @param audioType      \b :    1--lpcm;
2302*53ee8cc1Swenshuai.xi ///                               2--MS-ADPCM;
2303*53ee8cc1Swenshuai.xi ///                               17--IMA-ADPCM
2304*53ee8cc1Swenshuai.xi /// @param channels       \b :    0-- mono;
2305*53ee8cc1Swenshuai.xi ///                               1-- stereo
2306*53ee8cc1Swenshuai.xi /// @param sampleRate     \b :    8, 11.025, 16, 22.05, 44.1 and 48 (KHz)
2307*53ee8cc1Swenshuai.xi /// @param bitsPerSample  \b :    8--8 bits;
2308*53ee8cc1Swenshuai.xi ///                               16--16 bits
2309*53ee8cc1Swenshuai.xi /// @param blockSize      \b :    block size
2310*53ee8cc1Swenshuai.xi /// @param samplePerBlock \b :    samples per block
2311*53ee8cc1Swenshuai.xi /// @return MS_U8         \b :    TRUE--parameters are correct;
2312*53ee8cc1Swenshuai.xi ///                               FALSE--parameters are incorrect
2313*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2314*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_212) ||defined(UFO_PUBLIC_HEADER_500_3)
2315*53ee8cc1Swenshuai.xi MS_U8   MApi_AUDIO_XPCM_Param(XPCM_TYPE audioType, MS_U8  channels, MS_U32 sampleRate,
2316*53ee8cc1Swenshuai.xi                                 MS_U8  bitsPerSample, MS_U16 blockSize, MS_U16 samplePerBlock);
2317*53ee8cc1Swenshuai.xi #else
2318*53ee8cc1Swenshuai.xi  MS_U8   MApi_AUDIO_XPCM_Param(XPCM_TYPE audioType, MS_U8  channels, MS_U16 sampleRate,
2319*53ee8cc1Swenshuai.xi                                 MS_U8  bitsPerSample, MS_U16 blockSize, MS_U16 samplePerBlock);
2320*53ee8cc1Swenshuai.xi #endif
2321*53ee8cc1Swenshuai.xi 
2322*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2323*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2324*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_XPCM2_Param()
2325*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine configures necessary parameters when playing XPCM data
2326*53ee8cc1Swenshuai.xi /// @param audioType      \b :    1--lpcm;
2327*53ee8cc1Swenshuai.xi ///                               2--MS-ADPCM;
2328*53ee8cc1Swenshuai.xi ///                               17--IMA-ADPCM
2329*53ee8cc1Swenshuai.xi /// @param channels       \b :    0-- mono;
2330*53ee8cc1Swenshuai.xi ///                               1-- stereo
2331*53ee8cc1Swenshuai.xi /// @param sampleRate     \b :    8, 11.025, 16, 22.05, 44.1 and 48 (KHz)
2332*53ee8cc1Swenshuai.xi /// @param bitsPerSample  \b :    8--8 bits;
2333*53ee8cc1Swenshuai.xi ///                               16--16 bits
2334*53ee8cc1Swenshuai.xi /// @param blockSize      \b :    block size
2335*53ee8cc1Swenshuai.xi /// @param samplePerBlock \b :    samples per block
2336*53ee8cc1Swenshuai.xi /// @return MS_U8         \b :    TRUE--parameters are correct;
2337*53ee8cc1Swenshuai.xi ///                               FALSE--parameters are incorrect
2338*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2339*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_212) ||defined(UFO_PUBLIC_HEADER_500_3)
2340*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_XPCM2_Param(XPCM_TYPE audioType, MS_U8  channels, MS_U32 sampleRate,
2341*53ee8cc1Swenshuai.xi                                 MS_U8  bitsPerSample, MS_U16 blockSize, MS_U16 samplePerBlock);
2342*53ee8cc1Swenshuai.xi 
2343*53ee8cc1Swenshuai.xi #else
2344*53ee8cc1Swenshuai.xi void    MApi_AUDIO_XPCM2_Param(XPCM_TYPE audioType, MS_U8  channels, MS_U16 sampleRate,
2345*53ee8cc1Swenshuai.xi                                 MS_U8  bitsPerSample, MS_U16 blockSize, MS_U16 samplePerBlock);
2346*53ee8cc1Swenshuai.xi #endif
2347*53ee8cc1Swenshuai.xi 
2348*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2349*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2350*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_XPCM2_CheckIntStatus()
2351*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to Read DSP internal sram value for int status by IDMA
2352*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2353*53ee8cc1Swenshuai.xi /// @param <RET>       \b MS_U16  :     sram value for interrupt status
2354*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2355*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2356*53ee8cc1Swenshuai.xi   MS_U16  MApi_AUDIO_XPCM2_CheckIntStatus(void);
2357*53ee8cc1Swenshuai.xi 
2358*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2359*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2360*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_RA8_Param()
2361*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine configures necessary parameters when playing RA8 LBR data
2362*53ee8cc1Swenshuai.xi /// @param mNumCodecs  \b :    1--stereo or mono
2363*53ee8cc1Swenshuai.xi ///                            2~5-- multi channels
2364*53ee8cc1Swenshuai.xi /// @param mSamples    \b :    output samples--256, 512, 1024
2365*53ee8cc1Swenshuai.xi /// @param mSampleRate \b :    8, 11.025, 16, 22.05, 44.1 (KHz)
2366*53ee8cc1Swenshuai.xi /// @param Channels    \b :    1-- mono
2367*53ee8cc1Swenshuai.xi ///                                    2-- stereo
2368*53ee8cc1Swenshuai.xi /// @param cplStart    \b :    0 ~ 51
2369*53ee8cc1Swenshuai.xi /// @param Regions     \b :    0 ~ 31
2370*53ee8cc1Swenshuai.xi /// @param cplQbits    \b :    0, 2, 3, 4, 5, 6
2371*53ee8cc1Swenshuai.xi /// @param FrameSize   \b :    bitstream size of every NumCodes (bytes)
2372*53ee8cc1Swenshuai.xi ///                                    Range--0 ~ 65535
2373*53ee8cc1Swenshuai.xi /// @return MS_U8      \b :    TRUE--parameters are correct;
2374*53ee8cc1Swenshuai.xi ///                            FALSE--parameters are incorrect
2375*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2376*53ee8cc1Swenshuai.xi  MS_U8   MApi_AUDIO_RA8_Param(MS_U16 mNumCodecs, MS_U16 mSamples, MS_U16 mSampleRate,
2377*53ee8cc1Swenshuai.xi                                 MS_U16* Channels, MS_U16* Regions, MS_U16* cplStart, MS_U16* cplQbits,
2378*53ee8cc1Swenshuai.xi                                 MS_U16* FrameSize);
2379*53ee8cc1Swenshuai.xi 
2380*53ee8cc1Swenshuai.xi   En_DVB_melodyPlayStatus MApi_AUDIO_PlayMelody(En_DVB_melodyPlayCmdType eMelodyCmd, MS_VIRT* u32FileAddr,MS_U32 u32FileSize, MS_U32 u32DspReqAddr);
2381*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2382*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2383*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_Init()
2384*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: MM Music mode Initial Audio decoder
2385*53ee8cc1Swenshuai.xi /// @param <IN>        \b enDecSystem: Audio decoder type
2386*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2387*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2388*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2389*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_Init(En_DVB_decSystemType enDecSystem);
2390*53ee8cc1Swenshuai.xi 
2391*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2392*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2393*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_StartDecode()
2394*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: start play MM file
2395*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2396*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2397*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2398*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2399*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_StartDecode(void);
2400*53ee8cc1Swenshuai.xi 
2401*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2402*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2403*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_StartBrowse()
2404*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: start browse file
2405*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2406*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2407*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2408*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2409*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_StartBrowse(void);
2410*53ee8cc1Swenshuai.xi 
2411*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2412*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2413*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_StopDecode()
2414*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Stop decoder
2415*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2416*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2417*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2418*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2419*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_StopDecode(void);
2420*53ee8cc1Swenshuai.xi 
2421*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2422*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2423*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_PauseDecode()
2424*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: pause decoder
2425*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2426*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2427*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2428*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2429*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_PauseDecode(void);
2430*53ee8cc1Swenshuai.xi 
2431*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2432*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2433*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_CheckPlayDone()
2434*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Check file play done. If file play done, will return TRUE
2435*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2436*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U8   : TRUE or FALSE
2437*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2438*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2439*53ee8cc1Swenshuai.xi  MS_U8   MApi_AUDIO_CheckPlayDone(void);
2440*53ee8cc1Swenshuai.xi 
2441*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2442*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2443*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetResidualBufferSize()
2444*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get ES buffer level.
2445*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2446*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U16 : ES buffer level
2447*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2448*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2449*53ee8cc1Swenshuai.xi  MS_U16  MApi_AUDIO_GetResidualBufferSize(void);
2450*53ee8cc1Swenshuai.xi 
2451*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2452*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2453*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetPCMBufferSize()
2454*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get MP3 PCM buffer level.
2455*53ee8cc1Swenshuai.xi /// @param <IN>        \b u16BitRate    : Bit Rate
2456*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U16 : MP3 PCM buffer level
2457*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2458*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2459*53ee8cc1Swenshuai.xi  MS_U16  MApi_AUDIO_GetPCMBufferSize(MS_U16 u16BitRate);
2460*53ee8cc1Swenshuai.xi 
2461*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2462*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2463*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetPCMBufferSize2()
2464*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get PCM buffer level.
2465*53ee8cc1Swenshuai.xi /// @param <IN>        \b u16BitRate : Bit Rate;
2466*53ee8cc1Swenshuai.xi /// @param <IN>        \b u16SampleRate : Sample Rate
2467*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U16 : PCM buffer level
2468*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2469*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2470*53ee8cc1Swenshuai.xi  MS_U16  MApi_AUDIO_GetPCMBufferSize2(MS_U16 u16BitRate,MS_U16 u16SampleRate);
2471*53ee8cc1Swenshuai.xi 
2472*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2473*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2474*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetCurrentFrameNumber()
2475*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get MP3 Current Frame Number
2476*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2477*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U32  : Current Frame Number
2478*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2479*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2480*53ee8cc1Swenshuai.xi  MS_U32  MApi_AUDIO_GetCurrentFrameNumber(void);
2481*53ee8cc1Swenshuai.xi 
2482*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2483*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
2484*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetSampleRate()
2485*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get Sample Rate
2486*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2487*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U16 : Sample Rate
2488*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2489*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2490*53ee8cc1Swenshuai.xi  MS_U16  MApi_AUDIO_GetSampleRate(void);
2491*53ee8cc1Swenshuai.xi 
2492*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2493*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
2494*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetBitRate()
2495*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get Bit Rate
2496*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2497*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U32  : Bit Rate
2498*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2499*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2500*53ee8cc1Swenshuai.xi  MS_U32  MApi_AUDIO_GetBitRate(void);
2501*53ee8cc1Swenshuai.xi 
2502*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2503*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2504*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetLayer()
2505*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get MP3 Layer
2506*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2507*53ee8cc1Swenshuai.xi /// @param <OUT>       \b Audio_MP3_LAYER : MPEG Layer
2508*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2509*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2510*53ee8cc1Swenshuai.xi  Audio_MP3_LAYER MApi_AUDIO_GetLayer(void);
2511*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2512*53ee8cc1Swenshuai.xi /// @ingroup Audio_Decoder
2513*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_CheckInputRequest()
2514*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: If MCU receive DSP interrupt, this function will return TRUE and report requested ES data buffer address and size
2515*53ee8cc1Swenshuai.xi /// @param <IN>        \b pU32WrtAddr    :
2516*53ee8cc1Swenshuai.xi /// @param <IN>        \b pU32WrtBytes   :
2517*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U8          : TRUE or FALSE
2518*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2519*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2520*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
2521*53ee8cc1Swenshuai.xi  MS_U8   MApi_AUDIO_CheckInputRequest(MS_U32 *pU32WrtAddr, MS_U32 *pU32WrtBytes);
2522*53ee8cc1Swenshuai.xi #else
2523*53ee8cc1Swenshuai.xi  MS_U8   MApi_AUDIO_CheckInputRequest(MS_PHY *pPHYWrtAddr, MS_U32 *pU32WrtBytes);
2524*53ee8cc1Swenshuai.xi #endif
2525*53ee8cc1Swenshuai.xi 
2526*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2527*53ee8cc1Swenshuai.xi /// @ingroup Audio_Decoder
2528*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetInput()
2529*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This function will inform DSP that MCU already write data to ES buffer by interrupt.
2530*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2531*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2532*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2533*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2534*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetInput(void);
2535*53ee8cc1Swenshuai.xi 
2536*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2537*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2538*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetSampleRateIndex()
2539*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Set AAC sample rate index.
2540*53ee8cc1Swenshuai.xi /// @param <IN>        \b u16Index    :
2541*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2542*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2543*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2544*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetSampleRateIndex(MS_U16 u16Index);
2545*53ee8cc1Swenshuai.xi 
2546*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2547*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2548*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetXPCMParam()
2549*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Set XPCM paramaters
2550*53ee8cc1Swenshuai.xi /// @param <IN>        \b audioType :
2551*53ee8cc1Swenshuai.xi /// @param <IN>        \b channels :
2552*53ee8cc1Swenshuai.xi /// @param <IN>        \b sampleRate :
2553*53ee8cc1Swenshuai.xi /// @param <IN>        \b bitsPerSample :
2554*53ee8cc1Swenshuai.xi /// @param <IN>        \b samplePerBlock :
2555*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2556*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2557*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2558*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_212)
2559*53ee8cc1Swenshuai.xi void    MApi_AUDIO_SetXPCMParam(XPCM_TYPE audioType, MS_U8 channels, MS_U32 sampleRate, MS_U8 bitsPerSample, MS_U16 blockSize, MS_U16 samplePerBlock);
2560*53ee8cc1Swenshuai.xi  #else
2561*53ee8cc1Swenshuai.xi void    MApi_AUDIO_SetXPCMParam(XPCM_TYPE audioType, MS_U8 channels, MS_U16 sampleRate, MS_U8 bitsPerSample, MS_U16 blockSize, MS_U16 samplePerBlock);
2562*53ee8cc1Swenshuai.xi #endif
2563*53ee8cc1Swenshuai.xi 
2564*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2565*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2566*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_FileEndNotification()
2567*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This function will inform DSP that file end
2568*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2569*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2570*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2571*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2572*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_FileEndNotification(void);
2573*53ee8cc1Swenshuai.xi 
2574*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2575*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2576*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_FileEndDataHandle()
2577*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Info DSP that the last ES data left size.
2578*53ee8cc1Swenshuai.xi /// @param <IN>        \b u32DataLeft    :
2579*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2580*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2581*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2582*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_FileEndDataHandle(MS_U32 u32DataLeft);
2583*53ee8cc1Swenshuai.xi 
2584*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2585*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2586*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetPlayTick()
2587*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get Play Time stamp
2588*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2589*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2590*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2591*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2592*53ee8cc1Swenshuai.xi  MS_U32  MApi_AUDIO_GetPlayTick(void);
2593*53ee8cc1Swenshuai.xi 
2594*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2595*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
2596*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetEsMEMCnt()
2597*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get ES Bufffer size
2598*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2599*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U16  : ES Bufffer size
2600*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2601*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2602*53ee8cc1Swenshuai.xi  MS_U16  MApi_AUDIO_GetEsMEMCnt(void);
2603*53ee8cc1Swenshuai.xi 
2604*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2605*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeMerged
2606*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetASFParm()
2607*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Set WMA ASF Paramaters
2608*53ee8cc1Swenshuai.xi /// @param <IN>        \b parm_type  :
2609*53ee8cc1Swenshuai.xi /// @param <IN>        \b value   :
2610*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2611*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2612*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2613*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_SetASFParm(WMA_ASF_PARMTYPE parm_type, MS_U32 value);
2614*53ee8cc1Swenshuai.xi 
2615*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2616*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2617*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_MM_SetInput()
2618*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: MCU send interrupt to decoder1/2 in MM mode
2619*53ee8cc1Swenshuai.xi /// @param <IN>        \b AUDDecoderNo  : DVB_Audio_Decoder1 / DVB_Audio_Decoder2
2620*53ee8cc1Swenshuai.xi /// @param <IN>        \b u8IntTag   : Interrupt tag, increase by every time
2621*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2622*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2623*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2624*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_MM_SetInput (En_DVB_AudioDecoder AUDDecoderNo, MS_U8 u8IntTag);
2625*53ee8cc1Swenshuai.xi 
2626*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2627*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2628*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_MM_CheckPlayDone()
2629*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: MCU check audio play end in MM mode
2630*53ee8cc1Swenshuai.xi /// @param <IN>        \b AUDDecoderNo  : DVB_Audio_Decoder1 / DVB_Audio_Decoder2
2631*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U16    : Value of residual PCM level for file end stop
2632*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2633*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2634*53ee8cc1Swenshuai.xi  MS_U32  MApi_AUDIO_MM_CheckPlayDone (En_DVB_AudioDecoder AUDDecoderNo);
2635*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2636*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2637*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_MM_CheckInputRequest()
2638*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description  : Decoder request input addr & size in MM mode
2639*53ee8cc1Swenshuai.xi /// @param <IN>        \b AUDDecoderNo : DVB_Audio_Decoder1 / DVB_Audio_Decoder2
2640*53ee8cc1Swenshuai.xi /// @param <IN>        \b pU32WrtAddr  : Request input address in ES1 buffer
2641*53ee8cc1Swenshuai.xi /// @param <IN>        \b pU32WrtBytes : Request input size
2642*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U8   : return TRUE if ok, else return FALSE
2643*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2644*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2645*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
2646*53ee8cc1Swenshuai.xi  MS_U8   MApi_AUDIO_MM_CheckInputRequest(En_DVB_AudioDecoder AUDDecoderNo, MS_U32 *pU32WrtAddr, MS_U32 *pU32WrtBytes);
2647*53ee8cc1Swenshuai.xi #else
2648*53ee8cc1Swenshuai.xi  MS_U8   MApi_AUDIO_MM_CheckInputRequest(En_DVB_AudioDecoder AUDDecoderNo, MS_PHY *pPHYWrtAddr, MS_U32 *pU32WrtBytes);
2649*53ee8cc1Swenshuai.xi #endif
2650*53ee8cc1Swenshuai.xi 
2651*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2652*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2653*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_DmaReader_Init()
2654*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:
2655*53ee8cc1Swenshuai.xi /// @param <IN>        \b   eType   : sampleRate
2656*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2657*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
2658*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2659*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_DmaReader_Init(SAMPLE_RATE sampleRate);
2660*53ee8cc1Swenshuai.xi 
2661*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2662*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2663*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_DmaReader_AllInput_Init()
2664*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Used DMA reader in all audio source application
2665*53ee8cc1Swenshuai.xi ///                    \b              (ex: Key sound) (CHIP_T8/T12) (48KHz only)
2666*53ee8cc1Swenshuai.xi /// @param <IN>        \b   eType   : sampleRate
2667*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2668*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
2669*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2670*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_DmaReader_AllInput_Init(void);
2671*53ee8cc1Swenshuai.xi 
2672*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2673*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2674*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_DmaReader_WritePCM()
2675*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: This routine is used to write PCM data into DMA reader Buffer
2676*53ee8cc1Swenshuai.xi /// @param <IN>        \b   eType   : buffer size (must be multiple of 8 Byte)
2677*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_BOOL    : TRUE or FALSE
2678*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
2679*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2680*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_DmaReader_WritePCM(void* buffer, MS_U32 bytes);
2681*53ee8cc1Swenshuai.xi 
2682*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2683*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2684*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_DmaWriter_Init()
2685*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:
2686*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2687*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2688*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
2689*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2690*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_DmaWriter_Init(void);
2691*53ee8cc1Swenshuai.xi 
2692*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2693*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2694*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_USBPCM_Enable()  @@Need_Modify
2695*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Enable/ Disable the path of USB PCM
2696*53ee8cc1Swenshuai.xi /// @param <IN>        \b bEnable : on: TRUE, off: FALSE
2697*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2698*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
2699*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2700*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2701*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_USBPCM_Enable(MS_BOOL bEnable);
2702*53ee8cc1Swenshuai.xi 
2703*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2704*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2705*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_USBPCM_SetFlag()  @@Need_Modify
2706*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  clear interrupt flag for USBPCM function
2707*53ee8cc1Swenshuai.xi ///                    \b               (Encoder path)
2708*53ee8cc1Swenshuai.xi /// @param <IN>        \b bEnable :  set false to clean interrupt flag
2709*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2710*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
2711*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2712*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2713*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_USBPCM_SetFlag(MS_BOOL bEnable);
2714*53ee8cc1Swenshuai.xi 
2715*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2716*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2717*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_USBPCM_GetFlag()  @@Need_Modify
2718*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Get interrupt flag for USBPCM function
2719*53ee8cc1Swenshuai.xi ///                    \b               (Encoder path)
2720*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2721*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2722*53ee8cc1Swenshuai.xi /// @param <RET>       \b BOOL    :   interrupt flag
2723*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2724*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2725*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_USBPCM_GetFlag(void);
2726*53ee8cc1Swenshuai.xi 
2727*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2728*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2729*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_USBPCM_GetMemInfo()  @@Need_Modify
2730*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Get memory address and size for USBPCM function
2731*53ee8cc1Swenshuai.xi ///                    \b               (Encoder path)
2732*53ee8cc1Swenshuai.xi /// @param <IN>        \b NONE    :
2733*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U32  : address, size
2734*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
2735*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2736*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2737*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_USBPCM_GetMemInfo(AUDIO_UPLOAD_INFO *uploadInfo);
2738*53ee8cc1Swenshuai.xi 
2739*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2740*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2741*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_PCMCapture_Init()
2742*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Select source for pcm capture
2743*53ee8cc1Swenshuai.xi /// @param <IN>        \b AUDIO_DEVICE_TYPE : select 1st or 2nd data capture
2744*53ee8cc1Swenshuai.xi /// @param <IN>        \b AUDIO_CAPTURE_SOURCE_TYPE : Data Source
2745*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_BOOL    : return TRUE if success, else return FALSE
2746*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
2747*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2748*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2749*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_PCMCapture_Init(const AUDIO_DEVICE_TYPE eID, const AUDIO_CAPTURE_SOURCE_TYPE eSource);
2750*53ee8cc1Swenshuai.xi 
2751*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2752*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2753*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_PCMCapture_Start()
2754*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  captrue pcm data to DDR
2755*53ee8cc1Swenshuai.xi /// @param <IN>        \b AUDIO_DEVICE_TYPE : select 1st or 2nd data capture
2756*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_BOOL    : return TRUE if success, else return FALSE
2757*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
2758*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2759*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2760*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_PCMCapture_Start(const AUDIO_DEVICE_TYPE eID);
2761*53ee8cc1Swenshuai.xi 
2762*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2763*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2764*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_PCMCapture_Stop()
2765*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  stop captrue pcm data from DDR
2766*53ee8cc1Swenshuai.xi /// @param <IN>        \b AUDIO_DEVICE_TYPE : select 1st or 2nd data capture
2767*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_BOOL    : return TRUE if success, else return FALSE
2768*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
2769*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2770*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2771*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_PCMCapture_Stop(const AUDIO_DEVICE_TYPE eID);
2772*53ee8cc1Swenshuai.xi 
2773*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2774*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2775*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_PCMCapture_Read()
2776*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  captrue pcm data from DDR to device
2777*53ee8cc1Swenshuai.xi /// @param <IN>        \b AUDIO_DEVICE_TYPE : select 1st or 2nd data capture
2778*53ee8cc1Swenshuai.xi /// @param <IN>        \b void* : destination buffer pointer
2779*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_U32 : buffer size need transfered in byte
2780*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_BOOL    : return TRUE if success, else return FALSE
2781*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
2782*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2783*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2784*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_PCMCapture_Read(const AUDIO_DEVICE_TYPE eID,  void* buffer, const MS_U32 bytes);
2785*53ee8cc1Swenshuai.xi 
2786*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2787*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2788*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_VoIP_Config()
2789*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  This routine is used for VoIP applications
2790*53ee8cc1Swenshuai.xi /// @param <IN>        \b AUDIO_VoIP_CONFIG_TYPE : configType
2791*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_U32 : param1
2792*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_U32 : param2
2793*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_BOOL    : return TRUE if success, else return FALSE
2794*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
2795*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2796*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2797*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_VoIP_Config(AUDIO_VoIP_CONFIG_TYPE configType, MS_U32 param1, MS_U32 param2);
2798*53ee8cc1Swenshuai.xi 
2799*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2800*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2801*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ALSA_Check()
2802*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Check if ALSA Interface is supported
2803*53ee8cc1Swenshuai.xi /// @param <IN>        \b bEnable : on: TRUE, off: FALSE
2804*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_BOOL    : return TRUE if it's supported, else return FALSE
2805*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
2806*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2807*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2808*53ee8cc1Swenshuai.xi   MS_BOOL MApi_AUDIO_ALSA_Check(void);
2809*53ee8cc1Swenshuai.xi 
2810*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2811*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2812*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ALSA_Enable()
2813*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Enable/ Disable the path of ALSA
2814*53ee8cc1Swenshuai.xi /// @param <IN>        \b bEnable : on: TRUE, off: FALSE
2815*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_BOOL    : return TRUE if ok, else return FALSE
2816*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
2817*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2818*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2819*53ee8cc1Swenshuai.xi   MS_BOOL MApi_AUDIO_ALSA_Enable(MS_BOOL bEnable);
2820*53ee8cc1Swenshuai.xi 
2821*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2822*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2823*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_UNI_CheckDecodeDone()
2824*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description  : Decoder report pcm out addr & size in Uniplayer mode
2825*53ee8cc1Swenshuai.xi /// @param <IN>        \b pU32WrtAddr  : Request input address in ES1 buffer
2826*53ee8cc1Swenshuai.xi /// @param <IN>        \b pU32WrtBytes : Request input size
2827*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U8   : return TRUE if ok, else return FALSE
2828*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2829*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2830*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
2831*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_UNI_CheckDecodeDone(MS_U32 *pU32WrtAddr, MS_U32 *pU32WrtBytes);
2832*53ee8cc1Swenshuai.xi #else
2833*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_UNI_CheckDecodeDone(MS_PHY *pPHYWrtAddr, MS_U32 *pU32WrtBytes);
2834*53ee8cc1Swenshuai.xi #endif
2835*53ee8cc1Swenshuai.xi 
2836*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2837*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2838*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_UNI_SetOutput()
2839*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: MCU send interrupt to decoder1 in Uniplayer mode
2840*53ee8cc1Swenshuai.xi /// @param <IN>        \b PCMOutCnt   : Get output PCM count by MCU
2841*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2842*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2843*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2844*53ee8cc1Swenshuai.xi  void    MApi_AUDIO_UNI_SetOutput (MS_U32 PCMOutCnt);
2845*53ee8cc1Swenshuai.xi 
2846*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2847*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2848*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_UNI_Set_PCMInputWriteAddr()
2849*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: MCU send DEC1-PCM3 wptr to decoder1 in Uniplayer mode
2850*53ee8cc1Swenshuai.xi /// @param <IN>        \b PCMIn_Wptr   : PCM3 write pointer to DSP
2851*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE    :
2852*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2853*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2854*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_UNI_Set_PCMInputWriteAddr (MS_U32 PCMIn_Wptr);
2855*53ee8cc1Swenshuai.xi 
2856*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2857*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2858*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_UNI_Get_OutPCMLevel()
2859*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Decoder1 report DEC1-PCM3 buffer level in Uniplayer mode
2860*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U32  : DEC1-PCM3 buffer level (byte unit)
2861*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2862*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2863*53ee8cc1Swenshuai.xi   MS_U32  MApi_AUDIO_UNI_Get_OutPCMLevel (void);
2864*53ee8cc1Swenshuai.xi 
2865*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2866*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2867*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_RingTask()
2868*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description :
2869*53ee8cc1Swenshuai.xi /// @param <IN>        \b auRingTask  :
2870*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE        :
2871*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2872*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_RingTask(audioRingTask* auRingTask) ;
2873*53ee8cc1Swenshuai.xi 
2874*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2875*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2876*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_Ring_DataTransfer()
2877*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description :
2878*53ee8cc1Swenshuai.xi /// @param <IN>        \b auRingTask  :
2879*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE        :
2880*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2881*53ee8cc1Swenshuai.xi   void    MApi_AUDIO_Ring_DataTransfer(audioRingTask* auRingTask, audioRingTask* auRingTask_1);
2882*53ee8cc1Swenshuai.xi 
2883*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2884*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2885*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_MM2_initAesInfo()
2886*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description  : Initialize AES info
2887*53ee8cc1Swenshuai.xi /// @param <IN>        \b dec_id  : Decoder ID
2888*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_BOOL : return TRUE if ok, else return FALSE
2889*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2890*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2891*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_MM2_initAesInfo( AUDIO_DEC_ID dec_id );
2892*53ee8cc1Swenshuai.xi 
2893*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2894*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2895*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_MM2_checkAesInfo()
2896*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description  : Get AES info from audio decoder
2897*53ee8cc1Swenshuai.xi /// @param <IN>        \b dec_id       : Decoder ID
2898*53ee8cc1Swenshuai.xi /// @param <IN>        \b aes_info     : AES info structure pointer
2899*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_BOOL : return TRUE if ok, else return FALSE
2900*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2901*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2902*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_MM2_checkAesInfo( AUDIO_DEC_ID  dec_id, AES_INFO *aes_info );
2903*53ee8cc1Swenshuai.xi 
2904*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2905*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2906*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_MM2_inputAesFinished()
2907*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description  : Inform DSP how much ES data is sent
2908*53ee8cc1Swenshuai.xi /// @param <IN>        \b dec_id       : Decoder ID
2909*53ee8cc1Swenshuai.xi /// @param <IN>        \b es_size  : Size of ES data
2910*53ee8cc1Swenshuai.xi /// @param <IN>        \b ptsExist : Whether ES data contains PTS or not
2911*53ee8cc1Swenshuai.xi /// @param <IN>        \b pts       : PTS
2912*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_BOOL  : return TRUE if ok, else return FALSE
2913*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE     :
2914*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2915*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_MM2_inputAesFinished( AUDIO_DEC_ID dec_id, MS_U32 es_size, MS_BOOL ptsExist, MS_U64 pts );
2916*53ee8cc1Swenshuai.xi 
2917*53ee8cc1Swenshuai.xi 
2918*53ee8cc1Swenshuai.xi //====== STAOS PIP START 2012/02/01 ========
2919*53ee8cc1Swenshuai.xi 
2920*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2921*53ee8cc1Swenshuai.xi /// @ingroup Audio_Decoder
2922*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_SetAudioParam2()
2923*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2924*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_SetAudioParam2( AUDIO_DEC_ID DecId, Audio_ParamType paramType, MS_VIRT Param );
2925*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2926*53ee8cc1Swenshuai.xi /// @ingroup Audio_Decoder
2927*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetAudioInfo2()
2928*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2929*53ee8cc1Swenshuai.xi  MS_BOOL MApi_AUDIO_GetAudioInfo2( AUDIO_DEC_ID DecId, Audio_InfoType infoType, void * pInfo );
2930*53ee8cc1Swenshuai.xi 
2931*53ee8cc1Swenshuai.xi //====== STAOS PIP END 2012/02/01 ========
2932*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2933*53ee8cc1Swenshuai.xi /// @ingroup Audio_ToBeRemove
2934*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_GetDDRInfo()
2935*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description:  Return Audio DDR info
2936*53ee8cc1Swenshuai.xi /// @param <IN>        \b AUDIO_DEC_ID : select audio processor
2937*53ee8cc1Swenshuai.xi /// @param <IN>        \b EN_AUDIO_DDRINFO : DDR info
2938*53ee8cc1Swenshuai.xi /// @param <OUT>       \b MS_U32  : return DDR info
2939*53ee8cc1Swenshuai.xi /// @param <RET>       \b NONE    :
2940*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE    :
2941*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2942*53ee8cc1Swenshuai.xi MS_PHY MApi_AUDIO_GetDDRInfo(AUDIO_DEC_ID DecId, EN_AUDIO_DDRINFO DDRInfo);
2943*53ee8cc1Swenshuai.xi 
2944*53ee8cc1Swenshuai.xi MS_U32 MApi_AUDIO_GetCaps(AUDIO_DEC_ID DecId, MS_U32 *pCaps);
2945*53ee8cc1Swenshuai.xi 
2946*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2947*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_PCM_Open()
2948*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Open a PCM interface according to specific capabilities.
2949*53ee8cc1Swenshuai.xi /// @param <IN>        \b void : Pointer to a block of memory with PCM information.
2950*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE :
2951*53ee8cc1Swenshuai.xi /// @param <RET>       \b MS_S32 : On success a nonnegative value is returned, and this value is the chosen device-id. On error, a negative value is returned.
2952*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE :
2953*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2954*53ee8cc1Swenshuai.xi  MS_S32   MApi_AUDIO_PCM_Open(void *pData);
2955*53ee8cc1Swenshuai.xi 
2956*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2957*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_PCM_Close()
2958*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Close an opened PCM interface.
2959*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_S32 : The chosen device-id.
2960*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE :
2961*53ee8cc1Swenshuai.xi /// @param <RET>       \b MS_S32 : On success zero is returned. On error, a negative value is returned.
2962*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE :
2963*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2964*53ee8cc1Swenshuai.xi  MS_S32   MApi_AUDIO_PCM_Close(MS_S32 s32DeviceId);
2965*53ee8cc1Swenshuai.xi 
2966*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2967*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_PCM_Start()
2968*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Start an opened PCM interface.
2969*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_S32 : The chosen device-id.
2970*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE :
2971*53ee8cc1Swenshuai.xi /// @param <RET>       \b MS_S32 : On success zero is returned. On error, a negative value is returned.
2972*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE :
2973*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2974*53ee8cc1Swenshuai.xi  MS_S32   MApi_AUDIO_PCM_Start(MS_S32 s32DeviceId);
2975*53ee8cc1Swenshuai.xi 
2976*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2977*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_PCM_Stop()
2978*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Stop a started PCM interface.
2979*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_S32 : The chosen device-id.
2980*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE :
2981*53ee8cc1Swenshuai.xi /// @param <RET>       \b MS_S32 : On success zero is returned. On error, a negative value is returned.
2982*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE :
2983*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2984*53ee8cc1Swenshuai.xi  MS_S32   MApi_AUDIO_PCM_Stop(MS_S32 s32DeviceId);
2985*53ee8cc1Swenshuai.xi 
2986*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2987*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_PCM_Set()
2988*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Set configuration to an opened PCM interface.
2989*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_S32 : The chosen device-id.
2990*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_U32 : The command type.
2991*53ee8cc1Swenshuai.xi /// @param <IN>        \b void : Pointer to a block of memory with specific configuration, and this memory is not allowed to be updated by this API.
2992*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE :
2993*53ee8cc1Swenshuai.xi /// @param <RET>       \b MS_S32 : On success zero is returned. On error, a negative value is returned.
2994*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE :
2995*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2996*53ee8cc1Swenshuai.xi  MS_S32   MApi_AUDIO_PCM_Set(MS_S32 s32DeviceId, MS_U32 u32Cmd, const void *pData);
2997*53ee8cc1Swenshuai.xi 
2998*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
2999*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_PCM_Get()
3000*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Get configuration from an opened PCM interface.
3001*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_S32 : The chosen device-id.
3002*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_U32 : The command type.
3003*53ee8cc1Swenshuai.xi /// @param <IN>        \b void : Pointer to a block of memory for receiving specific configuration.
3004*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE :
3005*53ee8cc1Swenshuai.xi /// @param <RET>       \b MS_S32 : On success zero is returned. On error, a negative value is returned.
3006*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE :
3007*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3008*53ee8cc1Swenshuai.xi  MS_S32   MApi_AUDIO_PCM_Get(MS_S32 s32DeviceId, MS_U32 u32Cmd, void *pData);
3009*53ee8cc1Swenshuai.xi 
3010*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3011*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_PCM_Read()
3012*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Read a specific amount of PCM data from a started PCM interface.
3013*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_S32 : The chosen device-id.
3014*53ee8cc1Swenshuai.xi /// @param <IN>        \b void : Pointer to a block of memory with PCM data.
3015*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_U32 : The size of PCM data.
3016*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE :
3017*53ee8cc1Swenshuai.xi /// @param <RET>       \b MS_U32 : The total number of PCM data successfully written is returned.
3018*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE :
3019*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3020*53ee8cc1Swenshuai.xi  MS_U32   MApi_AUDIO_PCM_Read(MS_S32 s32DeviceId, void *pBuf, MS_U32 u32Size);
3021*53ee8cc1Swenshuai.xi 
3022*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3023*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_PCM_Write()
3024*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Write a specific amount of PCM data to a started PCM interface.
3025*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_S32 : The chosen device-id.
3026*53ee8cc1Swenshuai.xi /// @param <IN>        \b void : Pointer to a block of memory with PCM data, and this memory is not allowed to be updated by this API.
3027*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_U32 : The size of PCM data.
3028*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE :
3029*53ee8cc1Swenshuai.xi /// @param <RET>       \b MS_U32 : The total number of PCM data successfully written is returned.
3030*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE :
3031*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3032*53ee8cc1Swenshuai.xi  MS_U32   MApi_AUDIO_PCM_Write(MS_S32 s32DeviceId, const void *pBuf, MS_U32 u32Size);
3033*53ee8cc1Swenshuai.xi 
3034*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3035*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_PCM_Flush()
3036*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Flush an opened PCM interface.
3037*53ee8cc1Swenshuai.xi /// @param <IN>        \b MS_S32 : The chosen device-id.
3038*53ee8cc1Swenshuai.xi /// @param <OUT>       \b NONE :
3039*53ee8cc1Swenshuai.xi /// @param <RET>       \b MS_S32 : On success zero is returned. On error, a negative value is returned.
3040*53ee8cc1Swenshuai.xi /// @param <GLOBAL>    \b NONE :
3041*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3042*53ee8cc1Swenshuai.xi  MS_S32   MApi_AUDIO_PCM_Flush(MS_S32 s32DeviceId);
3043*53ee8cc1Swenshuai.xi 
3044*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_700)
3045*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3046*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ENCODER_Open()
3047*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Open an encoder interface according to specific device name.
3048*53ee8cc1Swenshuai.xi /// @param <IN>		\b char : Pointer to a string with name.
3049*53ee8cc1Swenshuai.xi /// @param <OUT>		\b NONE :
3050*53ee8cc1Swenshuai.xi /// @param <RET>		\b MS_S32 : On success a nonnegative value is returned, and this value is the chosen device-id. On error, a negative value is returned.
3051*53ee8cc1Swenshuai.xi /// @param <GLOBAL>	\b NONE :
3052*53ee8cc1Swenshuai.xi ///
3053*53ee8cc1Swenshuai.xi /// Device Name :
3054*53ee8cc1Swenshuai.xi ///     "MP3_ENCODER1" : 1st MP3 Encoder
3055*53ee8cc1Swenshuai.xi ///     "MP3_ENCODER2" : 2nd MP3 Encoder
3056*53ee8cc1Swenshuai.xi  ////////////////////////////////////////////////////////////////////////////////
3057*53ee8cc1Swenshuai.xi  MS_S32 MApi_AUDIO_ENCODER_Open(const char *pName);
3058*53ee8cc1Swenshuai.xi 
3059*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3060*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ENCODER_Close()
3061*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Close an opened encoder interface.
3062*53ee8cc1Swenshuai.xi /// @param <IN>		\b MS_S32 : The chosen device-id.
3063*53ee8cc1Swenshuai.xi /// @param <OUT>		\b NONE :
3064*53ee8cc1Swenshuai.xi /// @param <RET>		\b MS_S32 : On success zero is returned. On error, a negative value is returned.
3065*53ee8cc1Swenshuai.xi /// @param <GLOBAL>	\b NONE :
3066*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3067*53ee8cc1Swenshuai.xi  MS_S32 MApi_AUDIO_ENCODER_Close(MS_S32 s32DeviceId);
3068*53ee8cc1Swenshuai.xi 
3069*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3070*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ENCODER_Start()
3071*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Start an opened encoder interface.
3072*53ee8cc1Swenshuai.xi /// @param <IN>		\b MS_S32 : The chosen device-id.
3073*53ee8cc1Swenshuai.xi /// @param <OUT>		\b NONE :
3074*53ee8cc1Swenshuai.xi /// @param <RET>		\b MS_S32 : On success zero is returned. On error, a negative value is returned.
3075*53ee8cc1Swenshuai.xi /// @param <GLOBAL>	\b NONE :
3076*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3077*53ee8cc1Swenshuai.xi  MS_S32 MApi_AUDIO_ENCODER_Start(MS_S32 s32DeviceId);
3078*53ee8cc1Swenshuai.xi 
3079*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3080*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ENCODER_Stop()
3081*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Stop a started encoder interface.
3082*53ee8cc1Swenshuai.xi /// @param <IN>		\b MS_S32 : The chosen device-id.
3083*53ee8cc1Swenshuai.xi /// @param <OUT>		\b NONE :
3084*53ee8cc1Swenshuai.xi /// @param <RET>		\b MS_S32 : On success zero is returned. On error, a negative value is returned.
3085*53ee8cc1Swenshuai.xi /// @param <GLOBAL>	\b NONE :
3086*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3087*53ee8cc1Swenshuai.xi  MS_S32 MApi_AUDIO_ENCODER_Stop(MS_S32 s32DeviceId);
3088*53ee8cc1Swenshuai.xi 
3089*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3090*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ENCODER_Ioctl()
3091*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Set/Get configuration to an opened encoder interface.
3092*53ee8cc1Swenshuai.xi /// @param <IN>		\b MS_S32 : The chosen device-id.
3093*53ee8cc1Swenshuai.xi /// @param <IN>		\b char : Pointer to a string with command name.
3094*53ee8cc1Swenshuai.xi /// @param <IN>		\b void : Pointer to a block of memory with specific configuration to deliver, or to receive specific configuration.
3095*53ee8cc1Swenshuai.xi /// @param <OUT>		\b NONE :
3096*53ee8cc1Swenshuai.xi /// @param <RET>		\b MS_S32 : On success zero is returned. On error, a negative value is returned.
3097*53ee8cc1Swenshuai.xi /// @param <GLOBAL>	\b NONE :
3098*53ee8cc1Swenshuai.xi ///
3099*53ee8cc1Swenshuai.xi /// Command String Name :
3100*53ee8cc1Swenshuai.xi ///     "GetFrameSize" : Get the size of current encoded frame.
3101*53ee8cc1Swenshuai.xi ///     "GetAvailableSize" : Get the size of total available encoded frames.
3102*53ee8cc1Swenshuai.xi ///     "GetTimestampHigh32Bit" : Get high 32 bits of timestamp from current encoded frame.
3103*53ee8cc1Swenshuai.xi ///     "GetTimestampLow32Bit" : Get low 32 bits of timestamp from current encoded frame.
3104*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3105*53ee8cc1Swenshuai.xi  MS_S32 MApi_AUDIO_ENCODER_Ioctl(MS_S32 s32DeviceId, const char *pCmd, void *pData);
3106*53ee8cc1Swenshuai.xi 
3107*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3108*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ENCODER_Read()
3109*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Read a specific amount of encoded data from a started encoder interface.
3110*53ee8cc1Swenshuai.xi /// @param <IN>		\b MS_S32 : The chosen device-id.
3111*53ee8cc1Swenshuai.xi /// @param <IN>		\b void : Pointer to a block of memory with encoded data.
3112*53ee8cc1Swenshuai.xi /// @param <IN>		\b MS_U32 : The size of encoded data.
3113*53ee8cc1Swenshuai.xi /// @param <OUT>		\b NONE :
3114*53ee8cc1Swenshuai.xi /// @param <RET>		\b MS_U32 : The total number of encoded data successfully written is returned.
3115*53ee8cc1Swenshuai.xi /// @param <GLOBAL>	\b NONE :
3116*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3117*53ee8cc1Swenshuai.xi  MS_U32 MApi_AUDIO_ENCODER_Read(MS_S32 s32DeviceId, void *pBuf, MS_U32 u32Size);
3118*53ee8cc1Swenshuai.xi 
3119*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3120*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MApi_AUDIO_ENCODER_Flush()
3121*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Flush an opened encoder interface.
3122*53ee8cc1Swenshuai.xi /// @param <IN>		\b MS_S32 : The chosen device-id.
3123*53ee8cc1Swenshuai.xi /// @param <OUT>		\b NONE :
3124*53ee8cc1Swenshuai.xi /// @param <RET>		\b MS_S32 : On success zero is returned. On error, a negative value is returned.
3125*53ee8cc1Swenshuai.xi /// @param <GLOBAL>	\b NONE :
3126*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
3127*53ee8cc1Swenshuai.xi  MS_S32 MApi_AUDIO_ENCODER_Flush(MS_S32 s32DeviceId);
3128*53ee8cc1Swenshuai.xi #endif
3129*53ee8cc1Swenshuai.xi 
3130*53ee8cc1Swenshuai.xi #ifdef __cplusplus
3131*53ee8cc1Swenshuai.xi }
3132*53ee8cc1Swenshuai.xi #endif
3133*53ee8cc1Swenshuai.xi 
3134*53ee8cc1Swenshuai.xi #endif // _API_AUDIO_H_
3135