1 //<MStar Software> 2 //****************************************************************************** 3 // MStar Software 4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved. 5 // All software, firmware and related documentation herein ("MStar Software") are 6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by 7 // law, including, but not limited to, copyright law and international treaties. 8 // Any use, modification, reproduction, retransmission, or republication of all 9 // or part of MStar Software is expressly prohibited, unless prior written 10 // permission has been granted by MStar. 11 // 12 // By accessing, browsing and/or using MStar Software, you acknowledge that you 13 // have read, understood, and agree, to be bound by below terms ("Terms") and to 14 // comply with all applicable laws and regulations: 15 // 16 // 1. MStar shall retain any and all right, ownership and interest to MStar 17 // Software and any modification/derivatives thereof. 18 // No right, ownership, or interest to MStar Software and any 19 // modification/derivatives thereof is transferred to you under Terms. 20 // 21 // 2. You understand that MStar Software might include, incorporate or be 22 // supplied together with third party`s software and the use of MStar 23 // Software may require additional licenses from third parties. 24 // Therefore, you hereby agree it is your sole responsibility to separately 25 // obtain any and all third party right and license necessary for your use of 26 // such third party`s software. 27 // 28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as 29 // MStar`s confidential information and you agree to keep MStar`s 30 // confidential information in strictest confidence and not disclose to any 31 // third party. 32 // 33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any 34 // kind. Any warranties are hereby expressly disclaimed by MStar, including 35 // without limitation, any warranties of merchantability, non-infringement of 36 // intellectual property rights, fitness for a particular purpose, error free 37 // and in conformity with any international standard. You agree to waive any 38 // claim against MStar for any loss, damage, cost or expense that you may 39 // incur related to your use of MStar Software. 40 // In no event shall MStar be liable for any direct, indirect, incidental or 41 // consequential damages, including without limitation, lost of profit or 42 // revenues, lost or damage of data, and unauthorized system use. 43 // You agree that this Section 4 shall still apply without being affected 44 // even if MStar Software has been modified by MStar in accordance with your 45 // request or instruction for your use, except otherwise agreed by both 46 // parties in writing. 47 // 48 // 5. If requested, MStar may from time to time provide technical supports or 49 // services in relation with MStar Software to you for your use of 50 // MStar Software in conjunction with your or your customer`s product 51 // ("Services"). 52 // You understand and agree that, except otherwise agreed by both parties in 53 // writing, Services are provided on an "AS IS" basis and the warranty 54 // disclaimer set forth in Section 4 above shall apply. 55 // 56 // 6. Nothing contained herein shall be construed as by implication, estoppels 57 // or otherwise: 58 // (a) conferring any license or right to use MStar name, trademark, service 59 // mark, symbol or any other identification; 60 // (b) obligating MStar or any of its affiliates to furnish any person, 61 // including without limitation, you and your customers, any assistance 62 // of any kind whatsoever, or any information; or 63 // (c) conferring any license or right under any intellectual property right. 64 // 65 // 7. These terms shall be governed by and construed in accordance with the laws 66 // of Taiwan, R.O.C., excluding its conflict of law rules. 67 // Any and all dispute arising out hereof or related hereto shall be finally 68 // settled by arbitration referred to the Chinese Arbitration Association, 69 // Taipei in accordance with the ROC Arbitration Law and the Arbitration 70 // Rules of the Association by three (3) arbitrators appointed in accordance 71 // with the said Rules. 72 // The place of arbitration shall be in Taipei, Taiwan and the language shall 73 // be English. 74 // The arbitration award shall be final and binding to both parties. 75 // 76 //****************************************************************************** 77 //<MStar Software> 78 //////////////////////////////////////////////////////////////////////////////// 79 // 80 // Copyright (c) 2008-2009 MStar Semiconductor, Inc. 81 // All rights reserved. 82 // 83 // Unless otherwise stipulated in writing, any and all information contained 84 // herein regardless in any format shall remain the sole proprietary of 85 // MStar Semiconductor Inc. and be kept in strict confidence 86 // ("MStar Confidential Information") by the recipient. 87 // Any unauthorized act including without limitation unauthorized disclosure, 88 // copying, use, reproduction, sale, distribution, modification, disassembling, 89 // reverse engineering and compiling of the contents of MStar Confidential 90 // Information is unlawful and strictly prohibited. MStar hereby reserves the 91 // rights to any and all damages, losses, costs and expenses resulting therefrom. 92 // 93 //////////////////////////////////////////////////////////////////////////////// 94 95 /////////////////////////////////////////////////////////////////////////////////////////////////// 96 /// 97 /// @file apiAUDIO_v2_customer.h 98 /// @brief AUDIO API 99 /// @author MStar Semiconductor Inc. 100 /////////////////////////////////////////////////////////////////////////////////////////////////// 101 102 #ifndef _API_AUDIO_CUSTOMER_H_ 103 #define _API_AUDIO_CUSTOMER_H_ 104 105 #include "MsCommon.h" 106 107 108 #ifdef __cplusplus 109 extern "C" 110 { 111 #endif 112 113 //------------------------------------------------------------------------------------------------------------------------------------- 114 /* Initialize, STR */ 115 //------------------------------------------------------------------------------------------------------------------------------------- 116 //need to be consistent with AUDIO_OUTPUT_TYPE of drvAudio_if.h 117 typedef enum 118 { 119 API_AUDIO_CUSTOMER_OUTPUT_TYPE_INVALID = -1, 120 API_AUDIO_CUSTOMER_LINEOUT0_OUTPUT, ///< 0: DAC0 OUTPUT 121 API_AUDIO_CUSTOMER_LINEOUT1_OUTPUT, ///< 1: T2=>AA0 OUTPUT T3=>HP OUTPUT 122 API_AUDIO_CUSTOMER_LINEOUT2_OUTPUT, ///< 2: T2=>AA1 OUTPUT T3=>DAC2 OUTPUT 123 API_AUDIO_CUSTOMER_LINEOUT3_OUTPUT, ///< 3: T2=>NULL T3=>AA OUTPUT 124 API_AUDIO_CUSTOMER_SPDIF_OUTPUT, ///< 4: SPDIF OUTPUT 125 API_AUDIO_CUSTOMER_I2S_OUTPUT, ///< 5: I2S OUTPUT 126 API_AUDIO_CUSTOMER_HP_OUTPUT, ///< 6: OUTPUT with headphone driver 127 API_AUDIO_CUSTOMER_I2S2_OUTPUT, ///< 7: I2S2 OUTPUT 128 API_AUDIO_CUSTOMER_HDMI_ARC_OUTPUT, ///< 8: HDMI ARC OUTPUT(HDMI_Rx,TV) 129 API_AUDIO_CUSTOMER_HDMI_OUTPUT, ///< 9: HDMI Tx OUTPUT(HDMI_Tx,STB) 130 API_AUDIO_CUSTOMER_NULL_OUTPUT = 0xFF, ///< 0xFF: Null output 131 API_AUDIO_CUSTOMER_OUTPUT_MAX, 132 } API_AUDIO_CUSTOMER_OUTPUT_TYPE; 133 134 //need to be consistent with AUDIO_OUT_INFO of drvAudio_if.h 135 typedef struct 136 { 137 API_AUDIO_CUSTOMER_OUTPUT_TYPE SpeakerOut; ///< Audio output port for Speaker 138 API_AUDIO_CUSTOMER_OUTPUT_TYPE HpOut; ///< Audio output port for HP 139 API_AUDIO_CUSTOMER_OUTPUT_TYPE MonitorOut; ///< Audio output port for Monitor out 140 API_AUDIO_CUSTOMER_OUTPUT_TYPE ScartOut; ///< Audio output port for Scart out 141 API_AUDIO_CUSTOMER_OUTPUT_TYPE SpdifOut; ///< Audio output port for S/PDIF out 142 API_AUDIO_CUSTOMER_OUTPUT_TYPE ArcOut; ///< Audio output port for ARC(HDMI_Rx) out 143 API_AUDIO_CUSTOMER_OUTPUT_TYPE HDMIOut; ///< Audio output port for HDMI_Tx out 144 } API_AUDIO_CUSTOMER_OUTPUT_INFO; 145 146 typedef enum 147 { 148 API_AUDIO_CUSTOMER_CHIP_PLATFORM_INVALID = -1, 149 API_AUDIO_CUSTOMER_CHIP_PLATFORM_TV, 150 API_AUDIO_CUSTOMER_CHIP_PLATFORM_STB, 151 } API_AUDIO_CUSTOMER_CHIP_PLATFORM; 152 153 //------------------------------------------------------------------------------------------------------------------------------------- 154 /* Connect & Disconnect */ 155 //------------------------------------------------------------------------------------------------------------------------------------- 156 typedef enum 157 { 158 API_AUDIO_CUSTOMER_PARSER_MODE_INVALID = -1, 159 API_AUDIO_CUSTOMER_PARSER_MODE_0, 160 API_AUDIO_CUSTOMER_PARSER_MODE_1, 161 API_AUDIO_CUSTOMER_PARSER_MODE_2, 162 API_AUDIO_CUSTOMER_PARSER_MODE_3, 163 API_AUDIO_CUSTOMER_PARSER_MODE_MAX, 164 } API_AUDIO_CUSTOMER_PARSER_MODE; 165 166 typedef enum 167 { 168 API_AUDIO_CUSTOMER_PARSER_INPUT_INVALID = -1, 169 API_AUDIO_CUSTOMER_PARSER_INPUT_AFIFO0, 170 API_AUDIO_CUSTOMER_PARSER_INPUT_AFIFO1, 171 API_AUDIO_CUSTOMER_PARSER_INPUT_AFIFO2, 172 API_AUDIO_CUSTOMER_PARSER_INPUT_AFIFO3, 173 API_AUDIO_CUSTOMER_PARSER_INPUT_MAX, 174 } API_AUDIO_CUSTOMER_PARSER_INPUT; 175 176 typedef enum 177 { 178 API_AUDIO_CUSTOMER_ADEC_INDEX_INVALID = -1, 179 API_AUDIO_CUSTOMER_ADEC0, 180 API_AUDIO_CUSTOMER_ADEC1, 181 API_AUDIO_CUSTOMER_ADEC_ATV, 182 API_AUDIO_CUSTOMER_ADEC_MAX, 183 } API_AUDIO_CUSTOMER_ADEC_INDEX; 184 185 typedef enum 186 { 187 API_AUDIO_CUSTOMER_ADEC_INPUT_INVALID = -1, 188 API_AUDIO_CUSTOMER_ADEC_INPUT_DTV = 0, 189 API_AUDIO_CUSTOMER_ADEC_INPUT_HDMI = 1, 190 API_AUDIO_CUSTOMER_ADEC_INPUT_MM = 2, 191 API_AUDIO_CUSTOMER_ADEC_INPUT_MM_UNI = 6, //<--MAX is here!!! 192 API_AUDIO_CUSTOMER_ADEC_INPUT_CLIP = 3, 193 API_AUDIO_CUSTOMER_ADEC_INPUT_ATV = 4, 194 API_AUDIO_CUSTOMER_ADEC_INPUT_NONE = 5, 195 API_AUDIO_CUSTOMER_ADEC_INPUT_MAX = API_AUDIO_CUSTOMER_ADEC_INPUT_MM_UNI + 1, 196 } API_AUDIO_CUSTOMER_ADEC_INPUT; 197 198 typedef enum 199 { 200 API_AUDIO_CUSTOMER_ADEC_PCM_PATH_INVALID = -1, 201 API_AUDIO_CUSTOMER_ADEC_PCM_PATH_DSP_SRC, 202 API_AUDIO_CUSTOMER_ADEC_PCM_PATH_MCU, 203 API_AUDIO_CUSTOMER_ADEC_PCM_PATH_MAX, 204 } API_AUDIO_CUSTOMER_ADEC_PCM_PATH; 205 206 typedef enum 207 { 208 API_AUDIO_CUSTOMER_ADC_INDEX_INVALID = -1, 209 API_AUDIO_CUSTOMER_ADC0, 210 API_AUDIO_CUSTOMER_ADC1, 211 API_AUDIO_CUSTOMER_ADC_MAX, 212 } API_AUDIO_CUSTOMER_ADC_INDEX; 213 214 typedef enum 215 { 216 API_AUDIO_CUSTOMER_ADC_IN_PORT_INVALID = -1, 217 API_AUDIO_CUSTOMER_ADC0_IN_PORT_0 = 0x02, 218 API_AUDIO_CUSTOMER_ADC0_IN_PORT_1 = 0x12, 219 API_AUDIO_CUSTOMER_ADC0_IN_PORT_2 = 0x22, 220 API_AUDIO_CUSTOMER_ADC0_IN_PORT_3 = 0x32, 221 API_AUDIO_CUSTOMER_ADC0_IN_PORT_4 = 0xA2, 222 API_AUDIO_CUSTOMER_ADC0_IN_PORT_5 = 0xB2, 223 API_AUDIO_CUSTOMER_ADC0_MIC_IN = 0x72, 224 API_AUDIO_CUSTOMER_ADC1_IN_PORT_0 = 0x09, 225 API_AUDIO_CUSTOMER_ADC1_IN_PORT_1 = 0x19, 226 API_AUDIO_CUSTOMER_ADC1_IN_PORT_2 = 0x29, 227 API_AUDIO_CUSTOMER_ADC1_IN_PORT_3 = 0x39, 228 API_AUDIO_CUSTOMER_ADC1_IN_PORT_4 = 0xA9, 229 API_AUDIO_CUSTOMER_ADC1_IN_PORT_5 = 0xB9, 230 API_AUDIO_CUSTOMER_ADC1_MIC_IN = 0x79, 231 } API_AUDIO_CUSTOMER_ADC_IN_PORT; 232 233 typedef enum 234 { 235 API_AUDIO_CUSTOMER_PCM_MIXER_INDEX_INVALID = -1, 236 API_AUDIO_CUSTOMER_PCM_MIXER0, 237 API_AUDIO_CUSTOMER_PCM_MIXER_MAX, 238 } API_AUDIO_CUSTOMER_PCM_MIXER_INDEX; 239 240 typedef enum 241 { 242 API_AUDIO_CUSTOMER_PCM_MIXER_INPUT_INVALID = -1, 243 API_AUDIO_CUSTOMER_PCM_MIXER_INPUT_AMIX0, 244 API_AUDIO_CUSTOMER_PCM_MIXER_INPUT_AMIX1, 245 API_AUDIO_CUSTOMER_PCM_MIXER_INPUT_AMIX2, 246 API_AUDIO_CUSTOMER_PCM_MIXER_INPUT_AMIX3, 247 API_AUDIO_CUSTOMER_PCM_MIXER_INPUT_AMIX4, 248 API_AUDIO_CUSTOMER_PCM_MIXER_INPUT_AMIX5, 249 API_AUDIO_CUSTOMER_PCM_MIXER_INPUT_AMIX6, 250 API_AUDIO_CUSTOMER_PCM_MIXER_INPUT_AMIX7, 251 API_AUDIO_CUSTOMER_PCM_MIXER_INPUT_MAX, 252 } API_AUDIO_CUSTOMER_PCM_MIXER_INPUT; 253 254 typedef enum 255 { 256 API_AUDIO_CUSTOMER_CH_SOUND_INVALID = -1, 257 API_AUDIO_CUSTOMER_CH5_SOUND, 258 API_AUDIO_CUSTOMER_CH6_SOUND, 259 API_AUDIO_CUSTOMER_CH7_SOUND, 260 API_AUDIO_CUSTOMER_CH8_SOUND, 261 API_AUDIO_CUSTOMER_CH_SOUND_MAX, 262 } API_AUDIO_CUSTOMER_CH_SOUND; 263 264 typedef enum 265 { 266 API_AUDIO_CUSTOMER_CH_INPUT_INVALID = -1, 267 API_AUDIO_CUSTOMER_CH_INPUT_ADEC0, 268 API_AUDIO_CUSTOMER_CH_INPUT_ADEC1, 269 API_AUDIO_CUSTOMER_CH_INPUT_ADEC_ATV, 270 API_AUDIO_CUSTOMER_CH_INPUT_HDMI, 271 API_AUDIO_CUSTOMER_CH_INPUT_ADC0, 272 API_AUDIO_CUSTOMER_CH_INPUT_ADC1, 273 API_AUDIO_CUSTOMER_CH_INPUT_SCART, 274 API_AUDIO_CUSTOMER_CH_INPUT_R2DMA_DSP1, 275 API_AUDIO_CUSTOMER_CH_INPUT_R2DMA_DSP3, 276 API_AUDIO_CUSTOMER_CH_INPUT_SWDMA_DSP3, 277 API_AUDIO_CUSTOMER_CH_INPUT_HWDMA, 278 API_AUDIO_CUSTOMER_CH_INPUT_NONE, 279 API_AUDIO_CUSTOMER_CH_INPUT_MAX, 280 } API_AUDIO_CUSTOMER_CH_INPUT; 281 282 typedef enum 283 { 284 API_AUDIO_CUSTOMER_FWM_INVALID = -1, 285 API_AUDIO_CUSTOMER_FWM0, 286 API_AUDIO_CUSTOMER_FWM1, 287 API_AUDIO_CUSTOMER_FWM2, 288 API_AUDIO_CUSTOMER_FWM_MAX, 289 } API_AUDIO_CUSTOMER_FWM_INDEX; 290 291 typedef enum 292 { 293 API_AUDIO_CUSTOMER_FWM_INPUT_INVALID = -1, 294 API_AUDIO_CUSTOMER_FWM_INPUT_CH5, 295 API_AUDIO_CUSTOMER_FWM_INPUT_CH6, 296 API_AUDIO_CUSTOMER_FWM_INPUT_CH7, 297 API_AUDIO_CUSTOMER_FWM_INPUT_CH8, 298 API_AUDIO_CUSTOMER_FWM_INPUT_MAX, 299 } API_AUDIO_CUSTOMER_FWM_INPUT; 300 301 typedef enum 302 { 303 API_AUDIO_CUSTOMER_SE_INVALID = -1, 304 API_AUDIO_CUSTOMER_SE_PRER2, 305 API_AUDIO_CUSTOMER_SE_DSPSE, 306 API_AUDIO_CUSTOMER_SE_POSTR2, 307 API_AUDIO_CUSTOMER_SE_MAX, 308 } API_AUDIO_CUSTOMER_SE_INDEX; 309 310 typedef enum 311 { 312 API_AUDIO_CUSTOMER_SE_INPUT_INVALID = -1, 313 API_AUDIO_CUSTOMER_SE_INPUT_DLY0, 314 API_AUDIO_CUSTOMER_SE_INPUT_DLY1, 315 API_AUDIO_CUSTOMER_SE_INPUT_MAX, 316 } API_AUDIO_CUSTOMER_SE_INPUT; 317 318 typedef enum 319 { 320 API_AUDIO_CUSTOMER_SOUNDOUT_INVALID = -1, 321 API_AUDIO_CUSTOMER_SOUNDOUT_I2S, 322 API_AUDIO_CUSTOMER_SOUNDOUT_LINEOUT0, 323 API_AUDIO_CUSTOMER_SOUNDOUT_LINEOUT1, 324 API_AUDIO_CUSTOMER_SOUNDOUT_LINEOUT2, 325 API_AUDIO_CUSTOMER_SOUNDOUT_LINEOUT3, 326 API_AUDIO_CUSTOMER_SOUNDOUT_SPDIF, 327 API_AUDIO_CUSTOMER_SOUNDOUT_HDMI_ARC, 328 API_AUDIO_CUSTOMER_SOUNDOUT_HDMI_TX, 329 API_AUDIO_CUSTOMER_SOUNDOUT_MAX, 330 } API_AUDIO_CUSTOMER_SOUNDOUT_INDEX; 331 332 typedef enum 333 { 334 API_AUDIO_CUSTOMER_SOUNDOUT_INPUT_INVALID = -1, 335 API_AUDIO_CUSTOMER_SOUNDOUT_INPUT_NULL = 0, 336 API_AUDIO_CUSTOMER_SOUNDOUT_INPUT_CH7 = 1, 337 API_AUDIO_CUSTOMER_SOUNDOUT_INPUT_FWM0 = 2, 338 API_AUDIO_CUSTOMER_SOUNDOUT_INPUT_DLY0 = 3, 339 API_AUDIO_CUSTOMER_SOUNDOUT_INPUT_FWM1 = 4, 340 API_AUDIO_CUSTOMER_SOUNDOUT_INPUT_DLY1 = 5, 341 API_AUDIO_CUSTOMER_SOUNDOUT_INPUT_FWM2 = 6, 342 API_AUDIO_CUSTOMER_SOUNDOUT_INPUT_DLY2 = 7, 343 API_AUDIO_CUSTOMER_SOUNDOUT_INPUT_AUDIO_DELAY = 11, //<--MAX is here!!! 344 API_AUDIO_CUSTOMER_SOUNDOUT_INPUT_PRER2 = 8, 345 API_AUDIO_CUSTOMER_SOUNDOUT_INPUT_DSPSE = 9, 346 API_AUDIO_CUSTOMER_SOUNDOUT_INPUT_POSTR2 = 10, 347 API_AUDIO_CUSTOMER_SOUNDOUT_INPUT_MAX = API_AUDIO_CUSTOMER_SOUNDOUT_INPUT_AUDIO_DELAY + 1, 348 } API_AUDIO_CUSTOMER_SOUNDOUT_INPUT; 349 350 typedef enum 351 { 352 API_AUDIO_CUSTOMER_PCM_CAPTURE_INVALID = -1, 353 API_AUDIO_CUSTOMER_PCM_CAPTURE0, 354 API_AUDIO_CUSTOMER_PCM_CAPTURE1, 355 API_AUDIO_CUSTOMER_PCM_CAPTURE2, 356 API_AUDIO_CUSTOMER_PCM_CAPTURE_MAX, 357 } API_AUDIO_CUSTOMER_PCM_CAPTURE_INDEX; 358 359 typedef enum 360 { 361 API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT_INVALID = -1, 362 API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT_CH5, 363 API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT_CH6, 364 API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT_CH7, 365 API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT_CH8, 366 API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT_PCM, 367 API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT_PCM_DELAY, 368 API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT_PCM_SE, 369 API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT_MIXER, 370 API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT_FWM0, 371 API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT_FWM1, 372 API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT_FWM2, 373 API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT_MAX, 374 } API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT; 375 376 typedef enum 377 { 378 API_AUDIO_CUSTOMER_MP3_ENC_INVALID = -1, 379 API_AUDIO_CUSTOMER_MP3_ENC0, 380 API_AUDIO_CUSTOMER_MP3_ENC_MAX, 381 } API_AUDIO_CUSTOMER_MP3_ENC_INDEX; 382 383 typedef enum 384 { 385 API_AUDIO_CUSTOMER_MP3_ENC_INPUT_INVALID = -1, 386 API_AUDIO_CUSTOMER_MP3_ENC_INPUT_CH5, 387 API_AUDIO_CUSTOMER_MP3_ENC_INPUT_CH6, 388 API_AUDIO_CUSTOMER_MP3_ENC_INPUT_MAX, 389 } API_AUDIO_CUSTOMER_MP3_ENC_INPUT; 390 391 typedef enum 392 { 393 API_AUDIO_CUSTOMER_AAC_ENC_INVALID = -1, 394 API_AUDIO_CUSTOMER_AAC_ENC0, 395 API_AUDIO_CUSTOMER_AAC_ENC_MAX, 396 } API_AUDIO_CUSTOMER_AAC_ENC_INDEX; 397 398 typedef enum 399 { 400 API_AUDIO_CUSTOMER_AAC_ENC_INPUT_INVALID = -1, 401 API_AUDIO_CUSTOMER_AAC_ENC_INPUT_PCM_CAPTURE0, 402 API_AUDIO_CUSTOMER_AAC_ENC_INPUT_PCM_CAPTURE1, 403 API_AUDIO_CUSTOMER_AAC_ENC_INPUT_MAX, 404 } API_AUDIO_CUSTOMER_AAC_ENC_INPUT; 405 406 //------------------------------------------------------------------------------------------------------------------------------------- 407 /* Start & Stop */ 408 //------------------------------------------------------------------------------------------------------------------------------------- 409 typedef enum 410 { 411 API_AUDIO_CUSTOMER_CODEC_TYPE_INVALID = -1, 412 API_AUDIO_CUSTOMER_CODEC_TYPE_UNKNOWN = 0, 413 API_AUDIO_CUSTOMER_CODEC_TYPE_PCM = 1, // for HDMI PCM 414 API_AUDIO_CUSTOMER_CODEC_TYPE_AC3 = 2, 415 API_AUDIO_CUSTOMER_CODEC_TYPE_EAC3 = 3, 416 API_AUDIO_CUSTOMER_CODEC_TYPE_MPEG = 4, 417 API_AUDIO_CUSTOMER_CODEC_TYPE_AAC = 5, 418 API_AUDIO_CUSTOMER_CODEC_TYPE_HEAAC = 6, 419 API_AUDIO_CUSTOMER_CODEC_TYPE_DRA = 7, 420 API_AUDIO_CUSTOMER_CODEC_TYPE_MP3 = 8, 421 API_AUDIO_CUSTOMER_CODEC_TYPE_DTS = 9, 422 API_AUDIO_CUSTOMER_CODEC_TYPE_SIF = 10, 423 API_AUDIO_CUSTOMER_CODEC_TYPE_SIF_BTSC = 11, 424 API_AUDIO_CUSTOMER_CODEC_TYPE_SIF_A2 = 12, 425 API_AUDIO_CUSTOMER_CODEC_TYPE_DEFAULT = 13, 426 API_AUDIO_CUSTOMER_CODEC_TYPE_NONE = 14, 427 API_AUDIO_CUSTOMER_CODEC_TYPE_DTS_HD_MA = 15, 428 API_AUDIO_CUSTOMER_CODEC_TYPE_DTS_EXPRESS = 16, 429 API_AUDIO_CUSTOMER_CODEC_TYPE_DTS_CD = 17, 430 API_AUDIO_CUSTOMER_CODEC_TYPE_WMA = 18, 431 API_AUDIO_CUSTOMER_CODEC_TYPE_WMA_PRO = 19, 432 API_AUDIO_CUSTOMER_CODEC_TYPE_XPCM = 20, 433 API_AUDIO_CUSTOMER_CODEC_TYPE_RA8LBR = 21, 434 API_AUDIO_CUSTOMER_CODEC_TYPE_FLAC = 22, 435 API_AUDIO_CUSTOMER_CODEC_TYPE_VORBIS = 23, 436 API_AUDIO_CUSTOMER_CODEC_TYPE_AMR_NB = 24, 437 API_AUDIO_CUSTOMER_CODEC_TYPE_AMR_WB = 25, 438 API_AUDIO_CUSTOMER_CODEC_TYPE_DolbyTrueHDBypass = 26, 439 API_AUDIO_CUSTOMER_CODEC_TYPE_DVI = 27, // for HDMI DVI 440 API_AUDIO_CUSTOMER_CODEC_TYPE_ESBypass = 28, 441 } API_AUDIO_CUSTOMER_CODEC_TYPE; 442 443 typedef enum 444 { 445 API_AUDIO_CUSTOMER_UPPER_PLAYCMD_INVALID = -1, 446 API_AUDIO_CUSTOMER_UPPER_PLAY = 0, 447 API_AUDIO_CUSTOMER_UPPER_STOP = 1, 448 API_AUDIO_CUSTOMER_UPPER_PAUSE = 2, 449 } API_AUDIO_CUSTOMER_UPPER_PLAYCMD; 450 451 //------------------------------------------------------------------------------------------------------------------------------------- 452 /* SPDIF */ 453 //------------------------------------------------------------------------------------------------------------------------------------- 454 typedef enum 455 { 456 API_AUDIO_CUSTOMER_SPDIF_TX_MODE_INVALID = -1, 457 API_AUDIO_CUSTOMER_SPDIF_TX_NONE = 0, 458 API_AUDIO_CUSTOMER_SPDIF_TX_PCM = 1, 459 API_AUDIO_CUSTOMER_SPDIF_TX_AUTO = 2, 460 API_AUDIO_CUSTOMER_SPDIF_TX_BYPASS = 3, 461 API_AUDIO_CUSTOMER_SPDIF_TX_TRANSCODE = 4, /* Netflix */ 462 API_AUDIO_CUSTOMER_SPDIF_TX_DD = 5, 463 } API_AUDIO_CUSTOMER_SPDIF_TX_MODE; 464 465 typedef enum 466 { 467 API_AUDIO_CUSTOMER_SPDIF_COPYRIGHT_INVALID = -1, 468 API_AUDIO_CUSTOMER_SPDIF_COPY_FREE = 0, /* cp-bit : 1, L-bit : 0 */ 469 API_AUDIO_CUSTOMER_SPDIF_COPY_NO_MORE = 1, /* cp-bit : 0, L-bit : 1 */ 470 API_AUDIO_CUSTOMER_SPDIF_COPY_ONCE = 2, /* cp-bit : 0, L-bit : 0 */ 471 API_AUDIO_CUSTOMER_SPDIF_COPY_NEVER = 3, /* cp-bit : 0, L-bit : 1 */ 472 } API_AUDIO_CUSTOMER_SPDIF_COPYRIGHT; 473 474 //====== SPDIF OUTPUT CS TYPE ========= 475 typedef enum 476 { 477 API_AUDIO_CUSTOMER_SPDIF_CS_CategoryCode = 0x0, ///< 478 API_AUDIO_CUSTOMER_SPDIF_CS_CopyRight = 0x1, ///< 479 API_AUDIO_CUSTOMER_SPDIF_CS_SourceNumber = 0x2, ///< 480 API_AUDIO_CUSTOMER_SPDIF_CS_ChannelNumber = 0x3, ///< 481 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq = 0x4, ///< 482 API_AUDIO_CUSTOMER_SPDIF_CS_ClockAcc = 0x5, ///< 483 API_AUDIO_CUSTOMER_SPDIF_ChannelAB = 0x6, ///< 484 API_AUDIO_CUSTOMER_SPDIF_CS_CopyProtect = 0x7, ///< 485 } API_AUDIO_CUSTOMER_SPDIF_CS_TYPE; 486 487 //====== SPDIF OUTPUT CS Status ======= 488 typedef enum 489 { 490 API_AUDIO_CUSTOMER_SPDIF_CS_Category_BroadCast = 0x00, ///< 491 API_AUDIO_CUSTOMER_SPDIF_CS_Category_General = 0x01, ///< 492 API_AUDIO_CUSTOMER_SPDIF_CS_Category_BroadCast_JP = 0x02, ///< 493 API_AUDIO_CUSTOMER_SPDIF_CS_Category_BroadCast_EU = 0x03, ///< 494 API_AUDIO_CUSTOMER_SPDIF_CS_Category_BroadCast_USA = 0x04, ///< 495 API_AUDIO_CUSTOMER_SPDIF_CS_Category_Rev4 = 0x05, ///< 496 API_AUDIO_CUSTOMER_SPDIF_CS_Category_Rev5 = 0x06, ///< 497 API_AUDIO_CUSTOMER_SPDIF_CS_Category_Rev6 = 0x07, ///< 498 API_AUDIO_CUSTOMER_SPDIF_CS_CopyRight_CP = 0x08, ///< 499 API_AUDIO_CUSTOMER_SPDIF_CS_CopyRight_NonCP = 0x09, ///<SPDIF_CS_ChannelNumber_Right 500 API_AUDIO_CUSTOMER_SPDIF_CS_SourceNumber_2 = 0x0A, ///< 501 API_AUDIO_CUSTOMER_SPDIF_CS_SourceNumber_5 = 0x0B, ///< 502 API_AUDIO_CUSTOMER_SPDIF_CS_SourceNumber_6 = 0x0C, ///< 503 API_AUDIO_CUSTOMER_SPDIF_CS_SourceNumber_Rev1 = 0x0D, ///< 504 API_AUDIO_CUSTOMER_SPDIF_CS_SourceNumber_Rev2 = 0x0E, ///< 505 API_AUDIO_CUSTOMER_SPDIF_CS_SourceNumber_Rev3 = 0x0F, ///< 506 API_AUDIO_CUSTOMER_SPDIF_CS_ChannelNumber_A_Left = 0x10, ///< 507 API_AUDIO_CUSTOMER_SPDIF_CS_ChannelNumber_B_Right = 0x11, ///< 508 API_AUDIO_CUSTOMER_SPDIF_CS_ChannelNumber_C = 0x12, ///< 509 API_AUDIO_CUSTOMER_SPDIF_CS_ChannelNumber_D = 0x13, ///< 510 API_AUDIO_CUSTOMER_SPDIF_CS_ChannelNumber_E = 0x14, ///< 511 API_AUDIO_CUSTOMER_SPDIF_CS_ChannelNumber_F = 0x15, ///< 512 API_AUDIO_CUSTOMER_SPDIF_CS_ChannelNumber_G = 0x16, ///< 513 API_AUDIO_CUSTOMER_SPDIF_CS_ChannelNumber_H = 0x17, ///< 514 API_AUDIO_CUSTOMER_SPDIF_CS_ChannelNumber_I = 0x18, ///< 515 API_AUDIO_CUSTOMER_SPDIF_CS_ChannelNumber_J = 0x19, ///< 516 API_AUDIO_CUSTOMER_SPDIF_CS_ChannelNumber_K = 0x1A, ///< 517 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_192 = 0x1B, ///< 518 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_176 = 0x1C, ///< 519 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_128 = 0x1D, ///< 520 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_96 = 0x1E, ///< 521 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_88 = 0x1F, ///< 522 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_64 = 0x20, ///< 523 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_48 = 0x21, ///< 524 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_44 = 0x22, ///< 525 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_32 = 0x23, ///< 526 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_24 = 0x24, ///< 527 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_22 = 0x25, ///< 528 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_16 = 0x26, ///< 529 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_Rev1 = 0x27, ///< 530 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_Rev2 = 0x28, ///< 531 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_Rev3 = 0x29, ///< 532 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_Rev4 = 0x2A, ///< 533 API_AUDIO_CUSTOMER_SPDIF_CS_SmpFreq_Rev5 = 0x2B, ///< 534 API_AUDIO_CUSTOMER_SPDIF_CS_ClockAcc_Lev1 = 0x2C, ///< 535 API_AUDIO_CUSTOMER_SPDIF_CS_ClockAcc_Lev2 = 0x2D, ///< 536 API_AUDIO_CUSTOMER_SPDIF_CS_ClockAcc_Lev3 = 0x2E, ///< 537 API_AUDIO_CUSTOMER_SPDIF_CS_ClockAcc_NotMatch = 0x2F, ///< 538 API_AUDIO_CUSTOMER_SPDIF_ChannelAB_Invalid_ON = 0x30, ///< 539 API_AUDIO_CUSTOMER_SPDIF_ChannelAB_Invalid_OFF = 0x31, ///< 540 API_AUDIO_CUSTOMER_SPDIF_CS_CopyProtect_CopyFree = 0x32, ///< 541 API_AUDIO_CUSTOMER_SPDIF_CS_CopyProtect_CopyOnce = 0x33, ///< 542 API_AUDIO_CUSTOMER_SPDIF_CS_CopyProtect_CopyNever = 0x34, ///< 543 } API_AUDIO_CUSTOMER_SPDIF_CS_TYPE_STATUS; 544 545 //------------------------------------------------------------------------------------------------------------------------------------- 546 /* HDMI */ 547 //------------------------------------------------------------------------------------------------------------------------------------- 548 typedef enum 549 { 550 API_AUDIO_CUSTOMER_HDMI_TX_OUTPUT_INVALID = -1, 551 API_AUDIO_CUSTOMER_HDMI_TX_OUTPUT_PCM, ///< HDMI OUTPUT PCM 552 API_AUDIO_CUSTOMER_HDMI_TX_OUTPUT_NONPCM, ///< HDMI OUTPUT non-PCM (DD) 553 API_AUDIO_CUSTOMER_HDMI_TX_OUTPUT_EAC3_BYPASS, ///< HDMI OUTPUT DD/DDP Bypass 554 API_AUDIO_CUSTOMER_HDMI_TX_OUTPUT_EAC3, ///< HDMI OUTPUT DDP Encode (MS12) 555 } API_AUDIO_CUSTOMER_HDMI_TX_OUTPUT_TYPE; 556 557 //------------------------------------------------------------------------------------------------------------------------------------- 558 /* ATV */ 559 //------------------------------------------------------------------------------------------------------------------------------------- 560 typedef enum 561 { 562 API_AUDIO_CUSTOMER_SIF_INPUT_INVALID = -1, 563 API_AUDIO_CUSTOMER_SIF_INPUT_EXTERNAL = 0, 564 API_AUDIO_CUSTOMER_SIF_INPUT_INTERNAL = 1, 565 } API_AUDIO_CUSTOMER_SIF_INPUT; 566 567 typedef enum 568 { 569 API_AUDIO_CUSTOMER_SIF_TYPE_INVALID = -1, 570 API_AUDIO_CUSTOMER_SIF_TYPE_NONE = 0x0000, ///< INIT TYPE : NONE 571 API_AUDIO_CUSTOMER_SIF_ATSC_SELECT = 0x0001, ///< INIT TYPE : TV Systems for A2 enabled in default ATSC system 572 API_AUDIO_CUSTOMER_SIF_KOREA_A2_SELECT = 0x0002, ///< INIT TYPE : TV Systems for A2 enabled in Korea A2 system 573 API_AUDIO_CUSTOMER_SIF_BTSC_SELECT = 0x0004, ///< INIT TYPE : TV Systems for BTSC enabled in ATSC(CO, CF) or DVB(Taiwan) system 574 API_AUDIO_CUSTOMER_SIF_BTSC_BR_SELECT = 0x0008, ///< INIT TYPE : TV Systems for BTSC enabled in ATSC(Brazil) system 575 API_AUDIO_CUSTOMER_SIF_BTSC_US_SELECT = 0x0010, ///< INIT TYPE : TV Systems for BTSC enabled in ATSC(US) system 576 API_AUDIO_CUSTOMER_SIF_DVB_SELECT = 0x0020, ///< INIT TYPE : TV Systems for EU in default DVB system 577 API_AUDIO_CUSTOMER_SIF_DVB_ID_SELECT = 0x0040, ///< INIT TYPE : TV Systems for ID(Indonesia) in DVB(PAL B/G) system 578 API_AUDIO_CUSTOMER_SIF_DVB_IN_SELECT = 0x0080, ///< INIT TYPE : TV Systems for IN(India) in DVB(PAL B) system 579 API_AUDIO_CUSTOMER_SIF_DVB_CN_SELECT = 0x0100, ///< INIT TYPE : TV Systems for CN(China, Hong Kone) in DVB system 580 API_AUDIO_CUSTOMER_SIF_DVB_AJJA_SELECT = 0x0200, ///< INIT TYPE : TV Systems for AJ(Asia JooDong), JA(JooAang Asia) in DVB system 581 API_AUDIO_CUSTOMER_SIF_TYPE_MAX = 0x0FFF, ///< INIT TYPE : MAX 582 } API_AUDIO_CUSTOMER_SIF_TYPE; 583 584 typedef enum 585 { 586 API_AUDIO_CUSTOMER_SIF_STANDARD_INVALID = -1, 587 API_AUDIO_CUSTOMER_SIF_BG = 0x00, ///< Audio standard BG 588 API_AUDIO_CUSTOMER_SIF_BG_A2 = 0x01, ///< Audio standard BG A2 589 API_AUDIO_CUSTOMER_SIF_BG_NICAM = 0x02, ///< Audio standard BG NICAM 590 API_AUDIO_CUSTOMER_SIF_I = 0x03, ///< Audio standard I 591 API_AUDIO_CUSTOMER_SIF_DK = 0x04, ///< Audio standard DK 592 API_AUDIO_CUSTOMER_SIF_DK1_A2 = 0x05, ///< Audio standard DK1 A2 593 API_AUDIO_CUSTOMER_SIF_DK2_A2 = 0x06, ///< Audio standard DK2 A2 594 API_AUDIO_CUSTOMER_SIF_DK3_A2 = 0x07, ///< Audio standard DK3 A2 595 API_AUDIO_CUSTOMER_SIF_DK_NICAM = 0x08, ///< Audio standard DK NICAM 596 API_AUDIO_CUSTOMER_SIF_L = 0x09, ///< Audio standard L 597 API_AUDIO_CUSTOMER_SIF_M = 0x0A, ///< Audio standard M 598 API_AUDIO_CUSTOMER_SIF_M_BTSC = 0x0B, ///< Audio standard M BTSC 599 API_AUDIO_CUSTOMER_SIF_M_A2 = 0x0C, ///< Audio standard M A2 600 API_AUDIO_CUSTOMER_SIF_M_EIA_J = 0x0D, ///< Audio standard M EIA J 601 API_AUDIO_CUSTOMER_SIF_NOTSTANDARD = 0x0F ///< Not Audio standard 602 } API_AUDIO_CUSTOMER_SIF_STANDARD; 603 604 typedef enum 605 { 606 API_AUDIO_CUSTOMER_SIF_MODE_SET_INVALID = -1, 607 API_AUDIO_CUSTOMER_SIF_SET_PAL_MONO = 0x00, // PAL Mono 608 API_AUDIO_CUSTOMER_SIF_SET_PAL_MONO_FORCED = 0x01, // PAL Mono Force Mono 609 API_AUDIO_CUSTOMER_SIF_SET_PAL_STEREO = 0x02, // PAL Stereo 610 API_AUDIO_CUSTOMER_SIF_SET_PAL_STEREO_FORCED = 0x03, // PAL Stereo Force Mono 611 API_AUDIO_CUSTOMER_SIF_SET_PAL_DUALI = 0x04, // PAL Dual I 612 API_AUDIO_CUSTOMER_SIF_SET_PAL_DUALII = 0x05, // PAL Dual II 613 API_AUDIO_CUSTOMER_SIF_SET_PAL_DUALI_II = 0x06, // PAL Dual I+II 614 API_AUDIO_CUSTOMER_SIF_SET_PAL_NICAM_MONO = 0x07, // PAL NICAM Mono 615 API_AUDIO_CUSTOMER_SIF_SET_PAL_NICAM_MONO_FORCED = 0x08, // PAL NICAM Mono Force Mono 616 API_AUDIO_CUSTOMER_SIF_SET_PAL_NICAM_STEREO = 0x09, // PAL NICAM Stereo 617 API_AUDIO_CUSTOMER_SIF_SET_PAL_NICAM_STEREO_FORCED = 0x0A, // PAL NICAM Stereo Force Mono 618 API_AUDIO_CUSTOMER_SIF_SET_PAL_NICAM_DUALI = 0x0B, // PAL NICAM Dual I 619 API_AUDIO_CUSTOMER_SIF_SET_PAL_NICAM_DUALII = 0x0C, // PAL NICAM Dual II 620 API_AUDIO_CUSTOMER_SIF_SET_PAL_NICAM_DUALI_II = 0x0D, // PAL NICAM Dual I+II 621 API_AUDIO_CUSTOMER_SIF_SET_PAL_NICAM_DUAL_FORCED = 0x0E, // PAL NICAM Dual Forced Mono(Not Supported) 622 API_AUDIO_CUSTOMER_SIF_SET_PAL_UNKNOWN = 0x0F, // PAL Unkown State 623 API_AUDIO_CUSTOMER_SIF_SET_NTSC_A2_MONO = 0x10, // NTSC(A2) Mono 624 API_AUDIO_CUSTOMER_SIF_SET_NTSC_A2_STEREO = 0x11, // NTSC(A2) Stereo 625 API_AUDIO_CUSTOMER_SIF_SET_NTSC_A2_SAP = 0x12, // NTSC(A2) SAP 626 API_AUDIO_CUSTOMER_SIF_SET_NTSC_A2_UNKNOWN = 0x13, // NTSC(A2) Unkown State 627 API_AUDIO_CUSTOMER_SIF_SET_NTSC_BTSC_MONO = 0x14, // NTSC(BTSC) Mono 628 API_AUDIO_CUSTOMER_SIF_SET_NTSC_BTSC_STEREO = 0x15, // NTSC(BTSC) Stereo 629 API_AUDIO_CUSTOMER_SIF_SET_NTSC_BTSC_SAP_MONO = 0x16, // NTSC(BTSC) SAP Mono 630 API_AUDIO_CUSTOMER_SIF_SET_NTSC_BTSC_SAP_STEREO = 0x17, // NTSC(BTSC) SAP Stereo 631 API_AUDIO_CUSTOMER_SIF_SET_NTSC_BTSC_UNKNOWN = 0x18, // NTSC(BTSC) Unkown State 632 } API_AUDIO_CUSTOMER_SIF_MODE_SET; 633 634 typedef enum 635 { 636 API_AUDIO_CUSTOMER_SIF_HHIDEV_FILTER_BW1 = 0x10, // 220kHz~315kHz 637 API_AUDIO_CUSTOMER_SIF_HHIDEV_FILTER_BW2 = 0x20, // 320kHz~415kHz 638 API_AUDIO_CUSTOMER_SIF_HHIDEV_FILTER_BW3 = 0x30, // 400kHz~495kHz 639 } API_AUDIO_CUSTOMER_SIF_HIDEV_BW; 640 641 ///< Audio mode type 642 typedef enum 643 { 644 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_INVALID = 0x00, ///< Audio Mode Invalid 645 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_MONO = 0x01, ///< Audio Mode MONO 646 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_FORCED_MONO = 0x02, ///< Audio Mode Forced MONO 647 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_G_STEREO = 0x03, ///< Audio Mode G Stereo 648 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_K_STEREO = 0x04, ///< Audio Mode K Stereo 649 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_MONO_SAP = 0x05, ///< Audio Mode MONO SAP 650 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_STEREO_SAP = 0x06, ///< Audio Mode Stereo SAP 651 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_DUAL_A = 0x07, ///< Audio Mode Dual A 652 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_DUAL_B = 0x08, ///< Audio Mode Dual B 653 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_DUAL_AB = 0x09, ///< Audio Mode Dual AB 654 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_NICAM_MONO = 0x0A, ///< Audio Mode NICAM MONO 655 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_NICAM_STEREO = 0x0B, ///< Audio Mode NICAM Stereo 656 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_NICAM_DUAL_A = 0x0C, ///< Audio Mode NICAM DUAL A 657 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_NICAM_DUAL_B = 0x0D, ///< Audio Mode NICAM DUAL B 658 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_NICAM_DUAL_AB = 0x0E, ///< Audio Mode NICAM DUAL AB 659 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_HIDEV_MONO = 0x0F, ///< Audio Mode HIDEV MONO 660 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_LEFT_LEFT = 0x10, ///< Audio Mode Left left 661 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_RIGHT_RIGHT = 0x11, ///< Audio Mode right right 662 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_LEFT_RIGHT = 0x12 ///< Audio Mode left right 663 } API_AUDIO_CUSTOMER_SIF_AUDIOMODE_TYPE; 664 665 ///< Threshold table structure 666 typedef struct 667 { 668 MS_U8 HiByteValue; ///< Threshold high-byte 669 MS_U8 LowByteValue; ///< Threshold low-byte 670 } API_AUDIO_CUSTOMER_SIF_THR_TBL_TYPE; 671 672 typedef enum 673 { 674 API_AUDIO_CUSTOMER_SIF_PAL_MONO, 675 API_AUDIO_CUSTOMER_SIF_PAL_HIDEV, 676 API_AUDIO_CUSTOMER_SIF_PAL_A2, 677 API_AUDIO_CUSTOMER_SIF_PAL_NICAM 678 }API_AUDIO_CUSTOMER_SIF_PAL_TYPE; 679 680 ///< ATV SIF Command 681 typedef enum 682 { 683 API_AUDIO_CUSTOMER_SIF_CMD_SET_STOP = 0x00, 684 API_AUDIO_CUSTOMER_SIF_CMD_SET_PLAY = 0x01, 685 API_AUDIO_CUSTOMER_SIF_CMD_ENABLE_HIDEV = 0x02, 686 API_AUDIO_CUSTOMER_SIF_CMD_SET_HIDEV_FILTER_BW_LEVEL = 0x03, 687 API_AUDIO_CUSTOMER_SIF_CMD_RESET_FC_TRACKING = 0x04, 688 API_AUDIO_CUSTOMER_SIF_CMD_ENABLE_FC_TRACKING = 0x05, 689 API_AUDIO_CUSTOMER_SIF_CMD_SET_ADC_FROM_VIF_PATH = 0x06, 690 API_AUDIO_CUSTOMER_SIF_CMD_ENABLE_AUTO_MUTE = 0x07, 691 API_AUDIO_CUSTOMER_SIF_CMD_ENABLE_BEEPER_FUNCTION = 0x08, 692 API_AUDIO_CUSTOMER_SIF_CMD_SET_BEEPER_TONE = 0x09, 693 API_AUDIO_CUSTOMER_SIF_CMD_ENABLE_AGC = 0x0A, 694 API_AUDIO_CUSTOMER_SIF_CMD_RESET_AGC = 0x0B, 695 API_AUDIO_CUSTOMER_SIF_STANDARD_RESET = 0x0C, 696 API_AUDIO_CUSTOMER_SIF_CMD_DETECT_MAIN_STD_ONLY = 0x0D, 697 API_AUDIO_CUSTOMER_SIF_CMD_ENABLE_AUTO_SOUNDMODE = 0x0E, 698 API_AUDIO_CUSTOMER_SIF_CMD_FMTX_SET_PREEMP = 0x0F, 699 API_AUDIO_CUSTOMER_SIF_CMD_SET_ENC_CMD = 0x10, 700 API_AUDIO_CUSTOMER_SIF_CMD_SET_ENC_Input_attenuation = 0x11, 701 API_AUDIO_CUSTOMER_SIF_CMD_SET_ENC_Output_scaling = 0x12, 702 API_AUDIO_CUSTOMER_SIF_CMD_SET_BTSC_Enc_M_Gain = 0x13, 703 API_AUDIO_CUSTOMER_SIF_CMD_SET_BTSC_Enc_D_Gain = 0x14, 704 API_AUDIO_CUSTOMER_SIF_CMD_SET_BTSC_Enc_SAP_Gain = 0x15, 705 API_AUDIO_CUSTOMER_SIF_CMD2_ADC_VIA_VIF_PIN = 0x01 706 } API_AUDIO_CUSTOMER_SIF_CmdType; 707 708 ///< sif carrier status define 709 typedef enum 710 { 711 // Never change the value of enumeration. Because each bit has weight. 712 API_AUDIO_CUSTOMER_SIF_E_STATE_AUDIO_NO_CARRIER = 0x00, ///< No carrier detect 713 API_AUDIO_CUSTOMER_SIF_E_STATE_AUDIO_PRIMARY_CARRIER = 0x01, ///< Carrier 1 exist 714 API_AUDIO_CUSTOMER_SIF_E_STATE_AUDIO_SECONDARY_CARRIER = 0x02, ///< Carrier 2 exist 715 API_AUDIO_CUSTOMER_SIF_E_STATE_AUDIO_NICAM = 0x04, ///< Nicam lock state 716 API_AUDIO_CUSTOMER_SIF_E_STATE_AUDIO_STEREO = 0x08, ///< A2 Stereo exist 717 API_AUDIO_CUSTOMER_SIF_E_STATE_AUDIO_BILINGUAL = 0x10, ///< A2 Dual exist 718 API_AUDIO_CUSTOMER_SIF_E_STATE_AUDIO_PILOT = 0x20, ///< A2 Pilot exist 719 API_AUDIO_CUSTOMER_SIF_E_STATE_AUDIO_DK2 = 0x40, ///< Sound standard is DK2 720 API_AUDIO_CUSTOMER_SIF_E_STATE_AUDIO_DK3 = 0x80 ///< Sound standard is DK3 721 } API_AUDIO_CUSTOMER_SIF_AUDIOSTATUS; 722 723 //======SIF Gain Type======== 724 typedef enum 725 { 726 API_AUDIO_CUSTOMER_SIF_PRESCALE_STEP_ONE_DB = 0x04, 727 API_AUDIO_CUSTOMER_SIF_SET_PRESCALE_A2_FM = 0x00, 728 API_AUDIO_CUSTOMER_SIF_SET_PRESCALE_NICAM = 0x01, 729 API_AUDIO_CUSTOMER_SIF_SET_PRESCALE_AM = 0x02, 730 API_AUDIO_CUSTOMER_SIF_SET_PRESCALE_HIDEV = 0x03, 731 API_AUDIO_CUSTOMER_SIF_SET_PRESCALE_FM_M = 0x04, 732 API_AUDIO_CUSTOMER_SIF_SET_PRESCALE_HIDEV_M = 0x05, 733 734 API_AUDIO_CUSTOMER_SIF_SET_PRESCALE_BTSC = 0x00, 735 API_AUDIO_CUSTOMER_SIF_SET_PRESCALE_BTSC_MONO = 0x01, 736 API_AUDIO_CUSTOMER_SIF_SET_PRESCALE_BTSC_STEREO = 0x02, 737 API_AUDIO_CUSTOMER_SIF_SET_PRESCALE_BTSC_SAP = 0x03, 738 739 API_AUDIO_CUSTOMER_SIF_SET_PRESCALE_FM_RADIO = 0x00, 740 API_AUDIO_CUSTOMER_SIF_SET_PRESCALE_FM_RADIO_MONO = 0x01, 741 API_AUDIO_CUSTOMER_SIF_SET_PRESCALE_FM_RADIO_STEREO = 0x02 742 743 }API_AUDIO_CUSTOMER_SIF_GAIN_TYPE; 744 745 //------------------------------------------------------------------------------------------------------------------------------------- 746 /* Decoder */ 747 //------------------------------------------------------------------------------------------------------------------------------------- 748 typedef enum 749 { 750 API_AUDIO_CUSTOMER_DOLBY_DRC_MODE_INVALID = -1, 751 API_AUDIO_CUSTOMER_DOLBY_LINE_MODE, 752 API_AUDIO_CUSTOMER_DOLBY_RF_MODE, 753 } API_AUDIO_CUSTOMER_DOLBY_DRC_MODE; 754 755 typedef enum 756 { 757 API_AUDIO_CUSTOMER_DOWNMIX_MODE_INVALID = -1, 758 API_AUDIO_CUSTOMER_LTRT_MODE, 759 API_AUDIO_CUSTOMER_LORO_MODE, 760 } API_AUDIO_CUSTOMER_DOWNMIX_MODE; 761 762 typedef enum 763 { 764 API_AUDIO_CUSTOMER_DUALMONO_MODE_INVALID = -1, 765 API_AUDIO_CUSTOMER_DUALMONO_MODE_LR, 766 API_AUDIO_CUSTOMER_DUALMONO_MODE_LL, 767 API_AUDIO_CUSTOMER_DUALMONO_MODE_RR, 768 API_AUDIO_CUSTOMER_DUALMONO_MODE_MIX, 769 } API_AUDIO_CUSTOMER_DUALMONO_MODE; 770 771 typedef enum 772 { 773 API_AUDIO_CUSTOMER_IN_PORT_INVALID = -1, 774 API_AUDIO_CUSTOMER_IN_PORT_NONE = 0, 775 API_AUDIO_CUSTOMER_IN_PORT_TP = 1, // From TPA Stream Input 776 API_AUDIO_CUSTOMER_IN_PORT_SPDIF = 2, // From SERIAL INTERFACE 0 777 API_AUDIO_CUSTOMER_IN_PORT_SIF = 3, // From Analog Front End (SIF) 778 API_AUDIO_CUSTOMER_IN_PORT_ADC = 4, // Fron ADC Input 779 API_AUDIO_CUSTOMER_IN_PORT_HDMI = 5, // From HDMI 780 API_AUDIO_CUSTOMER_IN_PORT_I2S = 6, // From I2S 781 API_AUDIO_CUSTOMER_IN_PORT_SYSTEM = 7, // From System 782 } API_AUDIO_CUSTOMER_IN_PORT; 783 784 typedef enum 785 { 786 API_AUDIO_CUSTOMER_SAMPLING_FREQ_INVALID = -1, 787 API_AUDIO_CUSTOMER_SAMPLING_FREQ_NONE = 0, 788 API_AUDIO_CUSTOMER_SAMPLING_FREQ_4_KHZ = 4000, 789 API_AUDIO_CUSTOMER_SAMPLING_FREQ_8_KHZ = 8000, 790 API_AUDIO_CUSTOMER_SAMPLING_FREQ_11_025KHZ = 11025, 791 API_AUDIO_CUSTOMER_SAMPLING_FREQ_12_KHZ = 12000, 792 API_AUDIO_CUSTOMER_SAMPLING_FREQ_16_KHZ = 16000, 793 API_AUDIO_CUSTOMER_SAMPLING_FREQ_22_05KHZ = 22050, 794 API_AUDIO_CUSTOMER_SAMPLING_FREQ_24_KHZ = 24000, 795 API_AUDIO_CUSTOMER_SAMPLING_FREQ_32_KHZ = 32000, 796 API_AUDIO_CUSTOMER_SAMPLING_FREQ_44_1KHZ = 44100, 797 API_AUDIO_CUSTOMER_SAMPLING_FREQ_48_KHZ = 48000, 798 API_AUDIO_CUSTOMER_SAMPLING_FREQ_64_KHZ = 64000, 799 API_AUDIO_CUSTOMER_SAMPLING_FREQ_88_2KHZ = 88200, 800 API_AUDIO_CUSTOMER_SAMPLING_FREQ_96_KHZ = 96000, 801 API_AUDIO_CUSTOMER_SAMPLING_FREQ_128_KHZ = 128000, 802 API_AUDIO_CUSTOMER_SAMPLING_FREQ_176_4KHZ = 176400, 803 API_AUDIO_CUSTOMER_SAMPLING_FREQ_192_KHZ = 192000, 804 API_AUDIO_CUSTOMER_SAMPLING_FREQ_768_KHZ = 768000, 805 API_AUDIO_CUSTOMER_SAMPLING_FREQ_DEFAULT = 999000, 806 } API_AUDIO_CUSTOMER_SAMPLING_FREQ; 807 808 typedef enum 809 { 810 API_AUDIO_CUSTOMER_HDMI_INDEX_INVALID = -1, 811 API_AUDIO_CUSTOMER_HDMI0 = 0, 812 API_AUDIO_CUSTOMER_HDMI1 = 1, 813 API_AUDIO_CUSTOMER_HDMI2 = 2, 814 API_AUDIO_CUSTOMER_HDMI3 = 3, 815 API_AUDIO_CUSTOMER_HDMI_SWITCH = 4, 816 API_AUDIO_CUSTOMER_HDMI_MAX = API_AUDIO_CUSTOMER_HDMI_SWITCH + 1, 817 } API_AUDIO_CUSTOMER_HDMI_INDEX; 818 819 typedef enum 820 { 821 API_AUDIO_CUSTOMER_CHANNEL_MODE_INVALID = -1, 822 API_AUDIO_CUSTOMER_CH_MODE_MONO = 0, 823 API_AUDIO_CUSTOMER_CH_MODE_JOINT_STEREO = 1, 824 API_AUDIO_CUSTOMER_CH_MODE_STEREO = 2, 825 API_AUDIO_CUSTOMER_CH_MODE_DUAL_MONO = 3, 826 API_AUDIO_CUSTOMER_CH_MODE_MULTI = 4, 827 API_AUDIO_CUSTOMER_CH_MODE_UNKNOWN = 5, 828 API_AUDIO_CUSTOMER_CH_MODE_2_1_FL_FR_LFE = 6, 829 API_AUDIO_CUSTOMER_CH_MODE_3_0_FL_FR_RC = 7, 830 API_AUDIO_CUSTOMER_CH_MODE_3_1_FL_FR_RC_LFE = 8, 831 API_AUDIO_CUSTOMER_CH_MODE_4_0_FL_FR_RL_RR = 9, 832 API_AUDIO_CUSTOMER_CH_MODE_4_1_FL_FR_RL_RR_LFE = 10, 833 API_AUDIO_CUSTOMER_CH_MODE_5_0_FL_FR_FC_RL_RR = 11, 834 API_AUDIO_CUSTOMER_CH_MODE_5_1_FL_FR_FC_RL_RR_LFE = 12, 835 } API_AUDIO_CUSTOMER_CHANNEL_MODE; 836 837 typedef struct 838 { 839 MS_U8 version; /* AAC = 0x0, HE-AACv1 = 0x1, HE-AACv2 = 0x2 */ 840 MS_U8 transmissionformat; /* LOAS/LATM = 0x0, ADTS = 0x1*/ 841 MS_U8 channelNum; 842 API_AUDIO_CUSTOMER_CHANNEL_MODE channeMode; 843 } API_AUDIO_CUSTOMER_HEAAC_ES_INFO; 844 845 typedef struct 846 { 847 MS_U8 bitRate; 848 MS_U8 sampleRate; 849 MS_U8 layer; 850 MS_U8 channelNum; 851 API_AUDIO_CUSTOMER_CHANNEL_MODE channeMode; 852 } API_AUDIO_CUSTOMER_MPEG_ES_INFO; 853 854 typedef struct 855 { 856 MS_U8 bitRate; 857 MS_U8 sampleRate; 858 MS_U8 channelNum; 859 MS_U8 EAC3; /* AC3 0x0, EAC3 0x1*/ 860 API_AUDIO_CUSTOMER_CHANNEL_MODE channeMode; 861 } API_AUDIO_CUSTOMER_AC3_ES_INFO; 862 863 //need to be consistent with XPCM_TYPE of drvAudio_if.h 864 typedef enum 865 { 866 API_AUDIO_CUSTOMER_XPCM_LPCM = 1, 867 API_AUDIO_CUSTOMER_XPCM_MS_ADPCM = 2, 868 API_AUDIO_CUSTOMER_XPCM_G711_A_LAW = 6, 869 API_AUDIO_CUSTOMER_XPCM_G711_u_LAW = 7, 870 API_AUDIO_CUSTOMER_XPCM_DVD_LPCM = 8, 871 API_AUDIO_CUSTOMER_XPCM_PRIVATE1_LPCM = 9, 872 API_AUDIO_CUSTOMER_XPCM_IMA_ADPCM = 17, 873 API_AUDIO_CUSTOMER_XPCM_IMA_ADPCM_APPLE = 18, // apple IMA4 874 } API_AUDIO_CUSTOMER_XPCM_TYPE; 875 876 //need to be consistent with Audio_XPCM_Param of drvAudio_if.h 877 typedef struct 878 { 879 API_AUDIO_CUSTOMER_XPCM_TYPE audioType; 880 MS_U32 sampleRate; 881 MS_U16 blockSize; 882 MS_U16 samplePerBlock; 883 MS_U8 channels; 884 MS_U8 bitsPerSample; 885 MS_U32 dwchannelMask; // #define SPEAKER_FRONT_LEFT 0x1 886 // #define SPEAKER_FRONT_RIGHT 0x2 887 // #define SPEAKER_FRONT_CENTER 0x4 888 // #define SPEAKER_LOW_FREQUENCY 0x8 889 // #define SPEAKER_BACK_LEFT 0x10 890 // #define SPEAKER_BACK_RIGHT 0x20 // <--- only support to here 891 // #define SPEAKER_FRONT_LEFT_OF_CENTER 0x40 892 // #define SPEAKER_FRONT_RIGHT_OF_CENTER 0x80 893 // #define SPEAKER_BACK_CENTER 0x100 894 // #define SPEAKER_SIDE_LEFT 0x200 895 // #define SPEAKER_SIDE_RIGHT 0x400 896 // #define SPEAKER_TOP_CENTER 0x800 897 // #define SPEAKER_TOP_FRONT_LEFT 0x1000 898 // #define SPEAKER_TOP_FRONT_CENTER 0x2000 899 // #define SPEAKER_TOP_FRONT_RIGHT 0x4000 900 // #define SPEAKER_TOP_BACK_LEFT 0x8000 901 // #define SPEAKER_TOP_BACK_CENTER 0x10000 902 // #define SPEAKER_TOP_BACK_RIGHT 0x20000 903 // #define SPEAKER_RESERVED 0x80000000 904 } API_AUDIO_CUSTOMER_XPCM_PARAM; 905 906 //need to be consistent with Audio_COOK_Param of drvAudio_if.h 907 typedef struct 908 { 909 #define COOK_MAX_NUM_CODECS 5 910 MS_U16 Channels[COOK_MAX_NUM_CODECS]; 911 MS_U16 Regions[COOK_MAX_NUM_CODECS]; 912 MS_U16 cplStart[COOK_MAX_NUM_CODECS]; 913 MS_U16 cplQbits[COOK_MAX_NUM_CODECS]; 914 MS_U16 FrameSize[COOK_MAX_NUM_CODECS]; 915 MS_U16 mNumCodecs; 916 MS_U16 mSamples; 917 MS_U16 mSampleRate; 918 } API_AUDIO_CUSTOMER_COOK_PARM; 919 920 typedef enum 921 { 922 API_AUDIO_CUSTOMER_TRICK_MODE_INVALID = -1, 923 API_AUDIO_CUSTOMER_TRICK_NONE = 0, ///< rate : None, TP Live Play 924 API_AUDIO_CUSTOMER_TRICK_PAUSE = 1, ///< rate : Pause, DVR Play 925 API_AUDIO_CUSTOMER_TRICK_NORMAL_PLAY = 2, ///< rate : Normal Play, DVR Play 926 API_AUDIO_CUSTOMER_TRICK_SLOW_MOTION_0P25X = 3, ///< rate : 0.25 Play 927 API_AUDIO_CUSTOMER_TRICK_SLOW_MOTION_0P50X = 4, ///< rate : 0.50 Play 928 API_AUDIO_CUSTOMER_TRICK_SLOW_MOTION_0P80X = 5, ///< rate : 0.80 Play 929 API_AUDIO_CUSTOMER_TRICK_FAST_FORWARD_1P20X = 6, ///< rate : 1.20 Play 930 API_AUDIO_CUSTOMER_TRICK_FAST_FORWARD_1P50X = 7, ///< rate : 1.50 Play 931 API_AUDIO_CUSTOMER_TRICK_FAST_FORWARD_2P00X = 8, ///< rate : 2.00 Play 932 API_AUDIO_CUSTOMER_TRICK_ONE_FRAME_DECODE = 9, ///< rate : one frame decode 933 } API_AUDIO_CUSTOMER_TRICK_MODE; 934 935 //need to be consistent with AUDIO_AAC_TYPE of drvAudio_if.h 936 typedef enum 937 { 938 API_AUDIO_CUSTOMER_AAC_TYPE_GENERIC_AAC, 939 API_AUDIO_CUSTOMER_AAC_TYPE_GENERIC_HEAACv1, 940 API_AUDIO_CUSTOMER_AAC_TYPE_GENERIC_HEAACv2, 941 API_AUDIO_CUSTOMER_AAC_TYPE_DOLBY_AAC, 942 API_AUDIO_CUSTOMER_AAC_TYPE_DOLBY_HEAACv1, 943 API_AUDIO_CUSTOMER_AAC_TYPE_DOLBY_HEAACv2, 944 } API_AUDIO_CUSTOMER_AAC_TYPE; 945 946 //------------------------------------------------------------------------------------------------------------------------------------- 947 /* Common Decoder */ 948 //------------------------------------------------------------------------------------------------------------------------------------- 949 //need to be consistent with AUDIO_DECODER_INFO_VERSION of drvAudio_if.h 950 #define API_AUDIO_CUSTOMER_COMMON_DECODER_INFO_VERSION 0x00010001 951 952 //need to be consistent with AUDIO_DECODER_Command_t of drvAudio_if.h 953 typedef struct 954 { 955 MS_U8 CmdName[64]; 956 MS_U32 CmdLen; 957 } API_AUDIO_CUSTOMER_COMMON_DECODER_COMMAND; 958 959 //need to be consistent with AUDIO_DECODER_SOURCE_TYPE of drvAudio_if.h 960 typedef enum 961 { 962 API_AUDIO_CUSTOMER_COMMON_DECODER_SOURCE_INVALID = -1, 963 API_AUDIO_CUSTOMER_COMMON_DECODER_SOURCE_NONE, 964 API_AUDIO_CUSTOMER_COMMON_DECODER_SOURCE_DTV, 965 API_AUDIO_CUSTOMER_COMMON_DECODER_SOURCE_ATV, 966 API_AUDIO_CUSTOMER_COMMON_DECODER_SOURCE_HDMI, 967 API_AUDIO_CUSTOMER_COMMON_DECODER_SOURCE_ADC, 968 API_AUDIO_CUSTOMER_COMMON_DECODER_SOURCE_MM, 969 API_AUDIO_CUSTOMER_COMMON_DECODER_SOURCE_SPDIF, 970 } API_AUDIO_CUSTOMER_COMMON_DECODER_SOURCE; 971 972 //need to be consistent with AUDIO_DECODER_PLAY_MODE of drvAudio_if.h 973 typedef enum 974 { 975 API_AUDIO_CUSTOMER_COMMON_DECODER_PLAY_MODE_INVALID = -1, 976 API_AUDIO_CUSTOMER_COMMON_DECODER_PLAY_MODE_FRAME_HAND_SHAKE, // Gstreamer , OMX 977 API_AUDIO_CUSTOMER_COMMON_DECODER_PLAY_MODE_FILE_TS, // Send data to HW demux 978 API_AUDIO_CUSTOMER_COMMON_DECODER_PLAY_MODE_ES_WITH_TS, // MM new mode 979 API_AUDIO_CUSTOMER_COMMON_DECODER_PLAY_MODE_ES, // MM old mode 980 API_AUDIO_CUSTOMER_COMMON_DECODER_PLAY_MODE_DTV, // 981 API_AUDIO_CUSTOMER_COMMON_DECODER_PLAY_MODE_OTHER, // HDMI 982 } API_AUDIO_CUSTOMER_COMMON_DECODER_PLAY_MODE; 983 984 //need to be consistent with AUDIO_DECODER_AV_SYNC_MODE of drvAudio_if.h 985 typedef enum 986 { 987 API_AUDIO_CUSTOMER_COMMON_DECODER_SYNC_MODE_INVALID = -1, 988 API_AUDIO_CUSTOMER_COMMON_DECODER_SYNC_MODE_AV_SYNC, 989 API_AUDIO_CUSTOMER_COMMON_DECODER_SYNC_MODE_FREE_RUN, 990 } API_AUDIO_CUSTOMER_COMMON_DECODER_SYNC_MODE; 991 992 //need to be consistent with AUDIO_DECODER_CODECTYPE of drvAudio_if.h 993 typedef enum 994 { 995 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_INVALID = -1, 996 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_PCM, 997 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_XPCM, 998 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_MPEG, 999 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_MP3, 1000 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_AC3, 1001 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_AC3P, 1002 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_AAC_LC, 1003 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_HEAAC_V1, 1004 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_HEAAC_V2, 1005 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_DOLBYPULSE, 1006 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_WMA, 1007 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_WMAPRO, 1008 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_RA8, 1009 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_DTS, 1010 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_FLAC, 1011 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_VORBIS, 1012 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_AMR_NB, 1013 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_AMR_WB, 1014 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_DRA, 1015 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_DTSLBR, 1016 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_DTSXLL, 1017 API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE_NULL = 0xFFFFFFFF 1018 } API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE; 1019 1020 //need to be consistent with Audio_Ringbuf of drvAudio_if.h 1021 typedef struct 1022 { 1023 MS_U32 u32BufStartAddr; 1024 MS_U32 u32BufEndAddr; 1025 MS_U32 u32BufWrPtr; 1026 MS_U32 u32BufRdPtr; 1027 MS_U32 u32BufTotalSize; 1028 MS_U32 u32BufOffset; 1029 MS_U32 u32Size; 1030 MS_U32 u32CurLevel; 1031 } API_AUDIO_CUSTOMER_COMMON_DECODER_RINGBUFFER; 1032 1033 //need to be consistent with AUDIO_DECODER_MM_Info_t of drvAudio_if.h 1034 typedef struct 1035 { 1036 API_AUDIO_CUSTOMER_COMMON_DECODER_RINGBUFFER EsCtrl; /* ES buf control */ 1037 API_AUDIO_CUSTOMER_COMMON_DECODER_RINGBUFFER PcmCtrl; /* PCM buf control */ 1038 1039 /*Input ES related*/ 1040 MS_U32 u32NeedDecodeFrmCnt; /* Need decode frame count */ 1041 MS_U64 u64TimeStamp; /* Time stamp */ 1042 1043 /*Output PCM related*/ 1044 MS_U32 u32OutputFrameCnt; /* Decoder decode done frame count */ 1045 MS_U32 u32OutputFrameCntAck; /* Inform Decoder output frame count */ 1046 } API_AUDIO_CUSTOMER_COMMON_DECODER_MM_INFO; 1047 1048 //need to be consistent with AUDIO_DECODER_Info_t of drvAudio_if.h 1049 typedef struct 1050 { 1051 char u8Name[32]; /* The DECODER name requested (only 32 bytes, if change this length, must change u8Name of API_AUDIO_CUSTOMER_COMMON_DECODER_COMMAND as well!) */ 1052 MS_U32 u32StructVersion; /* version number of this data structure */ 1053 MS_U32 u32StructSize; /* size of this data structure */ 1054 1055 MS_U32 u32Connect; /* current connect status*/ 1056 MS_U32 u32CodecType; /* Set Decoder format ex, AC3 MP3 AAC DTS etc. please refer to API_AUDIO_CUSTOMER_COMMON_DECODER_CODECTYPE */ 1057 MS_U32 u32SourceType; /* Set Audio Source, ex, DTV / HDMI /MM etc. */ 1058 MS_U32 u32OutputGroup; /* Set Decoder Output Group */ 1059 MS_U32 u32PlayMode; /* Decoder Playback mode, please refer to API_AUDIO_CUSTOMER_COMMON_DECODER_PLAY_MODE */ 1060 MS_U32 u32AfifoSource; /* Set AUDIO FIFO */ 1061 MS_U32 u32AdEnable; /* Enable AD */ 1062 MS_U32 u32AvSyncMode; /* DECODER AV SYNC MODE, please refer to API_AUDIO_CUSTOMER_COMMON_DECODER_SYNC_MODE */ 1063 1064 MS_U32 u32MadBaseAddr; 1065 MS_U32 u32Endian; 1066 MS_U32 u32Channels; 1067 MS_U32 u32BitsPerSample; 1068 MS_U32 u32SamplingRate; 1069 MS_U32 u32BitRate; 1070 MS_U32 u32DecodeFrameCnt; 1071 1072 API_AUDIO_CUSTOMER_COMMON_DECODER_MM_INFO tDecoderMMInfo; 1073 MS_U32 *pCodecExtraData; /* Extra data pointer if necessary */ 1074 MS_U32 u32CodecExtraDataSize; /* Extra data size */ 1075 } API_AUDIO_CUSTOMER_COMMON_DECODER_INFO; 1076 1077 //------------------------------------------------------------------------------------------------------------------------------------- 1078 /* Common Cmd */ 1079 //------------------------------------------------------------------------------------------------------------------------------------- 1080 //need to be consistent with AUDIO_COMMON_CMD_t of drvAudio_if.h 1081 typedef struct 1082 { 1083 MS_U8 u8StrCmd[64]; 1084 void *pData; 1085 } API_AUDIO_CUSTOMER_COMMON_CMD; 1086 1087 //need to be consistent with AUDIO_DATA_IO_INFO_t of drvAudio_if.h 1088 typedef struct 1089 { 1090 void *pData; 1091 MS_U32 u32Size; 1092 } API_AUDIO_CUSTOMER_DATA_IO_INFO; 1093 1094 //need to be consistent with AUDIO_SPDIF_PLAYBACK_CONFIG_t of drvAudio_if.h 1095 typedef struct 1096 { 1097 MS_U32 u32StructVersion; //AUDIO_SPDIF_PLAYBACK_CONFIG_VERSION 1098 MS_U32 u32StructSize; //sizeof(AUDIO_SPDIF_PLAYBACK_CONFIG_t) 1099 MS_U8 u8PreanbleFlag; 1100 MS_U32 u32SampleRate; 1101 } API_AUDIO_CUSTOMER_SPDIF_PLAYBACK_CONFIG; 1102 1103 //need to be consistent with AUDIO_SPDIF_PLAYBACK_CONFIG_VERSION of drvAudio_if.h 1104 #define API_AUDIO_CUSTOMER_SPDIF_PLAYBACK_CONFIG_VERSION 0x00010001 //[31:16]major version; [15:0]minor version 1105 1106 //------------------------------------------------------------------------------------------------------------------------------------- 1107 /* Common */ 1108 //------------------------------------------------------------------------------------------------------------------------------------- 1109 typedef enum 1110 { 1111 API_AUDIO_CUSTOMER_PARAM_TYPE_INVALID = -1, 1112 1113 //-------------------------------------------------------------------------------------- 1114 // Decoder (API_AUDIO_CUSTOMER_"ADEC"_PARAM_XXXXXXXX) 1115 //-------------------------------------------------------------------------------------- 1116 //---MPEG--- 1117 API_AUDIO_CUSTOMER_ADEC_PARAM_MPEG_SOUND_MODE = 0, 1118 1119 //---Dolby AC3P--- 1120 API_AUDIO_CUSTOMER_ADEC_PARAM_AC3P_DRC_MODE = 1, 1121 API_AUDIO_CUSTOMER_ADEC_PARAM_AC3P_DOWNMIX_MODE = 2, 1122 API_AUDIO_CUSTOMER_ADEC_PARAM_AC3P_DOLBY_BULLETIN11 = 3, 1123 API_AUDIO_CUSTOMER_ADEC_PARAM_AC3P_HDMITX_BYPASS_ENABLE = 4, 1124 API_AUDIO_CUSTOMER_ADEC_PARAM_AC3P_DRC_HIGHCUT_SCALE = 5, 1125 API_AUDIO_CUSTOMER_ADEC_PARAM_AC3P_DRC_LOWBOOT_SCALE = 6, 1126 1127 //---AAC--- 1128 API_AUDIO_CUSTOMER_ADEC_PARAM_AAC_DRC_MODE = 7, 1129 API_AUDIO_CUSTOMER_ADEC_PARAM_AAC_DOWNMIX_MODE = 8, 1130 1131 //---WMA--- 1132 API_AUDIO_CUSTOMER_ADEC_PARAM_WMA_VERSION = 9, 1133 API_AUDIO_CUSTOMER_ADEC_PARAM_WMA_CHANNELS = 10, 1134 API_AUDIO_CUSTOMER_ADEC_PARAM_WMA_SAMPLERATE = 11, 1135 API_AUDIO_CUSTOMER_ADEC_PARAM_WMA_BYTERATE = 12, 1136 API_AUDIO_CUSTOMER_ADEC_PARAM_WMA_BLOCKALIGN = 13, 1137 API_AUDIO_CUSTOMER_ADEC_PARAM_WMA_ENCOPT = 14, 1138 API_AUDIO_CUSTOMER_ADEC_PARAM_WMA_PARSINGBYAPP = 15, 1139 API_AUDIO_CUSTOMER_ADEC_PARAM_WMA_BITS_PER_SAMPLE = 16, 1140 API_AUDIO_CUSTOMER_ADEC_PARAM_WMA_CHANNELMASK = 17, 1141 API_AUDIO_CUSTOMER_ADEC_PARAM_WMA_DRC_PARAM_EXIST = 18, 1142 API_AUDIO_CUSTOMER_ADEC_PARAM_WMA_DRC_RMS_AMP_REF = 19, 1143 API_AUDIO_CUSTOMER_ADEC_PARAM_WMA_DRC_RMS_AMP_TARGET = 20, 1144 API_AUDIO_CUSTOMER_ADEC_PARAM_WMA_DRC_PEAK_AMP_REF = 21, 1145 API_AUDIO_CUSTOMER_ADEC_PARAM_WMA_DRC_PEAK_AMP_TARGET = 22, 1146 API_AUDIO_CUSTOMER_ADEC_PARAM_WMA_MAX_PACKET_SIZE = 23, 1147 1148 //---XPCM--- 1149 API_AUDIO_CUSTOMER_ADEC_PARAM_XPCM = 24, 1150 1151 //---Underrun threshold in ms, Debounce Cnt--- 1152 API_AUDIO_CUSTOMER_ADEC_PARAM_UNDERRUN_THRESHOLD_IN_MS = 26, 1153 API_AUDIO_CUSTOMER_ADEC_PARAM_UNDERRUN_DEBOUNCE_CNT = 27, 1154 1155 //-------------------------------------------------------------------------------------- 1156 // Common (API_AUDIO_CUSTOMER_"COMMON"_PARAM_XXXXXXXX) 1157 //-------------------------------------------------------------------------------------- 1158 //---Audio Dump Info--- 1159 API_AUDIO_CUSTOMER_COMMON_PARAM_DUMP_INFO_Off = 25, 1160 API_AUDIO_CUSTOMER_COMMON_PARAM_DUMP_INFO_AVSYNC = 28, 1161 API_AUDIO_CUSTOMER_COMMON_PARAM_DUMP_INFO_ADEC0 = 29, 1162 API_AUDIO_CUSTOMER_COMMON_PARAM_DUMP_INFO_IO_INFO = 30, 1163 API_AUDIO_CUSTOMER_COMMON_PARAM_DUMP_INFO_MM_FILE_AVSYNC = 31, 1164 API_AUDIO_CUSTOMER_COMMON_PARAM_DUMP_INFO_ALL = 32, 1165 API_AUDIO_CUSTOMER_COMMON_PARAM_DUMP_INFO_AUTOTEST = 33, 1166 1167 //---Common Cmd--- 1168 API_AUDIO_CUSTOMER_COMMON_PARAM_COMMON_CMD = 34, 1169 1170 //---OMX--- 1171 API_AUDIO_CUSTOMER_COMMON_PARAM_OMX_SPDIF_MODE = 35, 1172 API_AUDIO_CUSTOMER_COMMON_PARAM_OMX_SPDIF_PLAY = 36, //<--MAX is here!!! 1173 1174 //---MAX--- 1175 API_AUDIO_CUSTOMER_PARAM_MAX = API_AUDIO_CUSTOMER_COMMON_PARAM_OMX_SPDIF_PLAY + 1, 1176 } API_AUDIO_CUSTOMER_PARAM_TYPE; 1177 1178 typedef enum 1179 { 1180 API_AUDIO_CUSTOMER_ADEC_INFO_TYPE_INVALID = -1, 1181 1182 //-------------------------------------------------------------------------------------- 1183 // Decoder (API_AUDIO_CUSTOMER_"ADEC"_INFO_XXXXXXXX) 1184 //-------------------------------------------------------------------------------------- 1185 //---MPEG--- 1186 API_AUDIO_CUSTOMER_ADEC_INFO_MPEG_SOUND_MODE = 0, 1187 1188 //---Dolby AC3P--- 1189 API_AUDIO_CUSTOMER_ADEC_INFO_AC3P_DRC_MODE = 1, 1190 API_AUDIO_CUSTOMER_ADEC_INFO_AC3P_DOWNMIX_MODE = 2, 1191 API_AUDIO_CUSTOMER_ADEC_INFO_AC3P_IS_ATMOS_STREAM = 18, 1192 1193 //---AAC--- 1194 API_AUDIO_CUSTOMER_ADEC_INFO_AAC_DRC_MODE = 3, 1195 API_AUDIO_CUSTOMER_ADEC_INFO_AAC_DOWNMIX_MODE = 4, 1196 API_AUDIO_CUSTOMER_ADEC_INFO_AAC_TYPE = 23, //<--MAX is here!!! 1197 1198 //---Decode Info--- 1199 API_AUDIO_CUSTOMER_ADEC_INFO_SAMPLERATE = 9, 1200 API_AUDIO_CUSTOMER_ADEC_INFO_ACMODE = 10, 1201 API_AUDIO_CUSTOMER_ADEC_INFO_AVSYNC_STATE = 11, 1202 1203 //-------------------------------------------------------------------------------------- 1204 // Common (API_AUDIO_CUSTOMER_"COMMON"_INFO_XXXXXXXX) 1205 //-------------------------------------------------------------------------------------- 1206 //---ES--- 1207 API_AUDIO_CUSTOMER_COMMON_INFO_ES_BUFFER_BASE = 5, 1208 API_AUDIO_CUSTOMER_COMMON_INFO_ES_BUFFER_SIZE = 6, 1209 1210 //---AD_ES (Audio description)--- 1211 API_AUDIO_CUSTOMER_COMMON_INFO_AD_ES_BUFFER_BASE = 14, 1212 API_AUDIO_CUSTOMER_COMMON_INFO_AD_ES_BUFFER_SIZE = 15, 1213 1214 //---PCM--- 1215 API_AUDIO_CUSTOMER_COMMON_INFO_PCM_BUFFER_CURRENT_LEVEL = 7, 1216 API_AUDIO_CUSTOMER_COMMON_INFO_PCM_BUFFER_CURRENT_LEVEL_IN_MS = 12, 1217 1218 //---PTS--- 1219 API_AUDIO_CUSTOMER_COMMON_INFO_33BIT_PTS = 8, 1220 1221 //---OK, ERR Frame Cnt, IS_MAD_LOCK--- 1222 API_AUDIO_CUSTOMER_COMMON_INFO_OK_FRAME_CNT = 13, 1223 API_AUDIO_CUSTOMER_COMMON_INFO_ERR_FRAME_CNT = 16, 1224 API_AUDIO_CUSTOMER_COMMON_INFO_IS_MAD_LOCK = 21, 1225 1226 //---Delay--- 1227 API_AUDIO_CUSTOMER_COMMON_INFO_AUDIO_DELAY = 17, 1228 API_AUDIO_CUSTOMER_COMMON_INFO_SEDSP_MS12_DDE_DELAY = 19, 1229 API_AUDIO_CUSTOMER_COMMON_INFO_SNDR2_MS12_DDPE_DELAY = 20, 1230 API_AUDIO_CUSTOMER_COMMON_INFO_SNDR2_MS12_DAP_DELAY = 22, 1231 1232 //---MAX--- 1233 API_AUDIO_CUSTOMER_INFO_MAX = API_AUDIO_CUSTOMER_ADEC_INFO_AAC_TYPE + 1, 1234 } API_AUDIO_CUSTOMER_INFO_TYPE; 1235 1236 //------------------------------------------------------------------------------------------------------------------------------------- 1237 /* Customized patch */ 1238 //------------------------------------------------------------------------------------------------------------------------------------- 1239 typedef enum 1240 { 1241 API_AUDIO_CUSTOMIZED_PATCH_PARAM_TYPE_INVALID = -1, 1242 1243 //-------------------------------------------------------------------------------------- 1244 // (API_AUDIO_"CUSTOMIZED_PATCH"_PARAM_XXXXXXXX), PARAM: Set 1245 //-------------------------------------------------------------------------------------- 1246 //---ES Passthrough--- 1247 API_AUDIO_CUSTOMIZED_PATCH_PARAM_ES_PASSTHROUGH_DELAY_SAMPLE = 0, 1248 API_AUDIO_CUSTOMIZED_PATCH_PARAM_ES_PASSTHROUGH_PCM_SAMPLERATE = 1, 1249 API_AUDIO_CUSTOMIZED_PATCH_PARAM_ES_PASSTHROUGH_HDMI_SAMPLERATE = 2, 1250 1251 //---PCM Capture set rptr--- 1252 API_AUDIO_CUSTOMIZED_PATCH_PARAM_PCM_CAPTURE1_RPTR = 3, 1253 API_AUDIO_CUSTOMIZED_PATCH_PARAM_PCM_CAPTURE2_RPTR = 4, 1254 1255 //--- HDMI RX Bypass--- 1256 API_AUDIO_CUSTOMIZED_PATCH_PARAM_HDMI_RX_BYPASS_ENABLE = 5, 1257 1258 //---Low Latency Limiter--- 1259 API_AUDIO_CUSTOMIZED_PATCH_PARAM_LOW_LATENCY_LIMITER_ENABLE = 6, 1260 API_AUDIO_CUSTOMIZED_PATCH_PARAM_LOW_LATENCY_LIMITER_ES_THRESHOLD = 7, 1261 API_AUDIO_CUSTOMIZED_PATCH_PARAM_LOW_LATENCY_LIMITER_PCM_THRESHOLD = 8, 1262 API_AUDIO_CUSTOMIZED_PATCH_PARAM_LOW_LATENCY_LIMITER_PCM_SKIP_TARGET = 20, 1263 1264 //---DNSE--- 1265 API_AUDIO_CUSTOMIZED_PATCH_PARAM_DNSE_ENABLE = 9, 1266 API_AUDIO_CUSTOMIZED_PATCH_PARAM_DNSE_AUTO_VOLUME_CTRL = 10, 1267 API_AUDIO_CUSTOMIZED_PATCH_PARAM_DNSE_WIDE_STEREO_CTRL = 11, 1268 API_AUDIO_CUSTOMIZED_PATCH_PARAM_DNSE_WALL_FILTER_CTRL = 12, 1269 API_AUDIO_CUSTOMIZED_PATCH_PARAM_DNSE_HEADROOM_GAIN_CTRL = 13, 1270 API_AUDIO_CUSTOMIZED_PATCH_PARAM_DNSE_GAIN_ADJUSTMENT_CTRL = 14, 1271 API_AUDIO_CUSTOMIZED_PATCH_PARAM_DNSE_HARD_LIMITER_CTRL = 15, 1272 API_AUDIO_CUSTOMIZED_PATCH_PARAM_DNSE_MODE_IDENTIFICATION_CTRL = 16, 1273 1274 //---DOLBY_ATMOS_CONTROL--- 1275 API_AUDIO_CUSTOMIZED_PATCH_PARAM_DOLBY_ATMOS_ENABLE = 17, 1276 API_AUDIO_CUSTOMIZED_PATCH_PARAM_DOLBY_ATMOS_DISABLE = 18, 1277 1278 //---MCU Dump R2 Log--- 1279 API_AUDIO_CUSTOMIZED_PATCH_PARAM_MCU_DUMP_R2_LOG_ENABLE = 21, 1280 API_AUDIO_CUSTOMIZED_PATCH_PARAM_MCU_DUMP_R2_LOG_OPTION = 22, 1281 1282 //---ES Repeat Play--- 1283 API_AUDIO_CUSTOMIZED_PATCH_PARAM_ES_REPLAY_PLAY_ENABLE = 23, 1284 1285 //---HDMI_TX / SPDIF_TX SE-DSP Force DD/DDP Encode without Main sound--- 1286 API_AUDIO_CUSTOMIZED_PATCH_PARAM_HDMI_TX_SEDSP_DDE_WO_MAIN_SND_ENABLE = 24, 1287 API_AUDIO_CUSTOMIZED_PATCH_PARAM_HDMI_TX_SEDSP_DDPE_WO_MAIN_SND_ENABLE = 25, 1288 API_AUDIO_CUSTOMIZED_PATCH_PARAM_SPDIF_TX_SEDSP_DDE_WO_MAIN_SND_ENABLE = 26, 1289 API_AUDIO_CUSTOMIZED_PATCH_PARAM_SEDSP_MS12_ENC_WO_MAIN_SND_DISABLE = 27, 1290 1291 //---HDMI_ARC / SPDIF_TX SNDR2 Force DD/DDP Encode without Main sound--- 1292 API_AUDIO_CUSTOMIZED_PATCH_PARAM_HDMI_ARC_SEDSP_DDE_WO_MAIN_SND_ENABLE = 29, 1293 API_AUDIO_CUSTOMIZED_PATCH_PARAM_HDMI_ARC_SNDR2_DDPE_WO_MAIN_SND_ENABLE = 30, 1294 API_AUDIO_CUSTOMIZED_PATCH_PARAM_SNDR2_MS12_ENC_WO_MAIN_SND_DISABLE = 31, //<--MAX is here!!! 1295 1296 //---HDMI_RX_SWITCH_TO_PCM_DEBOUNCE--- 1297 API_AUDIO_CUSTOMIZED_PATCH_PARAM_HDMI_RX_SWITCH_TO_PCM_DEBOUNCE = 19, 1298 1299 //---HDMI_RX_MONITOR_EVENT_CALLBACK_REGISTER--- 1300 API_AUDIO_CUSTOMIZED_PATCH_PARAM_HDMI_RX_MONITOR_EVENT_CALLBACK_REGISTER = 28, 1301 1302 //---MAX--- 1303 API_AUDIO_CUSTOMIZED_PATCH_PARAM_MAX = API_AUDIO_CUSTOMIZED_PATCH_PARAM_SNDR2_MS12_ENC_WO_MAIN_SND_DISABLE + 1, 1304 } API_AUDIO_CUSTOMIZED_PATCH_PARAM_TYPE; 1305 1306 typedef enum 1307 { 1308 API_AUDIO_CUSTOMIZED_PATCH_INFO_TYPE_INVALID = -1, 1309 1310 //-------------------------------------------------------------------------------------- 1311 // (API_AUDIO_"CUSTOMIZED_PATCH"_INFO_XXXXXXXX), INFO: Get 1312 //-------------------------------------------------------------------------------------- 1313 //---SPDIF npcm buffer get wptr--- 1314 API_AUDIO_CUSTOMIZED_PATCH_INFO_SPDIF_NONPCM_WPTR = 0, 1315 1316 //---PCM Capture get wptr--- 1317 API_AUDIO_CUSTOMIZED_PATCH_INFO_PCM_CAPTURE1_WPTR = 1, 1318 API_AUDIO_CUSTOMIZED_PATCH_INFO_PCM_CAPTURE2_WPTR = 2, 1319 1320 //---R2 UART info--- 1321 API_AUDIO_CUSTOMIZED_PATCH_INFO_R2_UART_BUF_BASE = 3, 1322 API_AUDIO_CUSTOMIZED_PATCH_INFO_R2_UART_BUF_SIZE = 4, 1323 API_AUDIO_CUSTOMIZED_PATCH_INFO_R2_UART_BUF_WPTR = 5, 1324 1325 //---DEC PCM1 buffer info--- 1326 API_AUDIO_CUSTOMIZED_PATCH_INFO_DEC_PCM1_BUF_BASE = 6, 1327 API_AUDIO_CUSTOMIZED_PATCH_INFO_DEC_PCM1_BUF_SIZE = 7, 1328 API_AUDIO_CUSTOMIZED_PATCH_INFO_DEC_PCM1_BUF_WPTR = 8, 1329 1330 //---HDMI NPCM buffer info--- 1331 API_AUDIO_CUSTOMIZED_PATCH_INFO_HDMI_NPCM_BUF_BASE = 9, 1332 API_AUDIO_CUSTOMIZED_PATCH_INFO_HDMI_NPCM_BUF_SIZE = 10, 1333 API_AUDIO_CUSTOMIZED_PATCH_INFO_HDMI_NPCM_BUF_RPTR = 11, 1334 API_AUDIO_CUSTOMIZED_PATCH_INFO_HDMI_NPCM_BUF_WPTR = 12, 1335 1336 //---MS12 META DATA buffer info--- 1337 API_AUDIO_CUSTOMIZED_PATCH_INFO_MS12_DDPE_METADATA_BUF_BASE = 13, 1338 API_AUDIO_CUSTOMIZED_PATCH_INFO_MS12_DDPE_METADATA_BUF_SIZE = 14, 1339 API_AUDIO_CUSTOMIZED_PATCH_INFO_MS12_DDPE_METADATA_BUF_WPTR = 15, 1340 1341 //---DEC ES1 buffer info--- 1342 API_AUDIO_CUSTOMIZED_PATCH_INFO_DEC_ES1_BUF_BASE = 16, 1343 API_AUDIO_CUSTOMIZED_PATCH_INFO_DEC_ES1_BUF_SIZE = 17, 1344 API_AUDIO_CUSTOMIZED_PATCH_INFO_DEC_ES1_BUF_RPTR = 18, 1345 API_AUDIO_CUSTOMIZED_PATCH_INFO_DEC_ES1_BUF_WPTR = 19, //<--MAX is here!!! 1346 1347 //---MAX--- 1348 API_AUDIO_CUSTOMIZED_PATCH_INFO_MAX = API_AUDIO_CUSTOMIZED_PATCH_INFO_DEC_ES1_BUF_WPTR + 1, 1349 } API_AUDIO_CUSTOMIZED_PATCH_INFO_TYPE; 1350 1351 //------------------------------------------------------------------------------------------------------------------------------------- 1352 /* Clip Play for ES */ 1353 //------------------------------------------------------------------------------------------------------------------------------------- 1354 typedef struct 1355 { 1356 API_AUDIO_CUSTOMER_CODEC_TYPE clipType; 1357 MS_U32 repeatNumber; /* The play number of audio clip. */ 1358 } API_AUDIO_CUSTOMER_CLIP_DEC_PARAM; 1359 1360 typedef enum 1361 { 1362 API_AUDIO_CUSTOMER_CLIP_STATUS_INVALID = -1, 1363 API_AUDIO_CUSTOMER_CLIP_NONE = 0, 1364 API_AUDIO_CUSTOMER_CLIP_PLAY = 1, 1365 API_AUDIO_CUSTOMER_CLIP_STOP = 2, 1366 API_AUDIO_CUSTOMER_CLIP_RESUME = 3, 1367 API_AUDIO_CUSTOMER_CLIP_PAUSE = 4, 1368 API_AUDIO_CUSTOMER_CLIP_DONE = 5, 1369 } API_AUDIO_CUSTOMER_CLIP_STATUS; 1370 1371 //------------------------------------------------------------------------------------------------------------------------------------- 1372 /* Clip Play for PCM */ 1373 //------------------------------------------------------------------------------------------------------------------------------------- 1374 typedef enum 1375 { 1376 API_AUDIO_CUSTOMER_MIXER_INDEX_INVALID = -1, 1377 API_AUDIO_CUSTOMER_MIXER0 = 0, 1378 API_AUDIO_CUSTOMER_MIXER1 = 1, 1379 API_AUDIO_CUSTOMER_MIXER2 = 2, 1380 API_AUDIO_CUSTOMER_MIXER3 = 3, 1381 API_AUDIO_CUSTOMER_MIXER4 = 4, 1382 API_AUDIO_CUSTOMER_MIXER5 = 5, 1383 API_AUDIO_CUSTOMER_MIXER6 = 6, 1384 API_AUDIO_CUSTOMER_MIXER7 = 7, 1385 API_AUDIO_CUSTOMER_MIXER_MAX = API_AUDIO_CUSTOMER_MIXER7 + 1, 1386 } API_AUDIO_CUSTOMER_MIXER_INDEX; 1387 1388 typedef enum 1389 { 1390 API_AUDIO_CUSTOMER_PCM_ENDIAN_INVALID = -1, 1391 API_AUDIO_CUSTOMER_PCM_LITTLE_ENDIAN = 0, 1392 API_AUDIO_CUSTOMER_PCM_BIG_ENDIAN = 1, 1393 } API_AUDIO_CUSTOMER_PCM_ENDIAN; 1394 1395 typedef enum 1396 { 1397 API_AUDIO_CUSTOMER_PCM_SIGNED_INVALID = -1, 1398 API_AUDIO_CUSTOMER_PCM_SIGNED = 0, 1399 API_AUDIO_CUSTOMER_PCM_UNSIGNED = 1, 1400 } API_AUDIO_CUSTOMER_PCM_SIGNED_STATUS; 1401 1402 typedef struct 1403 { 1404 MS_U32 numOfChannel; /* 2 : stereo, 1 : mono, 8 : 8 channel */ 1405 MS_U32 bitPerSample; /* 16 : 16 bit, 8 : 8 bit 24 : 24bit */ 1406 API_AUDIO_CUSTOMER_SAMPLING_FREQ samplingFreq; /* 48000 : 48Khz, 44100 : 44.1Khz */ 1407 API_AUDIO_CUSTOMER_PCM_ENDIAN endianType; /* 0 : little endian, 1 : big endian */ 1408 API_AUDIO_CUSTOMER_PCM_SIGNED_STATUS signedType; /* 0 : signed PCM, 1 : unsigned PCM */ 1409 MS_U32 repeatNumber; /* The play number of audio clip. */ 1410 } API_AUDIO_CUSTOMER_CLIP_MIX_PARAM; 1411 1412 //------------------------------------------------------------------------------------------------------------------------------------- 1413 /* Gain, Mute & Delay */ 1414 //------------------------------------------------------------------------------------------------------------------------------------- 1415 typedef enum 1416 { 1417 API_AUDIO_CUSTOMER_LINE_OUT_INVALID = -1, 1418 API_AUDIO_CUSTOMER_LINE_OUT_0 = 0, 1419 API_AUDIO_CUSTOMER_LINE_OUT_1 = 1, 1420 API_AUDIO_CUSTOMER_LINE_OUT_2 = 2, 1421 API_AUDIO_CUSTOMER_LINE_OUT_3 = 3, 1422 API_AUDIO_CUSTOMER_LINE_OUT_MAX = API_AUDIO_CUSTOMER_LINE_OUT_3 + 1, 1423 } API_AUDIO_CUSTOMER_LINE_OUT_IDX; 1424 1425 //------------------------------------------------------------------------------------------------------------------------------------- 1426 /* SPK Out LR Mode */ 1427 //------------------------------------------------------------------------------------------------------------------------------------- 1428 typedef enum 1429 { 1430 API_AUDIO_CUSTOMER_SNDOUT_LRMODE_INVALID = -1, 1431 API_AUDIO_CUSTOMER_SNDOUT_LRMODE_LR = 0, 1432 API_AUDIO_CUSTOMER_SNDOUT_LRMODE_LL = 1, 1433 API_AUDIO_CUSTOMER_SNDOUT_LRMODE_RR = 2, 1434 API_AUDIO_CUSTOMER_SNDOUT_LRMODE_MIX = 3, 1435 } API_AUDIO_CUSTOMER_SNDOUT_LRMODE; 1436 1437 //------------------------------------------------------------------------------------------------------------------------------------- 1438 /* AENC */ 1439 //------------------------------------------------------------------------------------------------------------------------------------- 1440 typedef enum 1441 { 1442 API_AUDIO_CUSTOMER_AENC_INDEX_INVALID = -1, 1443 API_AUDIO_CUSTOMER_AENC0 = 0, 1444 API_AUDIO_CUSTOMER_AENC1 = 1, 1445 API_AUDIO_CUSTOMER_AENC_MAX = API_AUDIO_CUSTOMER_AENC1 + 1, 1446 } API_AUDIO_CUSTOMER_AENC_INDEX; 1447 1448 typedef enum 1449 { 1450 API_AUDIO_CUSTOMER_AENC_STATUS_INVALID = -1, 1451 API_AUDIO_CUSTOMER_AENC_STATUS_STOP = 0, 1452 API_AUDIO_CUSTOMER_AENC_STATUS_PLAY = 1, 1453 API_AUDIO_CUSTOMER_AENC_STATUS_ABNORMAL = 2, 1454 } API_AUDIO_CUSTOMER_AENC_STATUS; 1455 1456 typedef enum 1457 { 1458 API_AUDIO_CUSTOMER_AENC_ENCODING_FORMAT_INVALID = -1, 1459 API_AUDIO_CUSTOMER_AENC_ENCODE_MP3 = 0, /* Encode MP3 format */ 1460 API_AUDIO_CUSTOMER_AENC_ENCODE_AAC = 1, /* Encode AAC format */ 1461 } API_AUDIO_CUSTOMER_AENC_ENCODING_FORMAT; 1462 1463 typedef enum 1464 { 1465 API_AUDIO_CUSTOMER_AENC_CHANNEL_INVALID = -1, 1466 API_AUDIO_CUSTOMER_AENC_MONO = 0, 1467 API_AUDIO_CUSTOMER_AENC_STEREO = 1, 1468 } API_AUDIO_CUSTOMER_AENC_CHANNEL; 1469 1470 typedef enum 1471 { 1472 API_AUDIO_CUSTOMER_AENC_BITRATE_INVALID = -1, 1473 API_AUDIO_CUSTOMER_AENC_BIT_48K = 0, 1474 API_AUDIO_CUSTOMER_AENC_BIT_56K = 1, 1475 API_AUDIO_CUSTOMER_AENC_BIT_64K = 2, 1476 API_AUDIO_CUSTOMER_AENC_BIT_80K = 3, 1477 API_AUDIO_CUSTOMER_AENC_BIT_112K = 4, 1478 API_AUDIO_CUSTOMER_AENC_BIT_128K = 5, 1479 API_AUDIO_CUSTOMER_AENC_BIT_160K = 6, 1480 API_AUDIO_CUSTOMER_AENC_BIT_192K = 7, 1481 API_AUDIO_CUSTOMER_AENC_BIT_224K = 8, 1482 API_AUDIO_CUSTOMER_AENC_BIT_256K = 9, 1483 API_AUDIO_CUSTOMER_AENC_BIT_320K = 10, 1484 } API_AUDIO_CUSTOMER_AENC_BITRATE; 1485 1486 typedef struct 1487 { 1488 //Get Info for debugging on DDI 1489 API_AUDIO_CUSTOMER_AENC_STATUS status; // current ENC Status 1490 API_AUDIO_CUSTOMER_AENC_ENCODING_FORMAT codec; // current ENC Codec 1491 1492 MS_U32 errorCount; // current ENC error counter 1493 MS_U32 inputCount; // current ENC input counter - we distinguish whether or not enter data from input. 1494 MS_U32 underflowCount; // current ENC underflowCnt in kernel space - we distinguish which module have problem between muxer and encdoer 1495 MS_U32 overflowCount; // current ENC overflowCnt - we distinguish 1496 1497 //Set Info - it is applied realtime, no matter stop&start 1498 API_AUDIO_CUSTOMER_AENC_CHANNEL channel; // number of channel 1499 API_AUDIO_CUSTOMER_AENC_BITRATE bitrate; // bitrate 1500 } API_AUDIO_CUSTOMER_AENC_INFO; 1501 1502 //------------------------------------------------------------------------------------------------------------------------------------- 1503 /* PCM(Sound Bar Buletooth, PCM Capture) */ 1504 //------------------------------------------------------------------------------------------------------------------------------------- 1505 1506 1507 //------------------------------------------------------------------------------------------------------------------------------------- 1508 /* PCM IO */ 1509 //------------------------------------------------------------------------------------------------------------------------------------- 1510 typedef struct 1511 { 1512 MS_U8 u8Name[32]; /* The PCM name requested (only 32 bytes, if change this length, must change u8Name of AUDIO_PCM_INFO_t as well!) */ 1513 MS_U8 u8MultiChFlag; /* it is TRUE when request for a multi-channel PCM IO */ 1514 MS_U32 u32BufferDuration; /* PCM buffer size in mini-second unit, and up to a maximun size */ 1515 MS_U32 u32Channel; /* PCM channel number */ 1516 MS_U32 u32SampleRate; /* PCM sample rate */ 1517 MS_U32 u32BitWidth; /* PCM sample's bit width of each channel */ 1518 MS_U32 u32BigEndian; /* PCM endien, TRUE means Big Endien, FALSE means Little Endien */ 1519 } API_AUDIO_CUSTOMER_PCMIO_PARAM; 1520 1521 typedef enum 1522 { 1523 API_AUDIO_CUSTOMER_PCM_CMD_ALL, /* GET */ 1524 API_AUDIO_CUSTOMER_PCM_CMD_NONBLOCKING, /* SET / GET */ 1525 API_AUDIO_CUSTOMER_PCM_CMD_MULTICH, /* GET */ 1526 API_AUDIO_CUSTOMER_PCM_CMD_MIXING, /* GET */ 1527 API_AUDIO_CUSTOMER_PCM_CMD_MIXINGGROUP, /* SET / GET */ 1528 API_AUDIO_CUSTOMER_PCM_CMD_BUFFER, /* GET only */ 1529 API_AUDIO_CUSTOMER_PCM_CMD_BUFFERDURATION, /* SET / GET */ 1530 API_AUDIO_CUSTOMER_PCM_CMD_READPTR, /* GET only */ 1531 API_AUDIO_CUSTOMER_PCM_CMD_WRITEPTR, /* GET only */ 1532 API_AUDIO_CUSTOMER_PCM_CMD_CHANNEL, /* SET / GET */ 1533 API_AUDIO_CUSTOMER_PCM_CMD_SAMPLERATE, /* SET / GET */ 1534 API_AUDIO_CUSTOMER_PCM_CMD_BITWIDTH, /* SET / GET */ 1535 API_AUDIO_CUSTOMER_PCM_CMD_BIGENDIEN, /* SET / GET */ 1536 API_AUDIO_CUSTOMER_PCM_CMD_TIMESTAMP, /* SET / GET */ 1537 API_AUDIO_CUSTOMER_PCM_CMD_WEIGHTING, /* SET / GET */ 1538 API_AUDIO_CUSTOMER_PCM_CMD_VOLUME, /* SET / GET */ 1539 API_AUDIO_CUSTOMER_PCM_CMD_BUFFERLEVEL, /* GET only */ 1540 API_AUDIO_CUSTOMER_PCM_CMD_MUTE, /* SET / GET */ 1541 API_AUDIO_CUSTOMER_PCM_CMD_BUFFERSIZE, /* GET only */ 1542 } API_AUDIO_CUSTOMER_PCM_COMMAND; 1543 1544 //------------------------------------------------------------------------------------------------------------------------------------- 1545 /* MM New Mode */ 1546 //------------------------------------------------------------------------------------------------------------------------------------- 1547 typedef enum 1548 { 1549 API_AUDIO_CUSTOMER_MEMORY_BASE = 0x0, ///< for audio DDR Base 1550 API_AUDIO_CUSTOMER_MEMORY_SIZE = 0x1, ///< for audio DDR Size 1551 } API_AUDIO_CUSTOMER_DDRINFO; 1552 1553 typedef struct 1554 { 1555 MS_U32 aes_base_addr; ///< base address of ES buffer 1556 MS_U32 aes_end_addr; ///< end address of ES buffer 1557 MS_U32 aes_BufSize; ///< ES buffer size 1558 MS_U32 aes_write_addr; ///< write pointer 1559 MS_U32 aes_read_addr; ///< read pointer 1560 MS_U32 aes_freeSpace; ///< free space of ES buffer 1561 MS_U32 aes_level; ///< level of ES buffer 1562 MS_U32 aes_ptsCnt; ///< count of total received PTS 1563 MS_U64 aes_lastPTS; ///< last received PTS 1564 } API_AUDIO_CUSTOMER_AES_INFO; 1565 1566 //------------------------------------------------------------------------------------------------------------------------------------- 1567 /* Mstar Sound Effect */ 1568 //------------------------------------------------------------------------------------------------------------------------------------- 1569 typedef enum 1570 { 1571 API_AUDIO_CUSTOMER_GEQ, 1572 API_AUDIO_CUSTOMER_PEQ, 1573 API_AUDIO_CUSTOMER_HPF, 1574 API_AUDIO_CUSTOMER_DRC, 1575 API_AUDIO_CUSTOMER_AVC, 1576 API_AUDIO_CUSTOMER_BALANCE, 1577 API_AUDIO_CUSTOMER_MSTAR_SE_MAX, 1578 } API_AUDIO_CUSTOMER_MSTAR_SE_TYPE; 1579 1580 typedef struct 1581 { 1582 MS_U8 band; ///< band 1583 MS_U32 a0; ///< a0 1584 MS_U32 a1; ///< a1 1585 MS_U32 a2; ///< a2 1586 MS_U32 b1; ///< b1 1587 MS_U32 b2; ///< b2 1588 MS_BOOL enable; ///< PEQ band enable 1589 MS_U8 scale; ///< scale 1590 } API_AUDIO_CUSTOMER_MSTAR_PEQ_COEF; 1591 1592 typedef struct 1593 { 1594 MS_U32 a0; ///< a0 1595 MS_U32 a1; ///< a1 1596 MS_U32 a2; ///< a2 1597 MS_U32 b1; ///< b1 1598 MS_U32 b2; ///< b2 1599 } API_AUDIO_CUSTOMER_MSTAR_HPF_COEF; 1600 1601 typedef enum 1602 { 1603 API_AUDIO_CUSTOMER_AVC_LINEAR, 1604 API_AUDIO_CUSTOMER_AVC_SHIFT, 1605 API_AUDIO_CUSTOMER_AVC_NORMAL, 1606 API_AUDIO_CUSTOMER_AVC_R, 1607 } API_AUDIO_CUSTOMER_MSTAR_AVC_MODE; 1608 1609 //------------------------------------------------------------------------------------------------------------------------------------- 1610 /* Advanced Sound Effect */ 1611 //------------------------------------------------------------------------------------------------------------------------------------- 1612 1613 // Description: 1614 typedef enum // Enable SRS Main function, Only when the hashkey is correct, 1615 { // the SRS main function will be activated sucessfully. 1616 API_AUDIO_CUSTOMER_DTS_SE_INVALID = -1, // ============================================================================ 1617 API_AUDIO_CUSTOMER_DTS_SE_TSXT = 0, // for SRS TSXT Hashkey 1618 API_AUDIO_CUSTOMER_DTS_SE_TSHD = 1, // for SRS TSHD Hashkey 1619 API_AUDIO_CUSTOMER_DTS_SE_THEATERSOUND = 2, // for SRS TheaterSound HD Hashkey 1620 API_AUDIO_CUSTOMER_DTS_SE_PURESND = 3, // for SRS Pure Sound Hashkey or for DTS StudioSound 3D Hashkey. 1621 API_AUDIO_CUSTOMER_DTS_SE_STUDIOSOUND_3D = 4, /*<-MAX*/ // for DTS StudioSound 3D Hashkey 1622 API_AUDIO_CUSTOMER_DTS_SE_MAX = API_AUDIO_CUSTOMER_DTS_SE_STUDIOSOUND_3D + 1, 1623 } API_AUDIO_CUSTOMER_DTS_SE_TYPE; 1624 1625 // ________________________________________________________________________________________ 1626 // |Hashkey: |Description: 1627 // |_____________________________________|__________________________________________________ 1628 typedef enum // |SRS_TSXT|SRS_TSHD|SRS_TheaterSound_HD|Enable/Disable 1629 { // | | |DTS_StudioSound_3D |for the following: 1630 API_AUDIO_CUSTOMER_DTS_SE_UNIT_INVALID = -1, // |________|________|___________________| 1631 // | TSHD | 1632 // |________ ________ ___________________|__________________________________________________ 1633 API_AUDIO_CUSTOMER_DTS_SE_UNIT_THEATERSOUND_TOTAL = 0, // | V | V | V |DTS StudioSound main function 1634 API_AUDIO_CUSTOMER_DTS_SE_UNIT_THEATERSOUND_TSHD = 1, // | V | V | V |TruSurround HD 1635 API_AUDIO_CUSTOMER_DTS_SE_UNIT_THEATERSOUND_TSHD_DEFINITION = 2, // | | V | V |Definition processing component of TruSurround HD 1636 API_AUDIO_CUSTOMER_DTS_SE_UNIT_THEATERSOUND_TSHD_DC = 3, // | V | V | V |Dialog Clarity processing component of TruSurround HD 1637 API_AUDIO_CUSTOMER_DTS_SE_UNIT_THEATERSOUND_TSHD_SURR = 4, // | V | V | V |Surround processing component of TruSurround HD 1638 API_AUDIO_CUSTOMER_DTS_SE_UNIT_THEATERSOUND_TSHD_TRUBASS = 5, // | V | V | V |TruBass processing component of TruSurround HD 1639 API_AUDIO_CUSTOMER_DTS_SE_UNIT_THEATERSOUND_TSHD_TRUBASS_LVL_INDPT = 6, // | V | V | V |Level Independent processing component of TruBass 1640 // |________|________|___________________| 1641 // | CC3D Controls (CC3D must enable)| 1642 // |________ ________ ___________________| 1643 API_AUDIO_CUSTOMER_DTS_SE_UNIT_THEATERSOUND_CC3D = 7, // | V | V | V |CC3D processing 1644 API_AUDIO_CUSTOMER_DTS_SE_UNIT_THEATERSOUND_CC3D_DEPTH_PROCESS = 8, // | | | V |Depth processing in CC3D 1645 // |________|________|___________________| 1646 // | TRUVOLUME HD | 1647 // |________ ________ ___________________| 1648 API_AUDIO_CUSTOMER_DTS_SE_UNIT_THEATERSOUND_TRUVOLUME = 9, // | | | V |TruVolume processing 1649 API_AUDIO_CUSTOMER_DTS_SE_UNIT_THEATERSOUND_TRUVOLUME_NORMALIZER = 10, // | | | V |it will detect the level of the incoming signal and if necessary, dynamically boosts the signal level to ensure that it is always within the operational range of TruVolume. 1650 // |________|________|___________________| 1651 // | TRUDIALOG | 1652 // |_____________________________________| 1653 API_AUDIO_CUSTOMER_DTS_SE_UNIT_THEATERSOUND_TRUDIALOG = 11, // | | | V |TruDialog processing 1654 // |________|________|___________________| 1655 // | TBHDX | 1656 // |________ ________ ___________________| 1657 API_AUDIO_CUSTOMER_DTS_SE_UNIT_THEATERSOUND_CC3D_TBHDX = 12, // | | | V |TruBass HDX low frequency compensation processing 1658 // |________|________|___________________| 1659 // | GEQ | 1660 // |________ ________ ___________________| 1661 API_AUDIO_CUSTOMER_DTS_SE_UNIT_THEATERSOUND_GEQ = 13, // | | | V |Graphic EQ processing 1662 // |________|________|___________________| 1663 // | PURESOUND HRADLIMITER | 1664 // |________ ________ ___________________| 1665 API_AUDIO_CUSTOMER_DTS_SE_UNIT_PURESOUND_HL = 14, // | | | V |HardLimiter processing 1666 // |________|________|___________________| 1667 // | PURESOUND AEQ | 1668 // |________ ________ ___________________| 1669 API_AUDIO_CUSTOMER_DTS_SE_UNIT_PURESOUND_AEQ = 15, // | | | V |Aective EQ processing 1670 // |________|________|___________________| 1671 // | PURESOUND HPF | 1672 // |________ ________ ___________________| 1673 API_AUDIO_CUSTOMER_DTS_SE_UNIT_PURESOUND_HPF = 16, /*<-MAX*/ // | | |�@�@�@�@V |High Pass Filter processing 1674 // |________|________|___________________| 1675 1676 API_AUDIO_CUSTOMER_DTS_SE_UNIT_MAX = API_AUDIO_CUSTOMER_DTS_SE_UNIT_PURESOUND_HPF + 1, 1677 } API_AUDIO_CUSTOMER_DTS_SE_UNIT_TYPE; 1678 1679 // _____________________________________ 1680 // |Hashkey: | 1681 // |________ ________ ___________________|__________________________________________________________________________________________________________ 1682 typedef enum // |SRS_TSXT|SRS_TSHD|SRS_TheaterSound_HD| 1683 { // | | |DTS_StudioSound_3D |Default Range Description 1684 API_AUDIO_CUSTOMER_DTS_SE_PARAM_INVALID = -1, // |________|________|___________________|__________________________________________________________________________________________________________ 1685 // | TSHD | 1686 // |________ ________ ___________________| 1687 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TSHD_INPUT_GAIN_FXP24 = 0, // | V | V | V |1.0 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Trusurround input gain. Input Gain. Adjusts the level of the signal at the input to TSHD processing. 1688 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TSHD_DEFINITION_CTRL_FXP24 = 1, // | | V | V |0.6 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Trusurround definition control. Definition Level. Controls the level of high frequency enhancement. 1689 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TSHD_DC_LEVEL_CTRL_FXP24 = 2, // | V | V | V |0.5 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Trusurround dialog clarity control. Dialog Clarity Level. Establishes the amount of dialog clarity enhancement that is applied to the audio signal. 1690 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TSHD_SURR_LEVEL_CTRL_FXP24 = 3, // | V | V | V |0.6 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Trusurround surround level. Surround Level. Controls the overall mix level of the surround channels. 1691 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TSHD_TRUBASS_CTRL_FXP24 = 4, // | V | V | V |0.3 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Trubass HD front level control 1692 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TSHD_TRUBASS_COMPR_CTRL_FXP24 = 5, // | V | V | V |0.25 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Trubass HD compressor control 1693 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TSHD_TRUBASS_PROCESS_MODE = 6, // | V | V | V |1:stereo 0:mono 1:stereo Trubass HD process mode 1694 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TSHD_TRUBASS_SPKSIZE = 7, // | V | V | V |8:Custom 0 ~ 8 Trubass HD speaker size. 0:40Hz, 1:60Hz, 2:100Hz, 3:150Hz, 4:200Hz, 5:250Hz, 6:300Hz, 7:400Hz, 8:Custom (default), Trubass HD speaker size 1695 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TSHD_TRUBASS_CUS_SPKSIZE = 8, // | V | V | V |13:150Hz 0 ~ 38 (20Hz ~ 400 Hz, step:10Hz) Trubass HD customer audio speaker size 1696 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TSHD_TRUBASS_CUS_SPKSIZE_ANALYSIS = 9, // | V | V | V |10:120Hz 0 ~ 38 (20Hz ~ 400 Hz, step:10Hz) Trubass HD customer analysis frequency 1697 // |________|________|___________________| 1698 // | Main Controls | 1699 // |________ ________ ___________________| 1700 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_MAIN_CTRL_HEADROOM_GAIN_FXP24 = 10, // | | | V |1.0 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Headroom Gain. Provides headroom for intermediate calculations so as to avoid clipping.The value is typically set to the inverse of the setting for the Boost Gain control of the HardLimiter. Note that the value of this control must differ for TVOL on versus off. 1701 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_MAIN_CTRL_BYPASS_GAIN_FXP24 = 11, // | | | V |1.0 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Bypass Gain. Adjusts the signal level when TheaterSound HD/DTS StudioSound 3D processing is turned off. 1702 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_MAIN_CTRL_CC3D_PROCESS_PATH = 12, // | | | V |2:PATH_1 0 ~ 2 Processing Path. Selects the processing path: PATH_NONE:NONE, PATH_0:csdecoder + trudiag + tshd, PATH_1:trudiag + cc3d (depth + stereo tshd). 0:SRS_TS3D_PROCESSINGPATH_NONE, 1:SRS_TS3D_PROCESSINGPATH_0; 2:SRS_TS3D_PROCESSINGPATH_1. 1703 // |________|________|___________________| 1704 // | CC3D Controls | 1705 // |________ ________ ___________________| 1706 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_CC3D_INPUT_GAIN_FXP24 = 13, // | | | V |1.0 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Input Gain. Adjusts the level of the signal at the input to CC3D processing. 1707 // |________|________|___________________| 1708 // | TRUVOLUME HD | 1709 // |________ ________ ___________________| 1710 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TRUVOLUME_MODE = 14, // | | | V |1:SRS_TVOLHD_NORM 0 ~ 1 TruVolume HD Mode. Selects the mode of operation for TruVolume HD.There are two modes supported:Light and Normal.The two modes represent different tunings of the algorithm from lighter to more aggressive. 0:SRS_TVOLHD_LIGHT, 1:SRS_TVOLHD_NORM. 1711 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TRUVOLUME_REF_LEVEL_FXP24 = 15, // | | | V |0.125 0x2C04 ~ 0x7FFFFF (1.0e-3 ~ 1.0) LKFS. Sets the desired absolute loudness level of the signal 1712 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TRUVOLUME_MAX_GAIN_FXP24 = 16, // | | | V |2.0 0x1FFFFF ~ 0xFFFFFE0 (0.25 ~ 32.00) Max Gain. Controls the maximum amount that the signal may be increased. 1713 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TRUVOLUME_NORMALIZE_THRESH_FXP24 = 17, // | | | V |0.25 0x346 ~ 0x3FFFFF (1.0e-4 ~ 0.5) Norm Threshold. Determines if the gain boost value is greater than 1 or not. 1714 // |________|________|___________________| 1715 // | TRUDIALOG | 1716 // |________ ________ ___________________| 1717 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TRUDIALOG_INPUT_GAIN_FXP24 = 18, // | | | V |1.0 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Input Gain. Adjusts the level of the signal at the input. 1718 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TRUDIALOG_CLARITY_GAIN_FXP24 = 19, // | | | V |0.5 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Clarity Gain. Adjusts the amount of vocal enhancement that is applied to the audio signal. 1719 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_TRUDIALOG_PROCESS_GAIN_FXP24 = 20, // | | | V |2.82 0x3FFFFF ~ 0x17FFFFD (0.5 ~ 3.0) Process Gain. Controls how much of the calculated final outout gain is applied to the output signal, effectively controlling how much the process will raise the dialog signal. 1720 // |________|________|___________________| 1721 // | TBHDX | 1722 // |________ ________ ___________________| 1723 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_CC3D_TBHDX_INPUT_GAIN_FXP24 = 21, // | | | V |1.0 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Input Gain. Adjusts the amount of vocal enhancement that is applied to the audio signal. 1724 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_CC3D_TBHDX_BASSLEVEL_FXP24 = 22, // | | | V |0.333521432 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Bass Level. Determines the level of psychoacoustic bass enhancement. 1725 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_CC3D_TBHDX_SPEAKERSIZE = 23, // | | | V |2:100Hz 0 ~ 10 Speaker Size. The range of low frequency limitations in the speakers that TruBass HDX is compensating for. 0:40Hz, 1:60Hz, 2:100Hz, 3:120HZ, 4:150Hz, 5:200Hz, 6:250Hz, 7:300Hz, 8:400Hz, 9:500Hz, 10:600Hz. 1726 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_CC3D_TBHDX_HP_ORDER = 24, // | | | V |8 1 ~ 8 High Pass Order. The slope of the filter that removes the low frequencies that cannot be replicated by the speaker is adjusted with this control. 1727 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_CC3D_TBHDX_DYNAMICS_FXP24 = 25, // | | | V |0.3 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Dynamics. Modifies the amount of dynamics processing applied to the signal.The ratio/range of the compressor is dynamically adjusted as the incoming signal is monitored. 1728 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_CC3D_TBHDX_MODE = 26, // | | | V |1 0:MONO 1:STEREO Mode. Determines if the left and right signals are summed and processed then sent to both channels or if the left and right channels are processed by TruBass HDX separetely. 0:SRS_TBHDX_MODE_MONO, 1:SRS_TBHDX_MODE_STEREO 1729 // |________|________|___________________| 1730 // | CS DECODER | 1731 // |________ ________ ___________________| 1732 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_CS_INPUT_GAIN_FXP24 = 27, // | | | V |1.0 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Input Gain. Adjusts the level of the signal at the input to CS Decoder. 1733 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_CS_PROCESS_MODE = 28, // | | | V |1:music 0:cinema, 1:music Mode. Specifies the format of the source material. 1734 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_CS_LR_OUTPUT_GAIN_FXP24 = 29, // | | | V |2.0 0xB645A ~ 0x1FFFFFC (0.089 ~ 4.0) L/R Output Gain. Controls the output level of the front channel of CS Decoder. 1735 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_CS_LsRs_OUTPUT_GAIN_FXP24 = 30, // | | | V |1.0 0xB645A ~ 0x1FFFFFC (0.089 ~ 4.0) Ls/Rs Output Gain. Controls the output level of the surround channel of CS Decoder. 1736 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_CS_Center_OUTPUT_GAIN_FXP24 = 31, // | | | V |2.0 0xB645A ~ 0x1FFFFFC (0.089 ~ 4.0) Center Output Gain. Controls the output level of the center channel of CS Decoder. 1737 // |________|________|___________________| 1738 // | GEQ | 1739 // |________ ________ ___________________| 1740 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_GEQ_INPUT_GAIN_FXP24 = 32, // | | | V |1.0 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Input Gain. Adjusts the level of the signal at the input to Graphic EQ processing. 1741 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_GEQ_BAND0_GAIN_FXP24 = 33, // | | | V |SRS_GEQ_PLUS_05DB 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) Band Gain[5]. Adjusts the gain for each band.A different control is available for each band. 1742 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_GEQ_BAND1_GAIN_FXP24 = 34, // | | | V |SRS_GEQ_PLUS_03DB 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) SRS_GEQ_MINUS_15DB:0.177, SRS_GEQ_MINUS_11DB:0.282, SRS_GEQ_MINUS_07DB:0.45, SRS_GEQ_MINUS_03DB:0.71, SRS_GEQ_PLUS_01DB:1.12, SRS_GEQ_PLUS_05DB:1.78, SRS_GEQ_PLUS_09DB 2.82, SRS_GEQ_PLUS_13DB:4.47 1743 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_GEQ_BAND2_GAIN_FXP24 = 35, // | | | V |SRS_GEQ_0DB 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) SRS_GEQ_MINUS_14DB:0.20 , SRS_GEQ_MINUS_10DB:0.316, SRS_GEQ_MINUS_06DB:0.50, SRS_GEQ_MINUS_02DB:0.79, SRS_GEQ_PLUS_02DB:1.26, SRS_GEQ_PLUS_06DB:2.00, SRS_GEQ_PLUS_10DB 3.16, SRS_GEQ_PLUS_14DB:5.01 1744 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_GEQ_BAND3_GAIN_FXP24 = 36, // | | | V |SRS_GEQ_PLUS_03DB 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) SRS_GEQ_MINUS_13DB:0.224, SRS_GEQ_MINUS_09DB:0.355, SRS_GEQ_MINUS_05DB:0.56, SRS_GEQ_MINUS_01DB:0.89, SRS_GEQ_PLUS_03DB:1.41, SRS_GEQ_PLUS_07DB:2.24, SRS_GEQ_PLUS_11DB 3.55, SRS_GEQ_PLUS_15DB:5.63 1745 API_AUDIO_CUSTOMER_DTS_SE_PARAM_THEATERSOUND_GEQ_BAND4_GAIN_FXP24 = 37, // | | | V |SRS_GEQ_PLUS_05DB 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) SRS_GEQ_MINUS_12DB:0.251, SRS_GEQ_MINUS_08DB:0.40 , SRS_GEQ_MINUS_04DB:0.63, SRS_GEQ_0DB:1.00 , SRS_GEQ_PLUS_04DB:1.58, SRS_GEQ_PLUS_08DB:2.51, SRS_GEQ_PLUS_12DB 4.00, 1746 // |________|________|___________________| 1747 // | PURESOUND HRADLIMITER | 1748 // |________ ________ ___________________| 1749 API_AUDIO_CUSTOMER_DTS_SE_PARAM_PURESOUND_HL_INPUT_GAIN_FXP24 = 38, // | | | V |1.0 0x0 ~ 0x1FFFFFC (0.0 ~ 4.0) HardLimiter Input Gain. Adjusts the value used for adjusting the audio level after the HardLimiter process 1750 API_AUDIO_CUSTOMER_DTS_SE_PARAM_PURESOUND_HL_OUTPUT_GAIN_FXP24 = 39, // | | | V |1.0 0x0 ~ 0x1FFFFFC (0.0 ~ 4.0) HardLimiter Output Gain. Adjusts the value used for adjusting the audio level before the HardLimiter process. 1751 API_AUDIO_CUSTOMER_DTS_SE_PARAM_PURESOUND_HL_BYPASS_GAIN_FXP24 = 40, // | | | V |1.0 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) HardLimiter Bypass Gain. Adjusts the value used for adjusting the audio level when disable the HardLimiter process. 1752 API_AUDIO_CUSTOMER_DTS_SE_PARAM_PURESOUND_HL_LIMITERBOOST_FXP24 = 41, // | | | V |2.5 0x7FFFFF ~ 0xFFFFFE0 (1.0 ~ 32.0) (20*log(v/32))dB, v is 1.0 ~ 32.0. so 32.0 is 0dB (MAX). HardLimiter BoostGain. Modifies the signal level within the context of the HardLimiter, so that the signal will not exceed the Hard Limit Level parameter 1753 API_AUDIO_CUSTOMER_DTS_SE_PARAM_PURESOUND_HL_HARDLIMIT_CTRL_FXP24 = 42, // | | | V |1.0 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) HardLimiter limit level. 1754 API_AUDIO_CUSTOMER_DTS_SE_PARAM_PURESOUND_HL_DELAY = 43, // | | | V |14 6 ~ 48 HardLimiter Delay Length. Specifies the length of the look-ahead delay line utilized in the HardLimiter algorithm. 1755 // |________|________|___________________| 1756 // | PURESOUND AEQ | 1757 // |________ ________ ___________________| 1758 API_AUDIO_CUSTOMER_DTS_SE_PARAM_PURESOUND_AEQ_INPUT_GAIN_FXP24 = 44, // | | | V |1.0 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) AEQ Input Gain. Adjusts the value used for adjusting the audio level after the AEQ process. 1759 API_AUDIO_CUSTOMER_DTS_SE_PARAM_PURESOUND_AEQ_OUTPUT_GAIN_FXP24 = 45, // | | | V |1.0 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) AEQ Output Gain. Adjusts the value used for adjusting the audio level before the AEQ process. 1760 API_AUDIO_CUSTOMER_DTS_SE_PARAM_PURESOUND_AEQ_BYPASS_GAIN_FXP24 = 46, // | | | V |1.0 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) AEQ Bypass Gain. Adjusts the value used for adjusting the audio level when disable the AEQ process. 1761 // |________|________|___________________| 1762 // | PURESOUND HPF | 1763 // |________ ________ ___________________| 1764 API_AUDIO_CUSTOMER_DTS_SE_PARAM_PURESOUND_HPF_FREQUENCY = 47, // | | | V |1 0 ~ 3 HPF Frequency. 0:60Hz, 1:80Hz, 2:100Hz, 3:120Hz 1765 // |________|________|___________________| 1766 // | PURESOUND hash only | 1767 // |________ ________ ___________________| 1768 API_AUDIO_CUSTOMER_DTS_SE_PARAM_PURESOUND_INPUT_GAIN_FXP24 = 48, // | | | | 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) 1769 API_AUDIO_CUSTOMER_DTS_SE_PARAM_PURESOUND_OUTPUT_GAIN_FXP24 = 49, /*<-MAX*/ // | | | | 0x0 ~ 0x7FFFFF (0.0 ~ 1.0) 1770 // |________|________|___________________| 1771 1772 API_AUDIO_CUSTOMER_DTS_SE_PARAM_MAX = API_AUDIO_CUSTOMER_DTS_SE_PARAM_PURESOUND_OUTPUT_GAIN_FXP24 + 1, 1773 } API_AUDIO_CUSTOMER_DTS_SE_PARAM_TYPE; 1774 1775 //For Dolby DAP's parameter setting structure. 1776 #define DOLBY_DAP_MAX_BANDS (20) 1777 #define DOLBY_DAP_IEQ_MAX_BANDS DOLBY_DAP_MAX_BANDS 1778 #define DOLBY_DAP_GEQ_MAX_BANDS DOLBY_DAP_MAX_BANDS 1779 #define DOLBY_DAP_REG_MAX_BANDS DOLBY_DAP_MAX_BANDS 1780 #define DOLBY_DAP_OPT_MAX_BANDS DOLBY_DAP_MAX_BANDS 1781 #define DOLBY_DAP_MAX_CHANNELS 6 1782 1783 typedef struct 1784 { 1785 int pregain; 1786 int postgain; 1787 int systemgain; 1788 int surround_decoder_enable; 1789 int virtualizer_enable; 1790 int headphone_reverb; 1791 int speaker_angle; 1792 int speaker_start; 1793 int surround_boost; 1794 int mi_ieq_enable; 1795 int mi_dv_enable; 1796 int mi_de_enable; 1797 int mi_surround_enable; 1798 1799 int calibration_boost; 1800 1801 int leveler_amount; 1802 int leveler_input; 1803 int leveler_output; 1804 int leveler_enable; 1805 1806 int modeler_enable; 1807 int modeler_calibration; 1808 1809 int ieq_enable; 1810 int ieq_amount; 1811 int ieq_nb_bands; 1812 int a_ieq_band_center[DOLBY_DAP_IEQ_MAX_BANDS]; 1813 int a_ieq_band_target[DOLBY_DAP_IEQ_MAX_BANDS]; 1814 1815 int de_enable; 1816 int de_amount; 1817 int de_ducking; 1818 1819 int volmax_boost; 1820 1821 int geq_enable; 1822 int geq_nb_bands; 1823 int a_geq_band_center[DOLBY_DAP_GEQ_MAX_BANDS]; 1824 int a_geq_band_target[DOLBY_DAP_GEQ_MAX_BANDS]; 1825 1826 int optimizer_enable; 1827 int optimizer_nb_bands; 1828 int a_opt_band_center_freq[DOLBY_DAP_OPT_MAX_BANDS]; 1829 int a_opt_band_gain[DOLBY_DAP_MAX_CHANNELS][DOLBY_DAP_OPT_MAX_BANDS]; 1830 1831 int bass_enable; 1832 int bass_boost; 1833 int bass_cutoff; 1834 int bass_width; 1835 1836 int reg_nb_bands; 1837 int a_reg_band_center[DOLBY_DAP_REG_MAX_BANDS]; 1838 int a_reg_low_thresholds[DOLBY_DAP_REG_MAX_BANDS]; 1839 int a_reg_high_thresholds[DOLBY_DAP_REG_MAX_BANDS]; 1840 int a_reg_isolated_bands[DOLBY_DAP_REG_MAX_BANDS]; 1841 1842 int regulator_overdrive; 1843 int regulator_timbre; 1844 int regulator_distortion; 1845 int regulator_mode; 1846 int regulator_enable; 1847 int virtual_bass_mode; 1848 int virtual_bass_low_src_freq; 1849 int virtual_bass_high_src_freq; 1850 int virtual_bass_overall_gain; 1851 int virtual_bass_slope_gain; 1852 int virtual_bass_subgain[3]; 1853 int virtual_bass_mix_low_freq; 1854 int virtual_bass_mix_high_freq; 1855 } API_AUDIO_CUSTOMER_DOLBY_DAP_PARAM; 1856 1857 //------------------------------------------------------------------------------------------------------------------------------------- 1858 /* callback functions */ 1859 //------------------------------------------------------------------------------------------------------------------------------------- 1860 typedef struct 1861 { 1862 MS_U8 index; // PCM index 1863 MS_U32 pts; // PTS(unit : 90Khz clock base, max value : 0xFFFFFFFF) 1864 MS_U8 *pData; // pointer to Audio Data 1865 MS_U32 dataLen; // Audio Data Length 1866 } API_AUDIO_CUSTOMER_PCM_DATA; 1867 1868 typedef struct 1869 { 1870 MS_U32 encFormat; // Encode format, 0:MP3, 1:AAC 1871 MS_U64 pts; // PTS 1872 MS_U8 *pData; // pointer to Audio Data 1873 MS_U32 dataLen; // Audio Data Length 1874 MS_U8 *pRStart; // start pointer of buffer 1875 MS_U8 *pREnd; // end pointer of buffer 1876 } API_AUDIO_CUSTOMER_AENC_DATA; 1877 1878 typedef enum 1879 { 1880 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_INVALID = -1, 1881 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_IS_HDMI = 0, 1882 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_IS_NONPCM = 1, 1883 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_CODEC_CHANGE = 2, 1884 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_MAX, 1885 } API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT; 1886 1887 typedef enum 1888 { 1889 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_INFO_INVALID = -1, 1890 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_INFO_DVI_MODE = 0, 1891 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_INFO_HDMI_MODE = 1, 1892 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_INFO_PCM = 2, 1893 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_INFO_NONPCM = 3, 1894 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_INFO_DD = 4, 1895 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_INFO_DTS = 5, 1896 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_INFO_DDP = 7, 1897 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_INFO_DP = 8, 1898 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_INFO_OTHER = 9, 1899 API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_INFO_MAX, 1900 } API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_INFO; 1901 1902 typedef MS_BOOL (*pfnAudioCustomerAdecoderClipDone)(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex); 1903 typedef MS_BOOL (*pfnAudioCustomerAmixerClipDone)(API_AUDIO_CUSTOMER_MIXER_INDEX amixIndex); 1904 typedef MS_BOOL (*pfnAudioCustomerAENCDataHandling)(API_AUDIO_CUSTOMER_AENC_DATA *pMsg); 1905 typedef MS_BOOL (*pfnAudioCustomerPCMDataHandling)(API_AUDIO_CUSTOMER_PCM_DATA *pMsg); 1906 typedef MS_BOOL (*pfnAudioCustomerPCMSending)(MS_U8 *pBuf, MS_U16 length); 1907 typedef MS_BOOL (*pfnAudioCustomerMP3EncodeDone)(MS_U8 *pCopyBuffer, MS_U16 copyLenth); 1908 typedef MS_BOOL (*pfnAudioCustomerAdecDecodeDone)(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, MS_U32 copyLenth); 1909 typedef MS_BOOL (*pfnAudioCustomerAdecEndOfStream)(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex); 1910 typedef MS_BOOL (*pfnAudioCustomerAdecUnderrun)(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex); 1911 typedef MS_BOOL (*pfnAudioCustomerHDMIMonitorEvent)(API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT eventType, API_AUDIO_CUSTOMER_HDMI_MONITOR_EVENT_INFO info); 1912 1913 /****************************************************************************** 1914 (Function Declaration) 1915 ******************************************************************************/ 1916 /* Initialize, STR */ 1917 MS_BOOL API_AUDIO_CUSTOMER_InitializeModule(MS_U32 u32MiuNo, MS_U32 mad_va, API_AUDIO_CUSTOMER_OUTPUT_INFO OutputInfo, API_AUDIO_CUSTOMER_CHIP_PLATFORM chipPlatform); 1918 MS_BOOL API_AUDIO_CUSTOMER_InitializeModule_IsFinish(void); 1919 MS_BOOL API_AUDIO_CUSTOMER_Suspend(void); 1920 MS_BOOL API_AUDIO_CUSTOMER_Resume(void); 1921 1922 /* Connect & Disconnect */ 1923 MS_BOOL API_AUDIO_CUSTOMER_SetParserMode(API_AUDIO_CUSTOMER_PARSER_MODE ParserMode); 1924 MS_BOOL API_AUDIO_CUSTOMER_ADEC_Connect(API_AUDIO_CUSTOMER_ADEC_INDEX currentConnect, API_AUDIO_CUSTOMER_ADEC_INPUT inputConnect); 1925 MS_BOOL API_AUDIO_CUSTOMER_ADEC_Disconnect(API_AUDIO_CUSTOMER_ADEC_INDEX currentConnect); 1926 MS_BOOL API_AUDIO_CUSTOMER_ADC_Connect(API_AUDIO_CUSTOMER_ADC_INDEX currentConnect, API_AUDIO_CUSTOMER_ADC_IN_PORT portNum); 1927 MS_BOOL API_AUDIO_CUSTOMER_ADC_Disconnect(API_AUDIO_CUSTOMER_ADC_INDEX currentConnect, API_AUDIO_CUSTOMER_ADC_IN_PORT portNum); 1928 MS_BOOL API_AUDIO_CUSTOMER_PCM_Mixer_Connect(API_AUDIO_CUSTOMER_PCM_MIXER_INDEX currentConnect, API_AUDIO_CUSTOMER_PCM_MIXER_INPUT inputConnect); 1929 MS_BOOL API_AUDIO_CUSTOMER_PCM_Mixer_Disconnect(API_AUDIO_CUSTOMER_PCM_MIXER_INDEX currentConnect, API_AUDIO_CUSTOMER_PCM_MIXER_INPUT inputConnect); 1930 MS_BOOL API_AUDIO_CUSTOMER_CH_Sound_Connect(API_AUDIO_CUSTOMER_CH_SOUND currentConnect, API_AUDIO_CUSTOMER_CH_INPUT inputConnect); 1931 MS_BOOL API_AUDIO_CUSTOMER_CH_Sound_Disconnect(API_AUDIO_CUSTOMER_CH_SOUND currentConnect, API_AUDIO_CUSTOMER_CH_INPUT inputConnect); 1932 MS_BOOL API_AUDIO_CUSTOMER_FW_MIXER_Connect(API_AUDIO_CUSTOMER_FWM_INDEX currentConnect, API_AUDIO_CUSTOMER_FWM_INPUT inputConnect); 1933 MS_BOOL API_AUDIO_CUSTOMER_FW_MIXER_Disconnect(API_AUDIO_CUSTOMER_FWM_INDEX currentConnect, API_AUDIO_CUSTOMER_FWM_INPUT inputConnect); 1934 MS_BOOL API_AUDIO_CUSTOMER_SE_Connect(API_AUDIO_CUSTOMER_SE_INDEX currentConnect, API_AUDIO_CUSTOMER_SE_INPUT inputConnect); 1935 MS_BOOL API_AUDIO_CUSTOMER_SE_Disconnect(API_AUDIO_CUSTOMER_SE_INDEX currentConnect, API_AUDIO_CUSTOMER_SE_INPUT inputConnect); 1936 MS_BOOL API_AUDIO_CUSTOMER_SNDOUT_Connect(API_AUDIO_CUSTOMER_SOUNDOUT_INDEX currentConnect, API_AUDIO_CUSTOMER_SOUNDOUT_INPUT inputConnect); 1937 MS_BOOL API_AUDIO_CUSTOMER_SNDOUT_Disconnect(API_AUDIO_CUSTOMER_SOUNDOUT_INDEX currentConnect, API_AUDIO_CUSTOMER_SOUNDOUT_INPUT inputConnect); 1938 MS_BOOL API_AUDIO_CUSTOMER_PCM_CAPTURE_Connect(API_AUDIO_CUSTOMER_PCM_CAPTURE_INDEX currentConnect, API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT inputConnect); 1939 MS_BOOL API_AUDIO_CUSTOMER_PCM_CAPTURE_Disconnect(API_AUDIO_CUSTOMER_PCM_CAPTURE_INDEX currentConnect, API_AUDIO_CUSTOMER_PCM_CAPTURE_INPUT inputConnect); 1940 MS_BOOL API_AUDIO_CUSTOMER_MP3_ENC_Connect(API_AUDIO_CUSTOMER_MP3_ENC_INPUT inputConnect); 1941 MS_BOOL API_AUDIO_CUSTOMER_MP3_ENC_Disconnect(API_AUDIO_CUSTOMER_MP3_ENC_INPUT inputConnect); 1942 MS_BOOL API_AUDIO_CUSTOMER_AAC_ENC_Connect(API_AUDIO_CUSTOMER_AAC_ENC_INPUT inputConnect); 1943 MS_BOOL API_AUDIO_CUSTOMER_AAC_ENC_Disconnect(API_AUDIO_CUSTOMER_AAC_ENC_INPUT inputConnect); 1944 1945 /* Start & Stop */ 1946 MS_BOOL API_AUDIO_CUSTOMER_SetCodecType(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, API_AUDIO_CUSTOMER_CODEC_TYPE audioType); 1947 MS_BOOL API_AUDIO_CUSTOMER_StartDecoding(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex); 1948 MS_BOOL API_AUDIO_CUSTOMER_StopDecoding(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex); 1949 MS_BOOL API_AUDIO_CUSTOMER_PauseDecoding(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex); 1950 MS_BOOL API_AUDIO_CUSTOMER_SetMainDecoderOutput(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex); 1951 1952 /* SPDIF */ 1953 MS_BOOL API_AUDIO_CUSTOMER_SPDIF_TX_SetOutputType(API_AUDIO_CUSTOMER_SPDIF_TX_MODE eSPDIFMode); 1954 API_AUDIO_CUSTOMER_SPDIF_TX_MODE API_AUDIO_CUSTOMER_SPDIF_TX_GetOutputType(void); 1955 MS_BOOL API_AUDIO_CUSTOMER_SPDIF_TX_SetCopyInfo(API_AUDIO_CUSTOMER_SPDIF_COPYRIGHT copyInfo); 1956 MS_BOOL API_AUDIO_CUSTOMER_SPDIF_TX_SetCategoryCode(MS_U8 categoryCode); 1957 MS_BOOL API_AUDIO_CUSTOMER_SPDIF_TX_SetLightOnOff(MS_BOOL bOnOff); 1958 MS_BOOL API_AUDIO_CUSTOMER_SPDIF_TX_SetMonitorOnOff(MS_BOOL bOnOff); 1959 MS_BOOL API_AUDIO_CUSTOMER_SPDIF_TX_ChannelStatus_CTRL(API_AUDIO_CUSTOMER_SPDIF_CS_TYPE cs_mode, API_AUDIO_CUSTOMER_SPDIF_CS_TYPE_STATUS status); 1960 1961 /* HDMI */ 1962 MS_BOOL API_AUDIO_CUSTOMER_HDMI_RX_GetAudioMode(API_AUDIO_CUSTOMER_CODEC_TYPE *pHDMIMode); 1963 MS_BOOL API_AUDIO_CUSTOMER_HDMI_RX_GetCopyInfo(API_AUDIO_CUSTOMER_SPDIF_COPYRIGHT *pCopyInfo); 1964 MS_BOOL API_AUDIO_CUSTOMER_HDMI_RX_SetAudioReturnChannel(MS_BOOL bOnOff); 1965 MS_BOOL API_AUDIO_CUSTOMER_HDMI_RX_SetMonitorOnOff(MS_BOOL bOnOff); 1966 MS_BOOL API_AUDIO_CUSTOMER_HDMI_TX_SetOutputType(API_AUDIO_CUSTOMER_HDMI_TX_OUTPUT_TYPE eHDMIMode); 1967 MS_BOOL API_AUDIO_CUSTOMER_HDMI_TX_SetMonitorOnOff(MS_BOOL bOnOff); 1968 1969 /* ATV */ 1970 MS_BOOL API_AUDIO_CUSTOMER_SIF_SetInputSource(API_AUDIO_CUSTOMER_SIF_INPUT sifSource); 1971 MS_BOOL API_AUDIO_CUSTOMER_SIF_SetHighDevMode(API_AUDIO_CUSTOMER_SIF_HIDEV_BW bandwidth, MS_BOOL bOnOff); 1972 MS_BOOL API_AUDIO_CUSTOMER_SIF_SetAudioStandard(API_AUDIO_CUSTOMER_SIF_STANDARD sifStandard); 1973 MS_BOOL API_AUDIO_CUSTOMER_SIF_SetSoundMode(API_AUDIO_CUSTOMER_SIF_AUDIOMODE_TYPE u8SifSoundMode); 1974 API_AUDIO_CUSTOMER_SIF_AUDIOMODE_TYPE API_AUDIO_CUSTOMER_SIF_GetSoundMode(void); 1975 MS_BOOL API_AUDIO_CUSTOMER_SIF_SetMonitorOnOff(MS_BOOL bOnOff); 1976 MS_BOOL API_AUDIO_CUSTOMER_SIF_SetAutoMute(MS_BOOL bOnOff); 1977 API_AUDIO_CUSTOMER_SIF_STANDARD API_AUDIO_CUSTOMER_SIF_StartAutoStandardDetection(void); 1978 MS_BOOL API_AUDIO_CUSTOMER_SIF_SetThreshold(API_AUDIO_CUSTOMER_SIF_THR_TBL_TYPE *ThrTbl); 1979 MS_BOOL API_AUDIO_CUSTOMER_SIF_SetPALType(API_AUDIO_CUSTOMER_SIF_PAL_TYPE pal_type); 1980 MS_BOOL API_AUDIO_CUSTOMER_SIF_SendCmd(API_AUDIO_CUSTOMER_SIF_CmdType enAudSifCommand, MS_U8 comm_arg1, MS_U8 comm_arg2); 1981 MS_BOOL API_AUDIO_CUSTOMER_SIF_GetAudioStatus(API_AUDIO_CUSTOMER_SIF_AUDIOSTATUS *eCurrentAudioStatus); 1982 MS_BOOL API_AUDIO_CUSTOMER_SIF_IsPALType(API_AUDIO_CUSTOMER_SIF_PAL_TYPE pal_type); 1983 MS_BOOL API_AUDIO_CUSTOMER_SIF_SetPrescale(API_AUDIO_CUSTOMER_SIF_GAIN_TYPE gain_type, MS_S32 db_value); // db_value: The prescale value, unit is 0.25dB/Step. 1984 // 0: 0db, 1: 0.25dB, 2: 0.5dB, ..., 4: 1.0dB, ..., 8: 2dB 1985 // -1:-0.25dB, -2:-0.5dB, ..., -4:-1.0dB, ..., -8:-2dB 1986 1987 1988 /* Decoder */ 1989 MS_BOOL API_AUDIO_CUSTOMER_SetSyncMode(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, MS_BOOL bOnOff); 1990 MS_BOOL API_AUDIO_CUSTOMER_GetDecodingType(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, API_AUDIO_CUSTOMER_CODEC_TYPE *pAudioType); 1991 MS_BOOL API_AUDIO_CUSTOMER_SetDualMonoOutMode(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, API_AUDIO_CUSTOMER_DUALMONO_MODE outputMode); 1992 MS_BOOL API_AUDIO_CUSTOMER_GetESInfo(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, void * pAudioESInfo); 1993 MS_BOOL API_AUDIO_CUSTOMER_IsESExist(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex); 1994 MS_BOOL API_AUDIO_CUSTOMER_SetAudioDescription(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, MS_BOOL bOnOff); 1995 MS_BOOL API_AUDIO_CUSTOMER_SetTrickMode(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, API_AUDIO_CUSTOMER_TRICK_MODE eTrickMode); 1996 MS_BOOL API_AUDIO_CUSTOMER_GetBufferStatus(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, MS_U32 *pMaxSize, MS_U32 *pFreeSize); 1997 MS_BOOL API_AUDIO_CUSTOMER_SetAdecPcmPath(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, API_AUDIO_CUSTOMER_ADEC_PCM_PATH pcmPath); 1998 MS_BOOL API_AUDIO_CUSTOMER_AdecPcmReady(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex); 1999 MS_U32 API_AUDIO_CUSTOMER_AdecPcmGet(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, void * pOutPcm, MS_U32 u32Size); 2000 MS_BOOL API_AUDIO_CUSTOMER_AdecRegisterDecodeDoneCallback(pfnAudioCustomerAdecDecodeDone pfnDecodeDoneCallBack); 2001 MS_BOOL API_AUDIO_CUSTOMER_AdecRegisterEndOfStreamCallback(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, pfnAudioCustomerAdecEndOfStream pfnEndOfStreamCallBack); 2002 MS_BOOL API_AUDIO_CUSTOMER_AdecRegisterUnderrunCallback(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, pfnAudioCustomerAdecUnderrun pfnUnderrunCallBack); 2003 MS_BOOL API_AUDIO_CUSTOMER_Auto_Recovery_SetMonitorOnOff(MS_BOOL bOnOff); 2004 2005 /* Common Decoder */ 2006 MS_S32 API_AUDIO_CUSTOMER_COMMON_DECODER_Open(void * pData); 2007 MS_S32 API_AUDIO_CUSTOMER_COMMON_DECODER_Close(MS_S32 s32DeviceID); 2008 MS_S32 API_AUDIO_CUSTOMER_COMMON_DECODER_Start(MS_S32 s32DeviceID); 2009 MS_S32 API_AUDIO_CUSTOMER_COMMON_DECODER_Stop(MS_S32 s32DeviceID); 2010 MS_S32 API_AUDIO_CUSTOMER_COMMON_DECODER_Set(MS_S32 s32DeviceID, API_AUDIO_CUSTOMER_COMMON_DECODER_COMMAND Cmd, void* pData); 2011 MS_S32 API_AUDIO_CUSTOMER_COMMON_DECODER_Get(MS_S32 s32DeviceID, API_AUDIO_CUSTOMER_COMMON_DECODER_COMMAND Cmd, void* pData); 2012 MS_U32 API_AUDIO_CUSTOMER_COMMON_DECODER_Read(MS_S32 s32DeviceID, void* pBuf, MS_U32 u32Size); 2013 MS_U32 API_AUDIO_CUSTOMER_COMMON_DECODER_Write(MS_S32 s32DeviceID, void* pBuf, MS_U32 u32Size); 2014 MS_S32 API_AUDIO_CUSTOMER_COMMON_DECODER_Flush(MS_S32 s32DeviceID); 2015 2016 /* Common */ 2017 MS_BOOL API_AUDIO_CUSTOMER_SetAudioParam(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, API_AUDIO_CUSTOMER_PARAM_TYPE paramType, void *pParam); 2018 MS_BOOL API_AUDIO_CUSTOMER_GetAudioInfo(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, API_AUDIO_CUSTOMER_INFO_TYPE infoType, void *pInfo); 2019 2020 /* Customized patch */ 2021 MS_BOOL API_AUDIO_CUSTOMIZED_PATCH_SetAudioParam(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, API_AUDIO_CUSTOMIZED_PATCH_PARAM_TYPE paramType, void *pParam); 2022 MS_BOOL API_AUDIO_CUSTOMIZED_PATCH_GetAudioInfo(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, API_AUDIO_CUSTOMIZED_PATCH_INFO_TYPE infoType, void *pInfo); 2023 2024 /* Clip Play for ES */ 2025 MS_BOOL API_AUDIO_CUSTOMER_PlayClipDecoder(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, API_AUDIO_CUSTOMER_CLIP_DEC_PARAM clipInfo, MS_U32 bufSize, void *pBufClip, pfnAudioCustomerAdecoderClipDone pfnCallBack); 2026 MS_BOOL API_AUDIO_CUSTOMER_StopClipDecoder(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex); 2027 MS_BOOL API_AUDIO_CUSTOMER_PauseClipDecoder(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex); 2028 MS_BOOL API_AUDIO_CUSTOMER_ResumeClipDecoder(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex); 2029 2030 /* Clip Play for PCM */ 2031 MS_BOOL API_AUDIO_CUSTOMER_PlayClipMixer(API_AUDIO_CUSTOMER_MIXER_INDEX mixerIndex, API_AUDIO_CUSTOMER_CLIP_MIX_PARAM clipInfo, MS_U32 bufSize, void *pBufClip, pfnAudioCustomerAmixerClipDone pfnCallBack); 2032 MS_BOOL API_AUDIO_CUSTOMER_StopClipMixer(API_AUDIO_CUSTOMER_MIXER_INDEX mixerIndex); 2033 MS_BOOL API_AUDIO_CUSTOMER_PauseClipMixer(API_AUDIO_CUSTOMER_MIXER_INDEX mixerIndex); 2034 MS_BOOL API_AUDIO_CUSTOMER_ResumeClipMixer(API_AUDIO_CUSTOMER_MIXER_INDEX mixerIndex); 2035 2036 /* Gain, Mute & Delay */ 2037 //---Gain--- 2038 MS_BOOL API_AUDIO_CUSTOMER_SetAudioDescriptionGain(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, MS_U32 gain); 2039 MS_BOOL API_AUDIO_CUSTOMER_SetPCMMixerInputGain(API_AUDIO_CUSTOMER_MIXER_INDEX mixerIndex, MS_U32 gain); 2040 MS_BOOL API_AUDIO_CUSTOMER_SetFWMixerChannelGain(API_AUDIO_CUSTOMER_FWM_INDEX currentConnect, API_AUDIO_CUSTOMER_FWM_INPUT inputConnect, MS_U32 gain); 2041 MS_BOOL API_AUDIO_CUSTOMER_SetI2SOutGain(MS_U32 gain); 2042 MS_BOOL API_AUDIO_CUSTOMER_SetLineOutGain(API_AUDIO_CUSTOMER_LINE_OUT_IDX lineIndex, MS_U32 gain); 2043 MS_BOOL API_AUDIO_CUSTOMER_SetSPDIFOutGain(MS_U32 gain); 2044 MS_BOOL API_AUDIO_CUSTOMER_SetHDMIOutGain(MS_U32 gain); 2045 //---Mute--- 2046 MS_BOOL API_AUDIO_CUSTOMER_SetPCMMixerInputMute(API_AUDIO_CUSTOMER_MIXER_INDEX mixerIndex, MS_BOOL bOnOff); 2047 MS_BOOL API_AUDIO_CUSTOMER_SetFWMixerChannelMute(API_AUDIO_CUSTOMER_FWM_INDEX currentConnect, API_AUDIO_CUSTOMER_FWM_INPUT inputConnect, MS_BOOL bOnOff); 2048 MS_BOOL API_AUDIO_CUSTOMER_SetI2SOutMute(MS_BOOL bOnOff); 2049 MS_BOOL API_AUDIO_CUSTOMER_SetLineOutMute(API_AUDIO_CUSTOMER_LINE_OUT_IDX lineIndex, MS_BOOL bOnOff); 2050 MS_BOOL API_AUDIO_CUSTOMER_SetSPDIFOutMute(MS_BOOL bOnOff); 2051 MS_BOOL API_AUDIO_CUSTOMER_SetHDMIOutMute(MS_BOOL bOnOff); 2052 MS_BOOL API_AUDIO_CUSTOMER_GetI2SOutMuteStatus(MS_BOOL *pOnOff); 2053 MS_BOOL API_AUDIO_CUSTOMER_GetLineOutMuteStatus(API_AUDIO_CUSTOMER_LINE_OUT_IDX lineIndex, MS_BOOL *pOnOff); 2054 MS_BOOL API_AUDIO_CUSTOMER_GetSPDIFOutMuteStatus(MS_BOOL *pOnOff); 2055 MS_BOOL API_AUDIO_CUSTOMER_MuteDuringLimitedTime_Input(MS_U32 per_50ms, API_AUDIO_CUSTOMER_FWM_INDEX eFWM, API_AUDIO_CUSTOMER_FWM_INPUT eCh); 2056 MS_BOOL API_AUDIO_CUSTOMER_MuteDuringLimitedTime_Output(MS_U32 per_50ms, API_AUDIO_CUSTOMER_OUTPUT_TYPE ePort); 2057 //---Delay--- 2058 MS_BOOL API_AUDIO_CUSTOMER_SetChannelDelay(API_AUDIO_CUSTOMER_CH_SOUND ch, MS_U32 delay); 2059 MS_BOOL API_AUDIO_CUSTOMER_SetAudioDelay(MS_U32 delay); 2060 MS_BOOL API_AUDIO_CUSTOMER_SetSpdifDelay(MS_U32 delay); 2061 MS_BOOL API_AUDIO_CUSTOMER_SetHdmiDelay(MS_U32 delay); 2062 2063 /* AENC */ 2064 MS_BOOL API_AUDIO_CUSTOMER_AENC_Start(API_AUDIO_CUSTOMER_AENC_ENCODING_FORMAT encFormat); 2065 MS_BOOL API_AUDIO_CUSTOMER_AENC_Stop(API_AUDIO_CUSTOMER_AENC_ENCODING_FORMAT encFormat); 2066 MS_BOOL API_AUDIO_CUSTOMER_AENC_RegisterCallback(API_AUDIO_CUSTOMER_AENC_ENCODING_FORMAT encFormat, pfnAudioCustomerAENCDataHandling pfnCallBack); 2067 MS_BOOL API_AUDIO_CUSTOMER_AENC_SetInfo(API_AUDIO_CUSTOMER_AENC_ENCODING_FORMAT encFormat, API_AUDIO_CUSTOMER_AENC_INFO info); 2068 MS_BOOL API_AUDIO_CUSTOMER_AENC_GetInfo(API_AUDIO_CUSTOMER_AENC_ENCODING_FORMAT encFormat, API_AUDIO_CUSTOMER_AENC_INFO *pInfo); 2069 MS_BOOL API_AUDIO_CUSTOMER_AENC_SetGain(API_AUDIO_CUSTOMER_AENC_ENCODING_FORMAT encFormat, MS_U32 gain); 2070 MS_BOOL API_AUDIO_CUSTOMER_AENC_CopyData(API_AUDIO_CUSTOMER_AENC_ENCODING_FORMAT encFormat, MS_U8 *pDest, MS_U8 *pBufAddr, MS_U32 datasize, MS_U8 *pRStart, MS_U8 *pREnd); 2071 MS_BOOL API_AUDIO_CUSTOMER_AENC_ReleaseData(API_AUDIO_CUSTOMER_AENC_ENCODING_FORMAT encFormat, MS_U8 *pBufAddr, MS_U32 datasize); 2072 2073 /* PCM Capture */ 2074 MS_BOOL API_AUDIO_CUSTOMER_PCM_StartUpload(API_AUDIO_CUSTOMER_PCM_CAPTURE_INDEX currentConnect); 2075 MS_BOOL API_AUDIO_CUSTOMER_PCM_StopUpload(API_AUDIO_CUSTOMER_PCM_CAPTURE_INDEX currentConnect); 2076 MS_BOOL API_AUDIO_CUSTOMER_PCM_RegisterSendPCMCallback(API_AUDIO_CUSTOMER_PCM_CAPTURE_INDEX currentConnect, pfnAudioCustomerPCMSending pfnCallBack); 2077 MS_BOOL API_AUDIO_CUSTOMER_PCM_SetGain(API_AUDIO_CUSTOMER_PCM_CAPTURE_INDEX currentConnect, MS_U32 gain); 2078 MS_BOOL API_AUDIO_CUSTOMER_PCM_SetMute(API_AUDIO_CUSTOMER_PCM_CAPTURE_INDEX currentConnect, MS_BOOL bOnOff); 2079 MS_BOOL API_AUDIO_CUSTOMER_PCM_SetRequestSizeInMs(MS_U32 request_ms); 2080 2081 /* PCM IO Control */ 2082 MS_S32 API_AUDIO_CUSTOMER_PCM_Open(API_AUDIO_CUSTOMER_PCMIO_PARAM *pData); 2083 MS_S32 API_AUDIO_CUSTOMER_PCM_Close(MS_S32 s32DeviceId); 2084 MS_S32 API_AUDIO_CUSTOMER_PCM_Start(MS_S32 s32DeviceId); 2085 MS_S32 API_AUDIO_CUSTOMER_PCM_Stop(MS_S32 s32DeviceId); 2086 MS_S32 API_AUDIO_CUSTOMER_PCM_Set(MS_S32 s32DeviceId, MS_U32 u32Cmd, const void *pData); 2087 MS_S32 API_AUDIO_CUSTOMER_PCM_Get(MS_S32 s32DeviceId, MS_U32 u32Cmd, void *pData); 2088 MS_U32 API_AUDIO_CUSTOMER_PCM_Read(MS_S32 s32DeviceId, void *pBuf, MS_U32 u32Size); 2089 MS_U32 API_AUDIO_CUSTOMER_PCM_Write(MS_S32 s32DeviceId, const void *pBuf, MS_U32 u32Size); 2090 MS_S32 API_AUDIO_CUSTOMER_PCM_Flush(MS_S32 s32DeviceId); 2091 2092 /* MM New Mode */ 2093 MS_PHY API_AUDIO_CUSTOMER_GetDDRInfo(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, API_AUDIO_CUSTOMER_DDRINFO DDRInfo); 2094 MS_BOOL API_AUDIO_CUSTOMER_MM2_initAesInfo(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex); 2095 MS_BOOL API_AUDIO_CUSTOMER_MM2_checkAesInfo(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, API_AUDIO_CUSTOMER_AES_INFO *aes_info); 2096 MS_BOOL API_AUDIO_CUSTOMER_MM2_inputAesFinished(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, MS_U32 es_size, MS_BOOL ptsExist, MS_U64 pts); 2097 MS_BOOL API_AUDIO_CUSTOMER_MM2_AD_initAesInfo(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex); 2098 MS_BOOL API_AUDIO_CUSTOMER_MM2_AD_checkAesInfo(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, API_AUDIO_CUSTOMER_AES_INFO *aes_info); 2099 MS_BOOL API_AUDIO_CUSTOMER_MM2_AD_inputAesFinished(API_AUDIO_CUSTOMER_ADEC_INDEX adecIndex, MS_U32 es_size, MS_BOOL ptsExist, MS_U64 pts); 2100 2101 /* Mstar Sound Effect */ 2102 MS_BOOL API_AUDIO_CUSTOMER_MSTAR_SE_Enable(API_AUDIO_CUSTOMER_MSTAR_SE_TYPE Type, MS_BOOL bOnOff); 2103 2104 ///@brief \b Function \b Name: API_AUDIO_CUSTOMER_MSTAR_SE_SET_GEQ() 2105 ///@brief \b Function \b Description: This routine is used to set the the 5-band GEQ u8Level 2106 ///@param <IN> \b u8band : GEQ band 0~4 // 0:120Hz, 1:500Hz, 2:1500Hz, 3:5000Hz, 4:10000Hz 2107 ///@param <IN> \b s8level : GEQ level -48~48(-12dB~12dB, step 0.25dB) 2108 MS_BOOL API_AUDIO_CUSTOMER_MSTAR_SE_SET_GEQ(MS_U8 u8band, MS_S8 s8level); 2109 2110 ///@brief \b Function \b Name: API_AUDIO_CUSTOMER_MSTAR_SE_SET_PEQCoef() 2111 ///@brief \b Function \b Description: This routine is used to set the PEQ parameters 2112 ///@param <IN> \b peq_coef->band : PEQ band select ( 0 ~ 7 ) 2113 ///@param <IN> \b peq_coef->enable : PEQ band enable/disable ( 0:disable 1:enable ) 2114 ///@param <IN> \b peq_coef->a0 : PEQ coefficient a0 (check below sampele code to calculate coefficient) 2115 ///@param <IN> \b peq_coef->a1 : PEQ coefficient a1 (check below sampele code to calculate coefficient) 2116 ///@param <IN> \b peq_coef->a2 : PEQ coefficient a2 (check below sampele code to calculate coefficient) 2117 ///@param <IN> \b peq_coef->b1 : PEQ coefficient b1 (check below sampele code to calculate coefficient) 2118 ///@param <IN> \b peq_coef->b2 : PEQ coefficient b2 (check below sampele code to calculate coefficient) 2119 /// 2120 /// @@@ Here are sample codes to calculate PEQ Coefficents @@@ 2121 /// @param <IN> \b Gain: -12dB ~ 12dB 2122 /// @param <IN> \b Fc (Hz) 2123 /// @param <IN> \b Q : 0.5~16.0 (band width: wide to narrow) 2124 ///void PEQ_Coefficent_Calculation(const float Gain, const int Fc, const float Q) 2125 ///{ 2126 /// float coef; 2127 /// float G, fc, Q; 2128 /// float fb,d,v0,H0,aBC,fm,fz,kb; 2129 /// unsigned int a0, a1, a2, b1, b2; 2130 /// 2131 /// fb = Fc / Q; 2132 /// d = - cos( 2 * 3.1415926 * Fc / 48000); 2133 /// v0 = powf(10.0, (Gain / 20.0)); 2134 /// H0 = v0 -1; 2135 /// aBC=0; 2136 /// fm=0; 2137 /// fz=1; 2138 /// kb = tan ( 3.1415926 * fb / 48000); 2139 /// 2140 /// if (Gain >=0) 2141 /// { 2142 /// fz = kb - 1; 2143 /// fm = kb + 1; 2144 /// } 2145 /// else 2146 /// { 2147 /// fz = kb - v0; 2148 /// fm = kb + v0; 2149 /// } 2150 /// 2151 /// aBC = fz / fm ; 2152 /// coef = 1 + (1 + aBC) * H0 / 2; 2153 /// a0 = (long)(coef * 4194304); 2154 /// coef = d * (1 - aBC); 2155 /// a1 = (long)(coef * 4194304); 2156 /// coef = -aBC - (1 + aBC) * H0 /2; 2157 /// a2 = (long)(coef * 4194304); 2158 /// coef = d * (1 - aBC); 2159 /// b1 = (long)(-coef * 4194304); 2160 /// coef = -aBC; 2161 /// b2 = (long)(-coef * 4194304); 2162 /// 2163 /// printf("PEQ Coefficient:\n"); 2164 /// printf("a0:%lx \n",a0)); 2165 /// printf("a1:%lx \n",a1)); 2166 /// printf("a2:%lx \n",a2)); 2167 /// printf("b1:%lx \n",b1)); 2168 /// printf("b2:%lx \n",b2)); 2169 ///} 2170 MS_BOOL API_AUDIO_CUSTOMER_MSTAR_SE_SET_PEQCoef(API_AUDIO_CUSTOMER_MSTAR_PEQ_COEF *peq_coef); 2171 2172 ///@brief \b Function \b Name: API_AUDIO_CUSTOMER_MSTAR_SE_SET_HPFCoef() 2173 ///@brief \b Function \b Description: This routine is used to set the HPF parameters 2174 ///@param <IN> \b hpf_coef->a0 : HPF coefficient a0 (check below sampele code to calculate coefficient) 2175 ///@param <IN> \b hpf_coef->a1 : HPF coefficient a1 (check below sampele code to calculate coefficient) 2176 ///@param <IN> \b hpf_coef->a2 : HPF coefficient a2 (check below sampele code to calculate coefficient) 2177 ///@param <IN> \b hpf_coef->b1 : HPF coefficient b1 (check below sampele code to calculate coefficient) 2178 ///@param <IN> \b hpf_coef->b2 : HPF coefficient b2 (check below sampele code to calculate coefficient) 2179 /// 2180 /// @@@ Here are sample codes to calculate HPF Coefficents @@@ 2181 /// @param <IN> \b Fc (Hz): 50Hz~200Hz, step 1Hz 2182 ///void HPF_Coefficent_Calculation( const int Fc ) 2183 ///{ 2184 /// float coef[5]; 2185 /// float dem; 2186 /// float Q; 2187 /// float k; 2188 /// float kpow2; 2189 /// unsigned int a0, a1, a2, b1, b2; 2190 /// 2191 /// k = tan((3.1415926*Fc)/48000); 2192 /// Q = 1/sqrt(2); 2193 /// 2194 /// kpow2 = k*k; 2195 /// 2196 /// dem = 1 + k/Q + kpow2; 2197 /// coef[0] = 1/dem; 2198 /// coef[1] = -2/dem; 2199 /// coef[2] = 1/dem; 2200 /// coef[3] = 2*(kpow2-1)/dem; 2201 /// coef[4] = (1 - k/Q + kpow2)/dem; 2202 /// 2203 /// a0 = (long)(coef[0] * 8388608/2); 2204 /// a1 = (long)(coef[1] * 8388608/2); 2205 /// a2 = (long)(coef[2] * 8388608/2); 2206 /// b1 = (long)(-coef[3] * 8388608/2); 2207 /// b2 = (long)(-coef[4] * 8388608/2); 2208 /// printf("HPF Coefficient:\n"); 2209 /// printf("a0:%lx \n",a0)); 2210 /// printf("a1:%lx \n",a1)); 2211 /// printf("a2:%lx \n",a2)); 2212 /// printf("b1:%lx \n",b1)); 2213 /// printf("b2:%lx \n",b2)); 2214 ///} 2215 MS_BOOL API_AUDIO_CUSTOMER_MSTAR_SE_SET_HPFCoef(API_AUDIO_CUSTOMER_MSTAR_HPF_COEF *hpf_coef); 2216 2217 MS_BOOL API_AUDIO_CUSTOMER_MSTAR_SE_SET_AVC_MODE(API_AUDIO_CUSTOMER_MSTAR_AVC_MODE mode); 2218 2219 ///@brief \b Function \b Name: API_AUDIO_CUSTOMER_MSTAR_SE_SET_AVC_LEVEL() 2220 ///@brief \b Function \b Description: This routine is used to set the AVC clipping level 2221 ///@param <IN> \b u16level : AVC clipping u16level 2222 /// 0x00-- 0 dBFS 2223 /// 0x01-- -0.5 dBFS 2224 /// 0x20-- -16 dBFS 2225 /// 0x50-- -40 dBFS 2226 MS_BOOL API_AUDIO_CUSTOMER_MSTAR_SE_SET_AVC_LEVEL(MS_U16 u16level); 2227 2228 ///@brief \b Function \b Name: API_AUDIO_CUSTOMER_MSTAR_SE_SET_AVC_R_MODE_Begin() 2229 ///@brief \b Function \b Description: This routine is used to set the AVC R_Mode begin 2230 ///@param <IN> \b u16Begin : default: 50 (-50dB), range: 0~60 (0dB ~ -60dB), End Must larger than Begin 2231 MS_BOOL API_AUDIO_CUSTOMER_MSTAR_SE_SET_AVC_R_MODE_Begin(MS_U16 u16Begin); 2232 2233 ///@brief \b Function \b Name: API_AUDIO_CUSTOMER_MSTAR_SE_SET_AVC_R_MODE_End() 2234 ///@brief \b Function \b Description: This routine is used to set the AVC R_Mode End 2235 ///@param <IN> \b u16End : default: 20 (-20dB), range: 0~60 (0dB ~ -60dB), End Must larger than Begin 2236 MS_BOOL API_AUDIO_CUSTOMER_MSTAR_SE_SET_AVC_R_MODE_End(MS_U16 u16End); 2237 2238 ///@brief \b Function \b Name: API_AUDIO_CUSTOMER_MSTAR_SE_SET_AVC_R_MODE_Slope() 2239 ///@brief \b Function \b Description: This routine is used to set the AVC R_Mode offset 2240 ///@param <IN> \b u16Slope : range: 1 ~ 3 (default: 2) 2241 /// - u16Slope = 1 --> 0.75 2242 /// - u16Slope = 2 --> 0.5 2243 /// - u16Slope = 3 --> 0.25 2244 MS_BOOL API_AUDIO_CUSTOMER_MSTAR_SE_SET_AVC_R_MODE_Slope(MS_U16 u16Slope); 2245 2246 ///@brief \b Function \b Name: API_AUDIO_CUSTOMER_MSTAR_SE_SET_AVC_S_MODE_OFFSET() 2247 ///@brief \b Function \b Description: This routine is used to set the AVC L_Mode offset (min value) 2248 ///@param <IN> \b u16offset : range: +0 ~ +12 dB 2249 MS_BOOL API_AUDIO_CUSTOMER_MSTAR_SE_SET_AVC_S_MODE_OFFSET(MS_U16 u16offset); 2250 2251 //////////////////////////////////////////////////////////////////////////////// 2252 /// @brief \b Function \b Name: API_AUDIO_CUSTOMER_MSTAR_SE_SET_AVC_AttackTime() 2253 /// @brief \b Function \b Description: This routine is used to set the AVC attack time. 2254 /// @param AvcAT \b : AVC attack time 2255 /// - AvcAT = 0 --> 20 ms 2256 /// - AvcAT = 1 --> 100 ms 2257 /// - AvcAT = 2 --> 200 ms 2258 /// - AvcAT = 3 --> 1 sec 2259 //////////////////////////////////////////////////////////////////////////////// 2260 MS_BOOL API_AUDIO_CUSTOMER_MSTAR_SE_SET_AVC_AttackTime(MS_U8 AvcAT); 2261 2262 //////////////////////////////////////////////////////////////////////////////// 2263 /// @brief \b Function \b Name: API_AUDIO_CUSTOMER_MSTAR_SE_SET_AVC_ReleaseTime() 2264 /// @brief \b Function \b Description: This routine is used to set the AVC release time . 2265 /// @param AvcRT \b : AVC release time 2266 /// - AvcRT = 0 --> 1 sec 2267 /// - AvcRT = 1 --> 2 sec 2268 /// - AvcRT = 2 --> 100 ms 2269 /// - AvcRT = 3 --> 200 ms 2270 //////////////////////////////////////////////////////////////////////////////// 2271 MS_BOOL API_AUDIO_CUSTOMER_MSTAR_SE_SET_AVC_ReleaseTime(MS_U8 AvcRT); 2272 2273 ///@brief \b Function \b Name: API_AUDIO_CUSTOMER_MSTAR_SE_SET_DRC_LEVEL() 2274 ///@brief \b Function \b Description: This routine is used to set the DRC clipping level 2275 ///@param <IN> \b u16level : DRC clipping u16level 2276 /// 0x00-- 0 dBFS 2277 /// 0x01-- -0.5 dBFS 2278 /// 0x20-- -16 dBFS 2279 /// 0x50-- -40 dBFS 2280 MS_BOOL API_AUDIO_CUSTOMER_MSTAR_SE_SET_DRC_LEVEL(MS_U16 u16level); 2281 2282 ///@brief \b Function \b Name: API_AUDIO_CUSTOMER_MSTAR_SE_SET_BALANCE() 2283 ///@brief \b Function \b Description: This routine is used to set the volume balance 2284 ///@param <IN> \b Lbalance : balance L 0x00(0dB)~0xFF(mute) step: -0.25dB 2285 ///@param <IN> \b Lbalance : balance R 0x00(0dB)~0xFF(mute) step: -0.25dB 2286 MS_BOOL API_AUDIO_CUSTOMER_MSTAR_SE_SET_BALANCE(MS_U16 Lbalance, MS_U16 Rbalance); 2287 2288 ///@brief \b Function \b Name: API_AUDIO_CUSTOMER_MSTAR_SE_SET_NR_Threshold() 2289 ///@brief \b Function \b Description: This routine is used to set noise reduction threshold 2290 ///@param <IN> \b u16level : NR level 2291 MS_BOOL API_AUDIO_CUSTOMER_MSTAR_SE_SET_NR_Threshold(MS_U16 u16level); 2292 2293 ///@brief \b Function \b Name: API_AUDIO_CUSTOMER_MSTAR_SE_GET_NR_Status() 2294 ///@brief \b Function \b Description: This routine is used to get noise reduction status 2295 ///@param <IN> \b u16level : NR level 2296 MS_S32 API_AUDIO_CUSTOMER_MSTAR_SE_GET_NR_Status(void); 2297 2298 /* Advanced Sound Effect */ 2299 MS_BOOL API_AUDIO_CUSTOMER_DTS_SE_Enable(API_AUDIO_CUSTOMER_DTS_SE_TYPE seType); 2300 MS_BOOL API_AUDIO_CUSTOMER_DTS_SE_ProcessUnit_Enable(API_AUDIO_CUSTOMER_DTS_SE_UNIT_TYPE seUnit, MS_BOOL bOnOff); 2301 MS_BOOL API_AUDIO_CUSTOMER_DTS_SE_SetParam(API_AUDIO_CUSTOMER_DTS_SE_PARAM_TYPE param, MS_U32 u32value); 2302 MS_BOOL API_AUDIO_CUSTOMER_Dolby_DAP_Enable(MS_BOOL bOnOff); 2303 MS_BOOL API_AUDIO_CUSTOMER_Dolby_DAP_ProcessUnit_Enable(MS_BOOL bOnOff); 2304 MS_BOOL API_AUDIO_CUSTOMER_Dolby_DAP_SetParam(API_AUDIO_CUSTOMER_DOLBY_DAP_PARAM dap_params); 2305 2306 /* Debug */ 2307 void API_AUDIO_CUSTOMER_DebugMenu(void * pVoid, MS_BOOL scanf_bSupport); 2308 void API_AUDIO_CUSTOMER_DebugMenu_Non_Scanf_ParseCommand(char *paramsStr); 2309 2310 2311 //----------------------------------------------------------------------------------- 2312 // [PURPOSE] for SET 2313 //----------------------------------------------------------------------------------- 2314 typedef struct 2315 { 2316 MS_U32 Dbg_Param; 2317 MS_U32 Dbg_Param2; 2318 MS_U32 Dbg_Param3; 2319 MS_U32 Dbg_Param4; 2320 MS_U32 Dbg_Param5; 2321 MS_U32 Dbg_Param6; 2322 MS_U32 Dbg_Param7; 2323 MS_U32 Dbg_Param8; 2324 MS_U32 Dbg_Param9; 2325 MS_U32 Dbg_Param10; 2326 } API_AUDIO_CUSTOMER_DEBUG_PARAM; 2327 2328 //----------------------------------------------------------------------------------- 2329 // [PURPOSE] for GET 2330 //----------------------------------------------------------------------------------- 2331 typedef struct 2332 { 2333 MS_U32 Dbg_Info; 2334 MS_U32 Dbg_Info2; 2335 MS_U32 Dbg_Info3; 2336 MS_U32 Dbg_Info4; 2337 MS_U32 Dbg_Info5; 2338 MS_U32 Dbg_Info6; 2339 MS_U32 Dbg_Info7; 2340 MS_U32 Dbg_Info8; 2341 MS_U32 Dbg_Info9; 2342 MS_U32 Dbg_Info10; 2343 } API_AUDIO_CUSTOMER_DEBUG_INFO; 2344 2345 //Header-free api structure 2346 typedef struct 2347 { 2348 const char *name; 2349 void* pdata; 2350 } audio_tunnel; 2351 2352 MS_BOOL API_AUDIO_CUSTOMER_Testing_7202(void * pVoid); 2353 2354 2355 #ifdef __cplusplus 2356 } 2357 #endif 2358 2359 #endif // _API_AUDIO_CUSTOMER_H_ 2360