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