123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545 |
- #ifndef _DRV_AUDIO_INTERFACE_H
- #define _DRV_AUDIO_INTERFACE_H
- #include <linux/version.h>
- #if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,16)
- #include <stdbool.h>
- #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
- #else
- # error Linux kernel version not supported!
- #endif
- #include "drv_types.h"
- /********************************************************************************************************
- DEFINE FOR AUDIO IOCTL FLAG
- *********************************************************************************************************/
- #ifndef IRQ_AUDIORX
- #define IRQ_AUDIORX 62
- #endif
- #define RX_MAGIC 'q'
- #define RX_BASE 861
- //BASIC IOCTL
- #define RX_AUDIOOUTPUTSELECT _IOWR(RX_MAGIC, RX_BASE+0x01, INT32)
- #define RX_AUDIOSOURCEENABLE _IOWR(RX_MAGIC, RX_BASE+0x02, INT32)
- #define RX_AUDIOSOURCEDISABLE _IOWR(RX_MAGIC, RX_BASE+0x03, INT32)
- #define RX_AUDIOADJUST _IOWR(RX_MAGIC, RX_BASE+0x04, INT32)
- #define RX_AUDIO_GET_HPSTATUS _IOWR(RX_MAGIC, RX_BASE+0x05, INT32)
- #define RX_AUDIO_GET_MUTESTATUS _IOWR(RX_MAGIC, RX_BASE+0x06, INT32)
- #define RX_AUDIO_SET_VOLUME _IOWR(RX_MAGIC, RX_BASE+0x07, INT32)
- #define RX_AUDIO_SET_BALANCE _IOWR(RX_MAGIC, RX_BASE+0x08, INT32)
- #define RX_AUDIO_SET_MUTE _IOWR(RX_MAGIC, RX_BASE+0x09, INT32)
- #define RX_AUDIO_SET_ADCPIN _IOWR(RX_MAGIC, RX_BASE+0x0a, INT32)
- #define RX_AUDIO_SET_AUDIOPATH _IOWR(RX_MAGIC, RX_BASE+0x0b, INT32)
- #define RX_AUDIO_HEADPHONE_INIT _IOWR(RX_MAGIC, RX_BASE+0x0c, INT32)
- #define RX_AUDIO_DEVICE_POWERCTR _IOWR(RX_MAGIC, RX_BASE+0x0d, INT32)
- #define RX_AUDIO_GET_ICBONDING _IOWR(RX_MAGIC, RX_BASE+0x0e, INT32)
- #define RX_AUDIO_PROJECT_INIT _IOWR(RX_MAGIC, RX_BASE+0x0f, INT32)
- #define RX_AUDIO_IO_SELECT _IOWR(RX_MAGIC, RX_BASE+0x10, INT32)
- #define RX_AUDIO_LOAD_CODEC _IOWR(RX_MAGIC, RX_BASE+0x11, INT32)
- #define RX_AUDIO_GET_ADCDACST _IOWR(RX_MAGIC, RX_BASE+0x12, INT32)
- #define RX_AUDIO_SWAP_RX_LR_CH _IOWR(RX_MAGIC, RX_BASE+0x13, INT32)
- //POSTPROCESSOR
- #define RX_SETPOSTPROCESSOR _IOWR(RX_MAGIC, RX_BASE+0x20, INT32)
- #ifdef CONFIG_SUPPORT_DBX
- #define RX_GET_DBX_TABLE _IOWR(RX_MAGIC, RX_BASE+0x21, INT32)
- #define RX_DBX_CTL _IOWR(RX_MAGIC, RX_BASE+0x22, INT32)
- #endif
- //SIF SETTING
- #define RX_TVSYSTEM _IOWR(RX_MAGIC, RX_BASE+0x40, INT32)
- #define RX_SETATVSYSTEM _IOWR(RX_MAGIC, RX_BASE+0x41, INT32)
- #define RX_SIFINFO_GET _IOWR(RX_MAGIC, RX_BASE+0x42, INT32)
- #define RX_AUDIOSIFCTL _IOWR(RX_MAGIC, RX_BASE+0x43, INT32)
- #define RX_SetStopFlagforSIF _IOWR(RX_MAGIC, RX_BASE+0X44, INT32) //ava@20130613 will be remove later
- //MISC SETTING
- #define RX_SETAUDIODEVICE _IOWR(RX_MAGIC, RX_BASE+0x60, INT32) // john@20110907 add new interface for setting external device(ex: DAMP)
- #define RX_SET_DTV_AD_VOL _IOWR(RX_MAGIC, RX_BASE+0x63, INT32)
- #define RX_GET_MPEG_CHANNELSTATUS _IOWR(RX_MAGIC, RX_BASE+0x64, INT32)
- #define RX_GET_AUDIO_CHANNELNUM _IOWR(RX_MAGIC, RX_BASE+0x65, INT32)
- #define RX_SEND_AUDIOINFO _IOWR(RX_MAGIC, RX_BASE+0x66, INT32)
- #ifdef CONFIG_SUPPORT_BOOT_MUSIC
- #define RX_AUDIO_MELODY_INIT _IOWR(RX_MAGIC, RX_BASE+0x67, INT32)
- #endif
- #ifdef CONFIG_SUPPORT_BURN_MUSIC
- #define RX_AUDIO_BURN_MELODY_INIT _IOWR(RX_MAGIC, RX_BASE+0x68, INT32)
- #define RX_AUDIO_BURN_MELODY_EXIT _IOWR(RX_MAGIC, RX_BASE+0x69, INT32)
- #endif
- // AUDIO TOOL
- #define RX_GET_AUDIO_SETTINGS _IOWR(RX_MAGIC, RX_BASE+0x80, INT32)
- #define RX_GET_AUDIO_REC_PARAM _IOWR(RX_MAGIC, RX_BASE+0x81, INT32)
- /********************************************************************************************************
- DEFINE FOR SUPPORTED AUDIO CODEC & EFFECT
- *********************************************************************************************************/
- #define AUDIO_FEATURE_MP3 0x00000001
- #define AUDIO_FEATURE_AAC 0x00000002
- #define AUDIO_FEATURE_EAC3 0x00000004
- #define AUDIO_FEATURE_REAL 0x00000008 //COOK
- #define AUDIO_FEATURE_AC3 0x00000010
- #define AUDIO_FEATURE_WMASTD 0x00000020
- #define AUDIO_FEATURE_WMAPRO 0x00000040
- #define AUDIO_FEATURE_VORBIS 0x00000080
- #define AUDIO_FEATURE_AMR 0x00000100
- #define AUDIO_FEATURE_APE 0x00000200 //FFMPEG SUPPORT
- #define AUDIO_FEATURE_FLAC 0x00000400 //FFMPEG SUPPORT
- #define AUDIO_FEATURE_SILK 0x00000800
- #define AUDIO_FEATURE_AC3_ENCODE 0x00001000
- #define AUDIO_FEATURE_AAC_MAIN 0x00002000
- #define AUDIO_FEATURE_DTS 0x00004000
- #define AUDIO_FEATURE_DRA 0x00008000
- //AUDIO EFFECT
- #define AUDIO_FEATURE_SRSTSXT 0x00010000
- #define AUDIO_FEATURE_SRSTSHD 0x00010000
- #define AUDIO_FEATURE_SRSTVOL 0x00020000
- #define AUDIO_FEATURE_DBX 0x00040000
- #define AUDIO_FEATURE_SP_SUR 0x00080000
- #define AUDIO_FEATURE_MS_SUR 0x00100000
- #ifndef CONFIG_AUDIO_FEATURE
- #define CONFIG_AUDIO_FEATURE 0x00000000 // IF NOT DEFINE CONFIG_AUDIO_FEATURE, USE THIS SETTING FOR DEFAULT
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_MP3)
- #define AUDIO_CODEC_MP3 //support MP3 codec
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_AAC)
- #define AUDIO_CODEC_AAC //support AAC codec
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_EAC3)
- #define AUDIO_CODEC_EAC3 //support EAC3 codec
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_REAL)
- #define AUDIO_CODEC_REAL //support REAL codec
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_AC3)
- #define AUDIO_CODEC_AC3 //support AC3 codec
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_WMASTD)
- #define AUDIO_CODEC_WMASTD //support WMA2 (STD) codec
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_WMAPRO)
- #define AUDIO_CODEC_WMAPRO //support WMA3(PRO) codec
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_VORBIS)
- #define AUDIO_CODEC_VORBIS //support VORBIS codec
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_AMR)
- #define AUDIO_CODEC_AMR //support AMR NB/WB codec
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_APE)
- #define AUDIO_CODEC_APE //support APE codec
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_FLAC)
- #define AUDIO_CODEC_FLAC //support FLAC codec
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_DRA)
- #define AUDIO_CODEC_DRA //support DRA codec
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_SRSTSXT)
- #define AUDIO_EFFECT_SRSTSXT //support SRSTSXT audio effect
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_SRSTVOL)
- #define AUDIO_EFFECT_SRSTVOL //support SRSTVOL audio effect
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_MS_SUR)
- #define AUDIO_EFFECT_MS_SUR //Maximus Surround
- #endif
- #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_DBX)
- #define AUDIO_EFFECT_DBX
- #endif
- /********************************************************************************************************
- AUDIO ENUM FOR MISC SETTING
- *********************************************************************************************************/
- //typedef enum _audio_op
- enum
- {
- //BASIC AUDIO SETTING
- AUDIO_OP_SLIPSYNC = 0, // Add for user adjust Audio delay time unit: 1ms Range +200 ~-200(ms)
- AUDIO_OP_UFRC_DELAY_TIME,
- AUDIO_OP_DOLBY_AUDIO_EXTDELAY, // add for Dolby audio add ext pts offset delay time unit: 1ms Range +200ms ~-200ms
-
- //MISC SETTING
- AUDIO_OP_DD_DRC_MODE = 10,
- AUDIO_OP_OUTPUT_CHANNEL_MODE,
- AUDIO_OP_TXHW_MUTE_ENABLE, //Use to control AUDIO TX HW mute enable register, normal mute control don't control this register
- AUDIO_OP_DTV_ADVOL, // NO USED NOW
- AUDIO_OP_ADVOL,
- AUDIO_OP_SCARTONOFF, //USE TO CONTROL SCART BYPASS SIF FEATURE ON/OFF
- AUDIO_OP_ADC_DPGA_GAIN, //FOR APP CONTROL AUDIO ADC HW DPGA GAIN
- AUDIO_OP_ADC_PGA_GAIN, //FOR APP CONTROL AUDIO ADC HW PGA GAIN
- //SIF SETTING
- AUDIO_OP_STVMTS = 30, // SET TV MULTI SOUND
- AUDIO_OP_SIFFILBW, //set SIF filter bandwidth
- AUDIO_OP_UNDEF
- };
- //}AUDIO_OP_t, *pAUDIO_OP_t;
- #ifndef DEF_AUDIO_MENU_PATH
- #define DEF_AUDIO_MENU_PATH
- enum {
- AUDIO_MENU_INTERNAL,
- AUDIO_MENU_EXTERNAL,
- AUDIO_MENU_SPDIF_OUTPUT, //ONLY SPDIF OUTPUT (NO I2S OUT) , DOLBY WILL RAW OUTPUT, OTHERS WILL BE PCM
- AUDIO_MENU_PARALLEL_SPDIF_NONLINEAR,
- AUDIO_MENU_PARALLEL_SPDIF_LINEAR,
- AUDIO_MENU_SPDIF_OUTPUT_PCM, //ONLY SPDIF OUTPUT (NO I2S OUT) , ALL AUDIO TYPE WILL BE PCM OUTPUT (FLAG = DECODEING)
- AUDIO_MENU_MUTE,
- AUDIO_MENU_DISABLE,
- AUDIO_MENU_UNDEFINED,
- };
- #define AUDIO_MENU_PARALLEL_OUTPUT AUDIO_MENU_PARALLEL_SPDIF_NONLINEAR // reserved for backward compatible
- #endif
- // TruSurround XT modes
- enum
- {
- MIPS_SAI_TSXT_1_0, // C
- MIPS_SAI_TSXT_2_0, // L/R
- MIPS_SAI_TSXT_2_1, // L/R/Cs
- MIPS_SAI_TSXT_2_2, // L/R/Ls/Rs
- MIPS_SAI_TSXT_3_0, // L/C/R
- MIPS_SAI_TSXT_3_1, // L/C/R/Cs
- MIPS_SAI_TSXT_3_2, // L/C/R/Ls/Rs
- MIPS_SAI_TSXT_3_3, // L/C/R/Ls/Cs/Rs
- MIPS_SAI_TSXT_PASSIVEMATRIX, // Lt/Rt directly into L/R channels
- MIPS_SAI_TSXT_3_2_BSDIGITAL, // L/C/R/Ls/Rs compatible with BS Digital AAC content
- MIPS_SAI_TSXT_PL2_MUSIC, // L/C/R/Ls/Rs (PLII decoded in Music mode)
- MIPS_SAI_TSXT_CSII, // CSII decoded material
- MIPS_SAI_TSXT_TS_NUM_MODES
- };
- // TruSurround XT TruBass speaker sizes
- enum
- {
- MIPS_SAI_TSXT_SPK_40_HZ, // 40 Hz low-frequency response
- MIPS_SAI_TSXT_SPK_60_HZ, // 60 Hz low-frequency response
- MIPS_SAI_TSXT_SPK_100_HZ, // 100 Hz low-frequency response
- MIPS_SAI_TSXT_SPK_150_HZ, // 150 Hz low-frequency response
- MIPS_SAI_TSXT_SPK_200_HZ, // 200 Hz low-frequency response
- MIPS_SAI_TSXT_SPK_250_HZ, // 250 Hz low-frequency response
- MIPS_SAI_TSXT_SPK_300_HZ, // 300 Hz low-frequency response
- MIPS_SAI_TSXT_SPK_400_HZ, // 400 Hz low-frequency response
- MIPS_SAI_TSXT_NUM_SPK_SIZES
- };
- // Dolby Digital dynamic range compression modes
- enum
- {
- MIPS_SAI_DDCD_COMP_CA, // custom mode, analog dialnorm
- MIPS_SAI_DDCD_COMP_CD, // custom mode, digital dialnorm
- MIPS_SAI_DDCD_COMP_LO, // line out mode //standard
- MIPS_SAI_DDCD_COMP_RF, // RF remod mode //compressed
- MIPS_SAI_DDCD_NUM_COMP_MODES
- };
- //hauchuen@20110831 add for SRS TSHD PostProcessor interface
- typedef enum _SRS_TSHD_MODE_t{
- SRS_OFF = 0, //SRS disable
- SRS_TSXT_ON, //Enable SRS TSXT (Surround, DC, TB)
- SRS_TSHD_ON, //Enable SRS TSHD (Surround, DC, TB, Def)
- SRS_TSHD_BYPASS, //SRS TSHD BYPASS Mode
- SRS_TSHD_CERTIFICATION, //SRS TOOL
- SRS_TSHD_USERDEFINE, //reserved for user define whic feature will be enable
- SRS_TSHD_MAX,
- }SRS_TSHD_MODE_t;
- //typedef enum _audio_op
- enum
- {
- Fail,
- Success,
- Connecting
- };
- typedef enum _OUTPUT_CHANNEL_MODE_e
- {
- OUTPUT_CHANNEL_AUTO,
- OUTPUT_CHANNEL_STEREO,
- OUTPUT_CHANNEL_LEFT,
- OUTPUT_CHANNEL_RIGHT,
- OUTPUT_CHANNEL_MIX,
- OUTPUT_CHANNEL_MODE_NUM,
- }OUTPUT_CHANNEL_MODE_e;
- typedef enum _AudioSrc_e {
- AUDIOSRC_ATV,
- AUDIOSRC_DTV,
- AUDIOSRC_AV,
- AUDIOSRC_SV,
- AUDIOSRC_COMPONENT,
- AUDIOSRC_HDMI, //5
- AUDIOSRC_PC,
- AUDIOSRC_USB,
- AUDIOSRC_SCART,
- AUDIOSRC_MUSIC,
- AUDIOSRC_DVI, // 10
- AUDIOSRC_KOK, // 11
- AUDIOSRC_MOVIE, // 12
- AUDIOSRC_ANDROID, // 13
- AUDIOSRC_ALSA, // Super@20101026
- AUDIOSRC_DVD, //15 jovi@20120720 add
- #ifdef CONFIG_BLUETOOTH_SUPPORT
- AUDIOSRC_BLUETOOTH,
- #endif
- AUDIOSRC_NotDefine,
- }AudioSrc_e;
- enum
- {
- I2S,
- RF,
- };
- enum
- { // SPDIF 60958-3 page17, take care bit order in spec
- // bits 15 to 8
- SPDIF_CATEGORY_CODE_GENERAL = 0x0,
- // USA= 1100 100
- SPDIF_CATEGORY_CODE_DIGITAL_BROADCAST_USA = 0x64,
- // EUROPE= 0001 100
- SPDIF_CATEGORY_CODE_DIGITAL_BROADCAST_EUROPE = 0x0c,
- // JAPAN= 0000 100
- SPDIF_CATEGORY_CODE_DIGITAL_BROADCAST_JAPAN = 0x04,
- };
- enum// _SISAUDIO_DEV_MINOR
- {
- SISAUDIO_DEV_AUDIORX,
- SISAUDIO_DEV_REAL,
- SISAUDIO_DEV_DCT,
- SISAUDIO_DEV_MP,
- SISAUDIO_DEV_AAC,
- SISAUDIO_DEV_MP3,
- SISAUDIO_DEV_UNDEF,
- };
- //SRS TRUVOL
- typedef enum
- {
- VIQ_kSrsNormal,
- VIQ_kSrsLight,
- VIQ_kSrsVolumeModeSize
- } SRSVolumeIQMode;
- typedef enum
- {
- VIQ_kSrs20Hz,
- VIQ_kSrs40Hz,
- VIQ_kSrs110Hz,
- VIQ_kSrs200Hz,
- VIQ_kSrs315Hz,
- VIQ_kSrs410Hz,
- VIQ_kSrsVolumeSpeakerSize
- } SRSVolumeIQSpeakerSize;
- //~SRS TRUVOL
- typedef enum _POSTPROCESSOR_TYPE_t{
- PPTYPE_AUDIOEFFECT = 0,
- PPTYPE_SRS_TSXT = 1,
- PPTYPE_SRS_TRUEVOL = 2,
- PPTYPE_SRS_TSHD = 3,
- PPTYPE_PEQ = 4,
- PPYPE_MAXIMUS_SURROUND = 5,
- #if 0
- PPTYPE_SIS_EQ_INIT = 5, // new EQ: fc and Q setting
- PPTYPE_SIS_EQ_SET = 6, // new EQ: gain setting
- #endif
- PPTYPE_NR = 7, // Line in noise reduce
- PPTYPE_AGC = 8, // Audio Gain control (audiorom function)
- PPTYPE_TREBLE = 9,
- PPTYPE_BASS = 10,
- PPTYPE_PLC= 11, // Power Limiter Control
- PPTYPE_CUT_OFF= 12,
- PPTYPE_DBX= 13, // DBXAUDIO
- PPTYPE_HIGHPASS=14,
- PPTYPE_LOWPASS=15,
- PPTYPE_TITOI = 16,
- PPTYPTE_MAX_NUM,
- }POSTPROCESSOR_TYPE_t;
- #if 0
- enum
- {
- EQ_BAND1 = 0,
- EQ_BAND2,
- EQ_BAND3,
- EQ_BAND4,
- EQ_BAND5,
- EQ_BAND6,
- EQ_BAND7,
- EQ_BAND8,
- EQ_BAND9,
- EQ_BAND_MAX,// 9
- };
- enum
- {
- PEQ_BAND1 = 0,
- PEQ_BAND2,
- PEQ_BAND3,
- PEQ_BAND_MAX,// 3
- };
- #endif
- /** Total Sonics modes for DBXTV_SetMode() */
- typedef enum _DBXTV_TotSonMode
- {
- TOTSON_ON = 0,
- TOTSON_OFF
- } DBXTV_TotSonMode;
- /** Total Volume modes for DBXTV_SetMode() */
- typedef enum _DBXTV_TotVolMode
- {
- TOTVOL_NORMAL = 0,
- TOTVOL_NIGHT,
- TOTVOL_OFF
- } DBXTV_TotVolMode;
- /** Total Surround modes for DBXTV_SetMode() */
- typedef enum _DBXTV_TotSurMode
- {
- TOTSUR_ON = 0,
- TOTSUR_OFF
- } DBXTV_TotSurMode;
- enum
- {
- PEQ_BAND1 = 0,
- PEQ_BAND2,
- PEQ_BAND3,
- PEQ_BAND4,
- PEQ_BAND5,
- PEQ_BAND6,
- PEQ_BAND7,
- PEQ_BAND8,
- PEQ_BAND9,
- PEQ_BAND10,
- PEQ_BAND11,
- PEQ_BAND12,
- PEQ_BAND_MAX,// 12
- };
- typedef enum{
- SISAE_SURMODE_3DMONO = 0,
- SISAE_SURMODE_STEREO = 1,
- SISAE_SURMODE_VS3 = 2,
- SISAE_SURMODE_STEREO_MIX = 3,
- SISAE_SP_SURROUND = 4,
- //Reserved
- SISAE_SURMODE_MAX = 8,
- }SISAE_SURMODE;
- typedef enum
- {
- PLAYBACK_NORMAL = 0,
- PLAYBACK_FAST_2X,
- PLAYBACK_FAST_4X,
- PLAYBACK_SLOW_2X,
- PLAYBACK_SLOW_4X,
- PLAYBACK_SLOW_8X,
- PLAYBACK_SLOW_16X,
- PLAYBACK_SLOW_32X
- } AUDIO_PLAYBACK;
- //ava@20120530 for EU scart output
- typedef enum _SCART_STATUS
- {
- SCART_DISABLE= 0,
- SCART_ENABLE,
- } SCART_STATUS;
- //~ava
- //HW output path SDx->I2Sx->DACx
- typedef enum _TVFE_Audio_MUTE_Path_e
- {
- TVFE_AUDIO_MUTE_PATH_INVALID = 0,
- TVFE_AUDIO_MUTE_MAIN_SD0_PATH = 1, //TX HW AVC SD0 mute
- TVFE_AUDIO_MUTE_AUXI_SD1_PATH = 2, //TX HW AVC SD1 mute
- TVFE_AUDIO_MUTE_SPDIF_PATH = 3, //TX HW AVC SPDIF soft mute
- TVFE_AUDIO_MUTE_DAC_SPEAKER_PATH = 4, //TX HW DAC1 speaker mute
- TVFE_AUDIO_MUTE_DAC_HEADPHONE_PATH = 5, //TX HW DAC1 HP mute
- TVFE_AUDIO_MUTE_DAC_LINEOUT_PATH = 6, //TX HW DAC2 lineout mute
- TVFE_AUDIO_MUTE_I2S0_PATH = 7, //TX HW output IS20 mute
- TVFE_AUDIO_MUTE_I2S1_PATH = 8, //TX HW output IS21 mute
- TVFE_AUDIO_MUTE_I2S3_PATH = 9, //TX HW output IS23 mute
- TVFE_AUDIO_MUTE_DRV_ALL_PATH = 10, //FOR DRV TEMP MUTE CONTROL
- TVFE_AUDIO_MUTE_MAIN_SD0_L_PATH = 11, //TX HW AVC SD0 mute
- TVFE_AUDIO_MUTE_MAIN_SD0_R_PATH = 12, //TX HW AVC SD0 mute
- TVFE_AUDIO_MUTE_PATH_NR
- } TVFE_Audio_MUTE_Path_e;
- typedef enum _TVFE_Audio_VOLUME_Path_e
- {
- TVFE_AUDIO_VOL_PATH_INVALID = 0,
- TVFE_AUDIO_VOL_MAIN_SD0_PATH,
- TVFE_AUDIO_VOL_AUXI_SD1_PATH,
- TVFE_AUDIO_VOL_SPDIF_PATH,
- TVFE_AUDIO_VOL_PATH_NR
- } TVFE_Audio_VOLUME_Path_e;
- typedef enum _TVFE_Audio_Output_e
- {
- TVFE_AUDIO_OUTPUT_INVALID = 0,
- TVFE_AUDIO_OUTPUT_DAC0,
- TVFE_AUDIO_OUTPUT_DAC1,
- TVFE_AUDIO_OUTPUT_I2S0,
- TVFE_AUDIO_OUTPUT_I2S1,
- TVFE_AUDIO_OUTPUT_SPDIF,
- TVFE_AUDIO_OUTPUT_NR
- } TVFE_Audio_Output_e;
- typedef enum _TVFE_Audio_Data_e
- {
- TVFE_AUDIO_DATA_INVALID = 0,
- TVFE_AUDIO_DATA_SD0, //With PostProcess
- TVFE_AUDIO_DATA_SD1, //No PostProcess
- TVFE_AUDIO_DATA_NR
- } TVFE_Audio_Data_e;
- typedef enum _TVFE_Audio_Headphone_Status_e
- {
- TVFE_Audio_Headphone_PlugOut = 0,
- TVFE_Audio_Headphone_PlugIn,
- } TVFE_Audio_Headphone_Status_e;
- typedef enum _TVFE_Audio_GPIO_Status_e
- {
- TVFE_Audio_Low_Active = 0,
- TVFE_Audio_High_Active,
- } TVFE_Audio_GPIO_Status_e;
- typedef enum _AUDIO_SETTINGS_TYPE_e
- {
- AUDIO_SETTINGS_TYPE_BASS = 0,
- AUDIO_SETTINGS_TYPE_TREBLE,
- // AUDIO_SETTINGS_TYPE_EQ,
- AUDIO_SETTINGS_TYPE_BALANCE,
- AUDIO_SETTINGS_TYPE_VOLUME,
- AUDIO_SETTINGS_TYPE_VOL_OSD,
- AUDIO_SETTINGS_TYPE_VOL_OFFSET,
- AUDIO_SETTINGS_TYPE_SUN_SURROUND,
- AUDIO_SETTINGS_TYPE_SRS_TSHD,
- AUDIO_SETTINGS_TYPE_SRS_TVOL,
- AUDIO_SETTINGS_TYPE_AVL,
- AUDIO_SETTINGS_TYPE_PLC,
- } AUDIO_SETTINGS_TYPE_e;
- typedef enum _MPEGHEADER_CHANNEL_MODE_e
- {
- MPEG_STEREO_MODE,
- MPEG_JOINT_MODE,
- MPEG_DUAL_MODE,
- MPEG_SINGLE_MODE,
- MPEG_MODE_TOTAL_NUMBER,
- MPEG_MODE_ERROR, // NON MPEG AUDIO , RETURN ERROR.
- }MPEGHEADER_CHANNEL_MODE_e;
- typedef enum _TVFE_Audio_INFO_FLAG_e
- {
- SEND_INFO_UNKNOW = 0,
- SEND_INFO_HDMI_CEC = 1,
- //RESERVED
- }TVFE_Audio_INFO_FLAG_e;
- typedef enum _TVFE_Audio_ICSTS_Flag_e
- {
- ICSTS_FLAG_BONDING = 0,
- ICSTS_FLAG_BOOTMUSIC_PLAYING = 1,
- ICSTS_FLAG_QUERY_AUDIO_DATA_TYPE = 2,
- ICSTS_FLAG_MAX
- }TVFE_Audio_ICSTS_Flag_e;
- typedef enum _TVFE_Audio_Data_Type_e
- {
- AUDIO_CODEC_DATA_PCM = 0,
- AUDIO_CODEC_DATA_MPEG,
- AUDIO_CODEC_DATA_AC3, // 2
- AUDIO_CODEC_DATA_DTS,
- AUDIO_CODEC_DATA_AAC,
- AUDIO_CODEC_DATA_MP3,
- AUDIO_CODEC_DATA_REAL,
- AUDIO_CODEC_DATA_EAC3, //7
- AUDIO_CODEC_DATA_WMA,
- AUDIO_CODEC_DATA_COOK,
- AUDIO_CODEC_DATA_AMRNB,
- AUDIO_CODEC_DATA_AMRWB,
- AUDIO_CODEC_DATA_VORBIS,
- AUDIO_CODEC_DATA_SILK,
- AUDIO_CODEC_DATA_ISAC,
- AUDIO_CODEC_DATA_DRA,
- AUDIO_CODEC_DATA_FLAC, //16
- AUDIO_CODEC_DATA_MAX,
- }TVFE_Audio_Data_Type_e;
- typedef enum _TVFE_DOLBY_REGION_e
- {
- DOLBY_REGION_EU = 0,
- DOLBY_REGION_ATSC = 1,
- DOLBY_REGION_OTHERS = 2,
- }TVFE_DOLBY_REGION_e;
- typedef enum _TVFE_Audio_IOMUX_e
- {
- TVFE_AUDIO_IOMUX_INVALID = 0,
- TVFE_AUDIO_IOMUX_SD0, //no used now
- TVFE_AUDIO_IOMUX_SD1, //no used now
- TVFE_AUDIO_IOMUX_I2S_OUT_ENABLE, //enable I2S chip output
- TVFE_AUDIO_IOMUX_I2S_INIT, //init I2S chip out setting
- TVFE_AUDIO_IOMUX_DAC1_SRC, //Select Audio DAC1 SRC from I2S0 OR I2S1 , DEFAULT I2S0
- TVFE_AUDIO_IOMUX_DAC2_SRC, //Select Audio DAC2 SRC I2S0 OR I2S1 , DEFAULT I2S1
- TVFE_AUDIO_IOMUX_I2S0_SRC, //Select Audio I2S output from I2S0 OR I2S1 , DEFAULT I2S0 , CHIP ONLY ONE I2S OUTPUT
- TVFE_AUDIO_IOMUX_TX_AVC_I2S0_SRC, //TX input I2S0 SRC SELECT, Audio_I2S_SRC_t
- TVFE_AUDIO_IOMUX_TX_AVC_I2S1_SRC, //Tx input I2S1 SRC SELECT, Audio_I2S_SRC_t
- TVFE_AUDIO_IOMUX_SD0_CH_MUX, //select SD0 channel MUX // TVFE_Audio_CHMUX_e
- TVFE_AUDIO_IOMUX_SD1_CH_MUX, //select SD1 channel MUX // TVFE_Audio_CHMUX_e
- TVFE_AUDIO_IOMUX_MAX,
- } TVFE_Audio_IOMUX_e;
- typedef enum _TVFE_Audio_CHMUX_e
- {
- TVFE_Audio_TXCHMUX_LR=0,
- TVFE_Audio_TXCHMUX_LL=1,
- TVFE_Audio_TXCHMUX_RR=2,
- TVFE_Audio_TXCHMUX_RL=3,
- }TVFE_Audio_CHMUX_e;
- typedef enum
- {
- I2S0=0,
- I2S1,
- I2S2,
- I2S3,
- SPDIF,
- Audio_kNbOfI2S_DEVICE
- } AudioTX_OUT_DEVICE_t;
- typedef enum
- {
- I2S_SRC_SD0=0, //with audio effect
- I2S_SRC_SD1, //without audio effect
- I2S_SRC_SD2, //no used
- I2S_SRC_SD3, //no used
- I2S_SRC_WAVGEN,
- Audio_kNbOfI2S_SRC
- } Audio_I2S_SRC_t;
- typedef enum _TVFE_Audio_CODEC_TYPE_e
- {
- TVFE_AUDIO_CODEC_PCM = 0,
- TVFE_AUDIO_CODEC_MPEG = 1,
- TVFE_AUDIO_CODEC_DOLBY= 2,
- TVFE_AUDIO_CODEC_DTS = 3,
- TVFE_AUDIO_CODEC_AAC = 4,
- TVFE_AUDIO_CODEC_AACMAIN = 5,
- TVFE_AUDIO_CODEC_WMA2 = 6,
- TVFE_AUDIO_CODEC_COOK = 7,
- TVFE_AUDIO_CODEC_VORBIS = 8,
- TVFE_AUDIO_CODEC_DRA = 9,
- TVFE_AUDIO_CODEC_FLAC = 10,
- TVFE_AUDIO_CODEC_AMR = 11,
- }TVFE_Audio_CODEC_TYPE_e;
- typedef enum _TVFE_Audio_CODEC_FLAG_e
- {
- TVFE_AUDIO_CODEC_FLAG_SET = 0,
- TVFE_AUDIO_CODEC_FLAG_STOP = 1,
- TVFE_AUDIO_CODEC_FLAG_QUERY = 2,
- // TVFE_AUDIO_CODEC_FLAG_QUERY_TYPE = 3,
- }TVFE_Audio_CODEC_FLAG_e;
- typedef enum _TVFE_Audio_CODEC_STATUS_e
- {
- TVFE_AUDIO_CODEC_STATUS_COMPLETE = 0, //LOAD CODEC COMPLETE, CAN SEND CMD TO DECODE
- TVFE_AUDIO_CODEC_STATUS_THESAMECODEC = 1, //THE SAME CODEC
- TVFE_AUDIO_CODEC_STATUS_SCHEDULE = 2, //SCHEDULE LOAD CODEC SUCESSFULLY, APP
- TVFE_AUDIO_CODEC_STATUS_WAIT = 3, //WQ IS RUNNING, PLEASE WAIT 20ms TO CHECK AGAIN
- TVFE_AUDIO_CODEC_STATUS_ERROR = 4, //FAIL, NOT SUPPORT CODEC. OR SRC
- }TVFE_Audio_CODEC_STATUS_e;
- typedef enum _TVFE_Audio_ADCDAC_e
- {
- TVFE_AUDIO_ADCDAC_NOT_READY = 0,
- TVFE_AUDIO_ADCDAC_READY = 1,
- }TVFE_Audio_ADCDAC_e;
- /********************************************************************************************************
- AUDIO STRUCTURE FOR MISC SETTING
- *********************************************************************************************************/
- #pragma pack(push,1)
- typedef struct _AUDIO_RANGE
- {
- INT32 min[AUDIO_OP_UNDEF];
- INT32 max[AUDIO_OP_UNDEF];
- INT32 cur[AUDIO_OP_UNDEF];
- }AUDIO_RANGE, *pAUDIO_RANGE;
- typedef struct _TVFE_Audio_Output_Config_t
- {
- TVFE_Audio_Output_e Output_Port;
- TVFE_Audio_Data_e data_type;
- } TVFE_Audio_Output_Config_t,*pTVFE_Audio_Output_Config_t;
- typedef struct _AUDIO_OUTPUT_SELECT
- {
- INT32 audio_opt; // audio output path
- }AUDIO_OUTPUT_SELECT, *pAUDIO_OUTPUT_SELECT;
- typedef struct _AUDIO_SOURCE_SELECT
- {
- INT32 audio_src; // audio source
- INT32 audio_srcno; // audio source number
- UINT8 scart_enable; // 0:scart disable 1:scart enable //ava@20120530 for EU scart output
- }AUDIO_SOURCE_SELECT, *pAUDIO_SOURCE_SELECT;
- typedef struct _AUDIO_ADJUST
- {
- INT32 flag;
- INT32 value;
- union
- {
- UINT32 state : 32;
- struct
- {
- UINT32 FromOSD : 1; // 1: user mute 0: temp mute
- UINT32 LinkStatus : 2; //20080908 Kai add for pair function
- UINT32 FromMP3 : 1; //1: driver use temp mute status, it will not be , 0: UMF/KMF mute status
- UINT32 DisableAAMP : 1; // some audio amp has white noise issue when amp mute, so kmf will set disableamp=1, when no signal mute
- UINT32 TXMuteCTL: 1;
- UINT32 reserved : 26;
- };
-
- //HC modify New Adjust structure .
- struct
- {
- //mute control status
- UINT32 FlowMuteStatus : 3; // 0: temp mute, 1: user mute
- UINT32 NoKeepMuteStatus : 1; // 1: audio driver will not save mute status, it doesnt affect UMF mute status , 0: Flow mute control
- UINT32 NoSignalMute : 1; // 1: mute will disable audio amp , use from no siganl mute that may has white noise issue
- UINT32 MutePriority: 3; // 0: UMF/FLOW Control, 1: Drv temp mute .... others lower priority
- //others setting
- UINT32 reserved1_b8_b31 : 24;
- };
- //~HC
- };
- }AUDIO_ADJUST, *pAUDIO_ADJUST;
- // Nonlinear Audio Structure definition
- typedef struct _AUDIO_AC3HEADERDATA
- {
- union
- {
- struct
- {
- UINT32 ec3_dummy : 19;
- UINT32 bsid_dummy : 5;
- UINT32 ec3_lfeon : 1;
- UINT32 ec3_acmod : 3;
- UINT32 ec3_fscod2_numblkscod : 2;
- UINT32 ec3_fscod : 2;
- };
- struct
- { /* E-AC3 Case */
- UINT32 no_use02:26;
- UINT32 ec3_byte5bit23:2; //5[3:2]
- UINT32 ec3_byte5bit45:2; //5[5:4]
- UINT32 ec3_byte5bit76:2; //5[7:6]
- };
- struct
- {
- UINT32 dummy:13;
- UINT32 acmod:3; //7[7:5]
- UINT32 bsmod:3; //6[2:0]
- UINT32 bsid:5; //6[7:3]
- UINT32 frmsizecod:6; //5[5:0]
- UINT32 fscod:2; //5[7:6]
- };
- UINT32 dw2;
- };
- union
- {
- struct
- { /* E-AC3 Case */
- UINT32 ec3_frmsize:11;
- UINT32 substreamid:3;
- UINT32 strmtyp:2;
- UINT32 no_use01:16;
- };
- struct
- {
- UINT32 crc:16;
- UINT32 syncword:16;
- };
- UINT32 dw1;
- };
- }AUDIO_AC3HEADERDATA, *AUDIO_AC3HEADERDATAPTR;
- typedef struct _NOTICE_AUDIO_EVENT
- {
- UINT32 event_type; //event type, 0: audio_txhw_mute_enable
- INT32 event_data;
- } NOTICE_AUDIO_EVENT,*pNOTICE_AUDIO_EVENT;
- typedef struct _TVFE_Audio_Volume_t
- {
- TVFE_Audio_VOLUME_Path_e Vol_Path;
- INT32 Volume;
- UINT32 OSD_Volume_index; //0~100
- } TVFE_Audio_Volume_t,*pTVFE_Audio_Volume_t;
- typedef struct _TVFE_Audio_Balance_t
- {
- INT32 left_val;
- INT32 right_val;
- }TVFE_Audio_Balance_t, *pTVFE_Audio_Balance_t;
- typedef struct _TVFE_Audio_Mute_t
- {
- UINT8 Enable;
- TVFE_Audio_MUTE_Path_e Mute_Path;
- INT32 Mute_Delay; // delay > 0 : do mute control and then delay , delay < 0, delay before do mute control
- UINT8 Mute_TXSpeed; // CONTROL TX MUTE FADE SPEED(NON TX HW device is no useless)
- } TVFE_Audio_Mute_t,*pTVFE_Audio_Mute_t;
- typedef struct _TVFE_Audio_Headphone_t
- {
- UINT8 HP_DET_GPIO;
- TVFE_Audio_GPIO_Status_e GPIO_Status; // 1: High Active = Plug in, 0: Low Active = Plug in
- TVFE_Audio_Headphone_Status_e HP_Status;
- } TVFE_Audio_Headphone_t,*pTVFE_Audio_Headphone_t;
- typedef struct _TVFE_Audio_INFO_t
- {
- UINT32 flag; //REFER TVFE_Audio_INFO_FLAG_e
- union{
- UINT32 cec_audio_format; //REMAP AUDIO_FEATURE
- //reserved for others info
- UINT32 audio_info;
- };
- }TVFE_Audio_INFO_t, *pTVFE_Audio_INFO_t;
- typedef struct _TVFE_Audio_ICSTS_t
- {
- TVFE_Audio_ICSTS_Flag_e flag; //SELECT STATUS TYPE : 0: IC BONDING STATUS, 1: BMUSIC PLAYING STATUS
- UINT8 DOLBY_status; //0: NOT SUPPORT DOLBY 1: SUPPORT DOLBY
- UINT8 SRSTSHD_status; //0: NOT SUPPORT SRSTSHD 1: SUPPORT DOLBY
- UINT8 BMUSIC_ISPLAYING; //0: BMUSIC DON'T BE PLAYING, 1: BMUSIC IS PLAYING
- TVFE_Audio_Data_Type_e audio_data_type; //
- } TVFE_Audio_ICSTS_t,*pTVFE_Audio_ICSTS_t;
- /*
- CUSTOMIZE PROJECT INFO FOR DRIVER SETTING.
- */
- typedef struct _TVFE_Audio_Project_Info_t
- {
- UINT32 spdif_category_boardcast_type;//ATV/DTV
- UINT32 spdif_category_type; //OTHERS , EXPECT HDMI
- UINT32 dolby_region; // DOLBY HAS DIFF SPEC BY REGION(EX. LOUNDESS OR DRC ), USE THIS FLAG TO CONTROL DRIVER SETTING
- //0: EU, 1, ATSC, 2: OTHERS(ASIA)
- //RESERVED
- } TVFE_Audio_Project_Info_t,*pTVFE_Audio_Project_Info_t;
- typedef struct _TVFE_Audio_IO_SELECT_t
- {
- TVFE_Audio_IOMUX_e flag; //SELECT IO TYPE
- TVFE_Audio_CHMUX_e i2s_ch_map;
- UINT8 src_type; //SELECT I2S SRC Audio_I2S_SRC_t
- //FOR I2S OUT ENABLE SETING
- UINT8 i2s_out_enable; //for I2S OUTPUT ENABLE 0: DISABLE , 1: ENABLE
- UINT8 i2s_sd_pin; // set1~4
- UINT8 i2s_ws_pin; // set1~4
- UINT8 i2s_mck_pin; // set1~4
- UINT8 i2s_sck_pin;
- } TVFE_Audio_IO_SELECT_t,*pTVFE_Audio_IO_SELECT_t;
- typedef struct _TVFE_Audio_LOAD_CODEC_t
- {
- TVFE_Audio_CODEC_FLAG_e flag; //LOAD CODEC FLAG
- TVFE_Audio_CODEC_TYPE_e new_type; //NEW AUDIO CODEC TYPE
- TVFE_Audio_CODEC_TYPE_e cur_type; //CURRENT AUDIO CODEC TYPE
- TVFE_Audio_CODEC_STATUS_e status; //LOAD CODEC STATUS
- }TVFE_Audio_LOAD_CODEC_t,*pTVFE_Audio_LOAD_CODEC_t;
- typedef struct _TVFE_Audio_ADCDADC_t
- {
- TVFE_Audio_ADCDAC_e poweron_ready;
- }TVFE_Audio_ADCDADC_t,*pTVFE_Audio_ADCDADC_t;
- /********************************************************************************************************
- AUDIO STRUCTURE FOR POSTPROCESSOR SETTING
- *********************************************************************************************************/
- typedef struct _DAC_Vol_Config
- {
- UINT8 enable;
- //UINT8 timer; //control attack time , unit 1ms, min : 10ms (default) range: 10ms ~ 200ms
- UINT8 release_ratio; //control release ratio , to avoid audio output unsmooth issue.
- UINT8 gain_step_dB; //control release and attack adjust gain. 1=0.125db
- }DAC_Vol_Config, *pDAC_Vol_Config;
- typedef struct _CUT_OFF_SET
- {
- UINT8 enable;
- UINT8 freq_index;
- }CUT_OFF_SET, *pCUT_OFF_SET;
- typedef struct _HPLP_SET
- {
- UINT8 hp_en;
- UINT8 lp_en;
- INT32 freq_hp;
- INT32 freq_lp;
- INT8 Q_hp;
- INT8 Q_lp;
- }HPLP_SET, *pHPLP_SET;
- typedef struct _PLC_Config
- {
- UINT8 enable;
- UINT8 timer; //control attack time , unit 1ms, min : 10ms (default) range: 10ms ~ 200ms
- UINT8 attack_release_ratio; //control atack : release ratio , to avoid audio output unsmooth issue.
- INT32 SP_attack; // PLC Setting for Speaker 0: 0dB, -1 : -0.125dB , 2 : -0.25dB Min = -240(-30dB)
- INT32 HP_attack; // PLC Setting for headphone 0: 0dB, -1 : -0.125dB , 2 : -0.25dB Min = -240(-30dB)
- INT32 LO_attack; // PLC Setting for line out 0: 0dB, -1 : -0.125dB , 2 : -0.25dB Min = -240(-30dB)
- }PLC_Config, *pPLC_Config;
-
- typedef struct _SRS_TSHD_SET
- {
- //op mode
- struct
- {
- UINT8 SRSTSHD_MODE : 4; //0: OFF, 1: Lt/Rt mode 2:bypass 3:user define
- UINT8 reserved1: 4;
- };
- //internal parameter control
- struct
- {
- UINT8 Enable : 1; // Main function Enable flag
- UINT8 Surround_En : 1; //Surround Enable
- UINT8 DialogClarity_En : 1; // Focus enable/disable flag (Dialog Clarity)
- UINT8 TruBassFront_En : 1; // TruBass enable/disable flag
- UINT8 DefinitionFront_En : 1;
- UINT8 TruBass_spksize : 3; //// TruBass speaker size, 0~7 40Hz~400Hz
- };
- struct
- {
- UINT8 Inputmode : 4; // TruSurround mode, 0~11
- UINT8 Outputmode: 3; // fix at STEREO output
- UINT8 reserved3: 1;
- };
- //customer setting
- UINT8 InputGain; //0~100 -> 0.0~1.00
- UINT8 OutputGain; //0~100 -> 0.0~1.00
- UINT8 bypassGain; //0~100 -> 0.0~1.00
- UINT8 SurroundLevel; // 0~ 100 -> 0.0~ 1.00
- UINT8 DialogClarityLevel; // 0~ 100 -> 0.0~ 1.00
- UINT8 TruBassFrontLevel; // 0~ 100 -> 0.0~ 1.00
- UINT8 DefinitionFrontLevel; // 0~ 100 -> 0.0~ 1.00
- }SRS_TSHD_SET, *pSRS_TSHD_SET;
- typedef struct _SISAE_SET
- {
- struct
- {
- UINT8 SiSAE_enable: 1;
- UINT8 SiSAE_surround_en:1;
- UINT8 SiSAE_voice_en: 1;
- UINT8 SiSAE_bass_en: 1;
- UINT8 sf_exp: 1; //EXPANSION SOUND FIELD
- UINT8 Reserved0: 3;
- };
- UINT8 SiSAE_Sur_mode; //surround mode
- UINT8 SiSAE_Sur_Lv; // surround level
- UINT8 SiSAE_Voice_Lv; //voice level
- UINT8 SiSAE_Bass_Lv; // bass level
- UINT8 SiSAE_Bass_Freq; // bass freq
- UINT8 SiSAE_inputgain;
- UINT8 directgain; //only use for S+ Surround range 1~10 , default 9
- UINT8 reverbgain; //only use for S+ Surround range 1~10 , default 7
- UINT8 ambiancegain; //only use for S+ Surround range 1~10 , default 9
- }SISAE_SET, *pSISAE_SET;
- typedef struct _MS_AE_SET
- {
- struct
- {
- UINT8 MS_AE_enable: 1;
- UINT8 MS_AE_surround_en:1;
- UINT8 MS_AE_voice_en: 1;
- UINT8 MS_AE_bass_en: 1;
- UINT8 MS_definition_en: 1;
- UINT8 MS_AE_sf_exp: 1; //EXPANSION SOUND FIELD
- UINT8 Reserved0: 2;
- };
-
-
- UINT8 MS_AE_surround_gain; //total gain output
- UINT8 MS_AE_Sur_Lv; // , default 8 //0.0~1.0,outputsound= (1-gain)*(input_sound) + gain*(surround_sound)
- UINT8 MS_AE_Sur_Delay; // surround level delay ,delay sample //0~4800,echo effect , 480 sample/step.
- UINT8 MS_AE_Bass_Freq; // bass freq 0:100 1:200 2:400
- UINT8 MS_AE_bassfix_gain; // , default 8
- UINT8 MS_AE_Voice_Lv; //voice level ,dialog clarity //0~+10dB (2500Hz EQ)
- UINT8 MS_AE_Definition_gain; // high pass definition 0~+10dB (5000Hz EQ)
- UINT8 reserved1;
- UINT8 reserved2;
-
- }MS_AE_SET, *pMS_AE_SET;
- typedef struct _PEQ_ELEMENT
- {
- UINT32 valid; // 0: disable, 1:enable
- UINT32 gain;
- UINT32 alpha;
- UINT32 beta;
- UINT32 gamma;
- } PEQ_ELEMENT, *pPEQ_ELEMENT;
- typedef struct _PEQ_SET
- {
- UINT8 valid[PEQ_BAND_MAX]; // 0: disable, 1:enable
- UINT32 fc[PEQ_BAND_MAX]; // center frequency: 20~20000
- UINT8 q[PEQ_BAND_MAX]; // 1(0.1)~30(3.0)
- INT8 gain[PEQ_BAND_MAX]; // -50(-12dB)~50(+12dB), each step is 0.24dB
- }PEQ_SET, *pPEQ_SET;
- typedef struct _PEQ_CONTROL_PARAMETER
- {
- unsigned int valid;
- unsigned int gain;
- unsigned int fc;
- unsigned int q;
- }PEQ_CONTROL_PRARMETER, *pPEQ_CONTROL_PARAMETER ;
- typedef struct _TB_CONTROL_PARAMETER
- {
- unsigned int valid;
- int gain;
- unsigned int fc;
- unsigned int q;
- }TB_CONTROL_PARAMETER, *pTB_CONTROL_PARAMETER;
- typedef struct _HPLP_CONTROL_PARAMETER
- {
- unsigned int valid;
- int gain;
- unsigned int fc;
- unsigned int q;
- }HPLP_CONTROL_PARAMETER, *pHPLP_CONTROL_PARAMETER;
- #if 0
- // SIS_PEQ_SET, SIS_EQ_SET and SIS_EQ_INIT are for umf/kmf
- typedef struct _PEQ_SET
- {
- UINT8 index;
- UINT8 valid; // 0: disable, 1:enable
- UINT32 fc; // center frequency: 20~20000
- UINT8 q; // 1(0.1)~30(3.0)
- INT8 gain; // -50(-12dB)~50(+12dB), each step is 0.24dB
- } PEQ_SET, *pPEQ_SET;
- typedef struct _SIS_EQ_SET
- {
- UINT8 enable; // 0: off, 1: on
- INT8 gain[EQ_BAND_MAX];
- } SIS_EQ_SET, *pSIS_EQ_SET;
- typedef struct _SIS_EQ_INIT
- {
- UINT8 valid[EQ_BAND_MAX]; // 0: disable, 1:enable
- UINT32 fc[EQ_BAND_MAX]; // center frequency: 20~20000
- UINT8 q[EQ_BAND_MAX]; // 1(0.1)~30(3.0)
- } SIS_EQ_INIT, *pSIS_EQ_INIT;
- #endif
- typedef struct _NOISE_REDUCE
- {
- // UINT8 mode; //0:Line in only, 1: Line in + ATV 2:Line in + ATV + Digital (HDMI, DTV, USB ...etc))
- UINT8 enable; // 0: disable, gain = 0db, 1: enable NR , decrease gain when input level is smaller
- UINT8 noiselevel; //if input level < noise level, reduce gain , if input > noise level, increase gain , max = 0db //<0:-60dB,1:-62dB,2:-64dB,3:-66db,4:-68db,5:-70db,6:-72db,7:-74dB,8:-76dB>
- UINT8 max_reduce_gain; // if input < noise level, max reduce gain, <0:-12dB,1:-15db,2:-18db,3:-24db,4:-30db,5:-36db,6:-42db,7:-48dB,8:-54db,9:-60dB,10:-107db>
- UINT8 rate; //NR adjust gain step
- }NOISE_REDUCE, *PNOISE_REDUCE;
- typedef struct _SIS_AGC_INFO
- {
- UINT8 AGC_Enable; /* True = Process, False = Bypass */
- UINT8 AGC_limiter_level; //unit -1dB, 0: 0: 0.dB(default), 1: -1dB, 2: -2dB.... Max: 30 : -30dB
- UINT8 AGC_pullup_gain; //unit: +1dB, 0: 0.dB(default), 1: 1 dB... max:18(+18 dB)
- UINT8 AGC_attack_rate; //attack/release rate , 0: 1/4 , 1: 1/8, 2: 1/16, 3: 1/32, 4: 1/64 , 5: 1/128 6: 1/256 , 7: 1/512 , 8: 1/1024 9: 1/2048, 10: 1/4096
- UINT8 AGC_pullup_active_level; //internal use, control pullup gain active level, max = -12dB ( pullup gain only work at input < -12dB)
- UINT8 AGC_Tool_Control;
- UINT8 AGC_active_time; //unit 10ms, 0: 10ms, 1: 20ms .... 15: 160ms
- UINT8 AGC_attack_speed; //Control attack speed, 0: default(slowest) ~ 7: fastest (30x default)
- }SIS_AGC_INFO, *pSIS_AGC_INFO;
- typedef struct _SRS_TVOL_SET
- {
- UINT8 SRSTVEnable;
- UINT8 tv;
- UINT8 tvnoise;
- UINT8 noisethreshold;
- UINT8 tvmode;
- UINT8 tvspksize;
- UINT16 inputgain;
- UINT8 outputgain;
- UINT8 bypassgain;
- UINT8 referencelevel;
- UINT16 maxgain;
- } SRS_TVOL_SET, *pSRS_TVOL_SET;
- typedef struct _DBXAUDIO_SET
- {
- UINT8 mtotvol;
- UINT8 mtotsur;
- UINT8 mtotson;
- UINT32 enable_flag;
- }DBXAUDIO_SET, *pDBXAUDIO_SET;
- typedef struct _TREBLE_SET
- {
- INT8 treble_gain;
- UINT32 treble_frequency;
- }TREBLE_SET, *pTREBLE_SET;
- typedef struct _BASS_SET
- {
- INT8 bass_gain;
- UINT32 bass_frequency;
- }BASS_SET, *pBASS_SET;
- typedef struct _AUDIO_POSTPROCESS_SET
- {
- INT32 flag;
- union
- {
- SRS_TSHD_SET tshd; //current srstshd setting
- SRS_TVOL_SET tvol; // Truevolume setting
- PEQ_SET peq; // current PEQ setting
- // SIS_EQ_INIT eqInit;// new EQ
- // SIS_EQ_SET eqSet; // new EQ
- SISAE_SET sisAE;
- MS_AE_SET ms_ae;
- NOISE_REDUCE nr;
- SIS_AGC_INFO agc_info;
- PLC_Config plc;
- CUT_OFF_SET cut_off;
- HPLP_SET hp_lp;
- DBXAUDIO_SET dbx;
- char titoi;
- #ifdef CONFIG_AUDIO_PARAMETRIC_SHELVING
- TREBLE_SET treble;
- BASS_SET bass;
- #else
- INT8 treble;
- INT8 bass;
- #endif
- };
- }AUDIO_POSTPROCESS_SET, *pAUDIO_POSTPROCESS_SET;
- //SAVE APP AUDIO SETTTING STATUS
- typedef struct _AUDIO_APP_STATUS
- {
- union{
- UINT32 mute_status_all;
-
- struct{
- //SAVE REAL HW MUTE STATUS
- UINT32 mute_tx_sd0:1;
- UINT32 mute_tx_sd1:1;
- UINT32 mute_tx_spdif:1;
- UINT32 mute_dac_speaker : 1;
- UINT32 mute_dac_headphone : 1;
- UINT32 mute_dac_lineout : 1;
- UINT32 mute_tx_I2S3:1;
- UINT32 mute_status_reserved1 : 9;
- //SAVE APP MUTE STATUS, DC MUTE WILL CHECK THESE FLAG.
- UINT32 mute_app_tx_sd0: 1;
- UINT32 mute_app_tx_sd1: 1;
- UINT32 mute_app_tx_spdif: 1;
- UINT32 mute_app_dac_speaker:1;
- UINT32 mute_app_dac_headphone: 1;
- UINT32 mute_app_dac_lineout :1;
- UINT32 mute_app_tx_I2S3:1;
- UINT32 mute_status_reserved2:9;
- };
- };
- INT32 SD0_Vol;
- INT32 SD1_Vol;
- INT32 SPDIF_Vol;
- UINT32 OSD_SD0;
- UINT32 OSD_SD1;
- UINT32 OSD_SPDIF;
- INT32 Bal_L;
- INT32 Bal_R;
- UINT32 ADC_PIN;
-
- }AUDIO_APP_STATUS, *pAUDIO_APP_STATUS;
- #pragma pack(pop)
- /********************************************************************************************************
- AUDIO STRUCTURE FOR AUDIO TOOL
- *********************************************************************************************************/
- #if 0
- typedef struct _AUDIO_SETTINGS_EQ
- {
- INT8 gain[PEQ_BAND_MAX];
- UINT8 valid[PEQ_BAND_MAX]; // 0: disable, 1:enable
- UINT32 fc[PEQ_BAND_MAX]; // center frequency: 20~20000
- UINT8 q[PEQ_BAND_MAX]; // 1(0.1)~30(3.0)
- } AUDIO_SETTINGS_EQ;
- #endif
- typedef struct _AUDIO_SETTINGS_BALANCE
- {
- INT32 left;
- INT32 right;
- } AUDIO_SETTINGS_BALANCE;
- typedef struct _AUDIO_SETTINGS_VOLUME
- {
- INT32 master;
- INT32 aux1;
- } AUDIO_SETTINGS_VOLUME;
- typedef struct _AUDIO_SETTINGS_VOLUME_OSD_INDEX
- {
- UINT32 OSD_SD0;
- UINT32 OSD_SD1;
- }AUDIO_SETTINGS_VOLUME_OSD_INDEX;
- typedef struct _AUDIO_SETTINGS_VOL_OFFSET
- {
-
- } AUDIO_SETTINGS_VOL_OFFSET;
- typedef struct _AUDIO_SETTINGS_SUN_SURROUND
- {
- UINT8 directgain;
- UINT8 reverbgain;
- UINT8 ambiancegain;
- } AUDIO_SETTINGS_SUN_SURROUND;
- typedef struct _AUDIO_SETTINGS_t
- {
- AUDIO_SETTINGS_TYPE_e type;
- union
- {
- INT8 bass;
- INT8 treble;
- // AUDIO_SETTINGS_EQ eq;
- AUDIO_SETTINGS_BALANCE balance;
- AUDIO_SETTINGS_VOLUME volume;
- AUDIO_SETTINGS_VOLUME_OSD_INDEX Osd_volume_index;
- AUDIO_SETTINGS_VOL_OFFSET vol_offset;
- AUDIO_SETTINGS_SUN_SURROUND sun_surround;
- SRS_TSHD_SET tshd;
- SRS_TVOL_SET tvol;
- SIS_AGC_INFO avl;
- PLC_Config plc;
- };
- } AUDIO_SETTINGS_t;
- typedef struct _AUDIO_REC_PARAM_t
- {
- UINT32 rec_cmdbuf_size;
- UINT32 rec_pcmbuf_size;
- UINT32 rec_txdespbuf_size;
- UINT32 rec_actlbuf_size;
- UINT32 rec_cmdbuf_kbase;
- UINT32 rec_pcmbuf_kbase;
- UINT32 rec_txdespbuf_kbase;
- UINT32 rec_actlbuf_kbase;
- UINT32 rec_raw_frame_size;
- UINT32 rec_pcm_frame_size;
- UINT32 rec_pcm_wp;
- INT32 rec_pcm_rp;
- }AUDIO_REC_PARAM_t;
- typedef enum
- {
- AUDIOPOWER_DAC2_OUTPUT, //DAC2 power control
- AUDIOPOWER_ADC_INPUT, // ADC in power control
- AUDIOPOWER_POWER_DOWN, //SET audio Power off
- //reserved for other devices
- AUDIOPOWER_DEVICE_UNKNOW = 0xff
- }AUDIOPOWER_DEVICE;
-
- typedef struct _AUDIO_DEVICE_POWERCTRL
- {
- UINT8 flag;
- UINT8 POWERStatus;
- }AUDIO_DEVICE_POWERCTRL, *pAUDIO_DEVICE_POWERCTRL;
- void DRV_AUDIO_RESET_DAC_SDM(void);
- #ifdef CONFIG_SUPPORT_DBX
- /** Parameters structure.
- This defines the DSP parameters that get copied from the preset to
- the DSP memory.
- */
- typedef struct _DBXTV_PARAMETERS
- {
- UINT32 DVCOnOff;
- UINT32 DVCFreq;
- UINT32 DVCHiLevel;
- UINT32 DVCHiRMSTime;
- UINT32 DVCHiAvgAttTime;
- UINT32 DVCHiAvgRelTime;
- UINT32 DVCHiAttRat;
- UINT32 DVCHiRelRat;
- UINT32 DVCHiAttThr;
- UINT32 DVCHiRelThr;
- UINT32 DVCHiAttDel;
- UINT32 DVCHiRelDel;
- UINT32 DVCHiGate;
- UINT32 DVCHiGain;
- UINT32 DVCHiHold;
- UINT32 DVCHiRMS;
- UINT32 DVCHiRMSTimeConst;
- UINT32 DVCHiAvgAttTimeConst;
- UINT32 DVCHiAvgRelTimeConst;
- UINT32 DVCHiAvgAttTCNormal;
- UINT32 DVCHiAvgAttTCFast;
- UINT32 DVCHiAvgRelTCNormal;
- UINT32 DVCHiAvgRelTCFast;
- UINT32 DVCLoLevel;
- UINT32 DVCLoRMSTime;
- UINT32 DVCLoAvgAttTime;
- UINT32 DVCLoAvgRelTime;
- UINT32 DVCLoAttRat;
- UINT32 DVCLoRelRat;
- UINT32 DVCLoAttThr;
- UINT32 DVCLoRelThr;
- UINT32 DVCLoAttDel;
- UINT32 DVCLoRelDel;
- UINT32 DVCLoGate;
- UINT32 DVCLoGain;
- UINT32 DVCLoHold;
- UINT32 DVCLoRMS;
- UINT32 DVCLoRMSTimeConst;
- UINT32 DVCLoAvgAttTimeConst;
- UINT32 DVCLoAvgRelTimeConst;
- UINT32 DVCLoAvgAttTCNormal;
- UINT32 DVCLoAvgAttTCFast;
- UINT32 DVCLoAvgRelTCNormal;
- UINT32 DVCLoAvgRelTCFast;
- UINT32 DVCMuteOnOff;
- UINT32 DVCMuteTime;
- UINT32 DVCMuteLevel;
- UINT32 DVCMuteDetect;
- UINT32 DVCMuteHold;
- UINT32 DVCHold;
- UINT32 DVCOrder;
- UINT32 DVCCoupling;
- UINT32 DVCHoldTime;
- UINT32 DVCHoldTC;
- UINT32 DPPOnOff;
- UINT32 DPPThresh;
- UINT32 DPPAvgTime;
- UINT32 DPPSumRMS;
- UINT32 DPPDifRMS;
- UINT32 DPPProtect;
- UINT32 DPPGain;
- UINT32 DPPHPBypass;
- UINT32 DPPFreq;
- UINT32 DPPEQBypass;
- UINT32 DPPGL;
- UINT32 DPPGM;
- UINT32 DPPGH;
- UINT32 DPPFL;
- UINT32 DPPFH;
- UINT32 DPPRMSTime;
- UINT32 DPPRMSTimeConstSum;
- UINT32 DPPRMSTimeConstDif;
- UINT32 DPPCenter;
- UINT32 DPPAvgTimeConst;
- UINT32 IWBypass;
- UINT32 IWSpaceGain;
- UINT32 IWClip;
- UINT32 EQBypass;
- UINT32 EQNumBands;
- UINT32 BEOnOff;
- UINT32 BEFreq;
- UINT32 BEMaxGain;
- UINT32 BEOrder;
- UINT32 BEHPFFreq;
- UINT32 BELevel;
- UINT32 BERMSTime;
- UINT32 BEAvgAttTime;
- UINT32 BEAvgRelTime;
- UINT32 BEGainRat;
- UINT32 BEGain;
- UINT32 BERMS;
- UINT32 BERMSTimeConst;
- UINT32 BEAvgAttTimeConst;
- UINT32 BEAvgRelTimeConst;
- UINT32 BEPeakThreshLin;
- } DBXTV_PARAMETERS;
- /** Coefficients structure.
- This defines the DSP coefficients that get copied from the preset to
- the DSP memory.
- */
- typedef struct _DBXTV_COEFFICIENTS
- {
- INT32 DVClpfL1coef[5];
- INT32 DVChpfL1coef[5];
- INT32 DPPeqlcoef[5];
- INT32 DPPeqlmcoef[5];
- INT32 DPPeqhmcoef[5];
- INT32 DPPeqhcoef[5];
- INT32 DPPhpfdifcoef[5];
- INT32 IWEQCoefs[5];
- INT32 DEQCoefs0[5];
- INT32 DEQCoefs1[5];
- INT32 DEQCoefs2[5];
- INT32 DEQCoefs3[5];
- INT32 DEQCoefs4[5];
- INT32 DEQCoefs5[5];
- INT32 DEQCoefs6[5];
- INT32 DVCBELPF1Coefs[5];
- INT32 DVCBELPF2Coefs[5];
- INT32 DVCBEHPF1Coefs[5];
- INT32 DVCBEHPF2Coefs[5];
- INT32 BEHPFCoefs[5];
- } DBXTV_COEFFICIENTS;
- /** Data structure */
- typedef union _DBXTV_Param
- {
- UINT32 Data[95];
- DBXTV_PARAMETERS Params;
- } DBXTV_Param;
- /** Coef structure */
- typedef union _DBXTV_Coeff
- {
- UINT32 Data[100];
- DBXTV_COEFFICIENTS Coefs;
- } DBXTV_Coeff;
- typedef struct _DBX_PARAM_TABLE
- {
- DBXTV_Param TotSonParam[1];
- DBXTV_Coeff TotSonCoeff[1];
- DBXTV_Param TotVolParam[2];
- DBXTV_Coeff TotVolCoeff[2];
- DBXTV_Param TotSurParam[1];
- DBXTV_Coeff TotSurCoeff[1];
- }DBX_PARAM_TABLE,*pDBX_PARAM_TABLE;
- typedef struct _DBX_CTL
- {
- UINT32 flag; //0: GET, 1: SET
- UINT32 table_type;
- UINT32 offset;
- UINT32 value;
- }DBX_CTL,*pDBX_CTL;
- #endif //~ CONFIG_SUPPORT_DBX
- #endif
|