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