drv_audio_interface.h 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545
  1. #ifndef _DRV_AUDIO_INTERFACE_H
  2. #define _DRV_AUDIO_INTERFACE_H
  3. #include <linux/version.h>
  4. #if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,16)
  5. #include <stdbool.h>
  6. #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
  7. #else
  8. # error Linux kernel version not supported!
  9. #endif
  10. #include "drv_types.h"
  11. /********************************************************************************************************
  12. DEFINE FOR AUDIO IOCTL FLAG
  13. *********************************************************************************************************/
  14. #ifndef IRQ_AUDIORX
  15. #define IRQ_AUDIORX 62
  16. #endif
  17. #define RX_MAGIC 'q'
  18. #define RX_BASE 861
  19. //BASIC IOCTL
  20. #define RX_AUDIOOUTPUTSELECT _IOWR(RX_MAGIC, RX_BASE+0x01, INT32)
  21. #define RX_AUDIOSOURCEENABLE _IOWR(RX_MAGIC, RX_BASE+0x02, INT32)
  22. #define RX_AUDIOSOURCEDISABLE _IOWR(RX_MAGIC, RX_BASE+0x03, INT32)
  23. #define RX_AUDIOADJUST _IOWR(RX_MAGIC, RX_BASE+0x04, INT32)
  24. #define RX_AUDIO_GET_HPSTATUS _IOWR(RX_MAGIC, RX_BASE+0x05, INT32)
  25. #define RX_AUDIO_GET_MUTESTATUS _IOWR(RX_MAGIC, RX_BASE+0x06, INT32)
  26. #define RX_AUDIO_SET_VOLUME _IOWR(RX_MAGIC, RX_BASE+0x07, INT32)
  27. #define RX_AUDIO_SET_BALANCE _IOWR(RX_MAGIC, RX_BASE+0x08, INT32)
  28. #define RX_AUDIO_SET_MUTE _IOWR(RX_MAGIC, RX_BASE+0x09, INT32)
  29. #define RX_AUDIO_SET_ADCPIN _IOWR(RX_MAGIC, RX_BASE+0x0a, INT32)
  30. #define RX_AUDIO_SET_AUDIOPATH _IOWR(RX_MAGIC, RX_BASE+0x0b, INT32)
  31. #define RX_AUDIO_HEADPHONE_INIT _IOWR(RX_MAGIC, RX_BASE+0x0c, INT32)
  32. #define RX_AUDIO_DEVICE_POWERCTR _IOWR(RX_MAGIC, RX_BASE+0x0d, INT32)
  33. #define RX_AUDIO_GET_ICBONDING _IOWR(RX_MAGIC, RX_BASE+0x0e, INT32)
  34. #define RX_AUDIO_PROJECT_INIT _IOWR(RX_MAGIC, RX_BASE+0x0f, INT32)
  35. #define RX_AUDIO_IO_SELECT _IOWR(RX_MAGIC, RX_BASE+0x10, INT32)
  36. #define RX_AUDIO_LOAD_CODEC _IOWR(RX_MAGIC, RX_BASE+0x11, INT32)
  37. #define RX_AUDIO_GET_ADCDACST _IOWR(RX_MAGIC, RX_BASE+0x12, INT32)
  38. #define RX_AUDIO_SWAP_RX_LR_CH _IOWR(RX_MAGIC, RX_BASE+0x13, INT32)
  39. //POSTPROCESSOR
  40. #define RX_SETPOSTPROCESSOR _IOWR(RX_MAGIC, RX_BASE+0x20, INT32)
  41. #ifdef CONFIG_SUPPORT_DBX
  42. #define RX_GET_DBX_TABLE _IOWR(RX_MAGIC, RX_BASE+0x21, INT32)
  43. #define RX_DBX_CTL _IOWR(RX_MAGIC, RX_BASE+0x22, INT32)
  44. #endif
  45. //SIF SETTING
  46. #define RX_TVSYSTEM _IOWR(RX_MAGIC, RX_BASE+0x40, INT32)
  47. #define RX_SETATVSYSTEM _IOWR(RX_MAGIC, RX_BASE+0x41, INT32)
  48. #define RX_SIFINFO_GET _IOWR(RX_MAGIC, RX_BASE+0x42, INT32)
  49. #define RX_AUDIOSIFCTL _IOWR(RX_MAGIC, RX_BASE+0x43, INT32)
  50. #define RX_SetStopFlagforSIF _IOWR(RX_MAGIC, RX_BASE+0X44, INT32) //ava@20130613 will be remove later
  51. //MISC SETTING
  52. #define RX_SETAUDIODEVICE _IOWR(RX_MAGIC, RX_BASE+0x60, INT32) // john@20110907 add new interface for setting external device(ex: DAMP)
  53. #define RX_SET_DTV_AD_VOL _IOWR(RX_MAGIC, RX_BASE+0x63, INT32)
  54. #define RX_GET_MPEG_CHANNELSTATUS _IOWR(RX_MAGIC, RX_BASE+0x64, INT32)
  55. #define RX_GET_AUDIO_CHANNELNUM _IOWR(RX_MAGIC, RX_BASE+0x65, INT32)
  56. #define RX_SEND_AUDIOINFO _IOWR(RX_MAGIC, RX_BASE+0x66, INT32)
  57. #ifdef CONFIG_SUPPORT_BOOT_MUSIC
  58. #define RX_AUDIO_MELODY_INIT _IOWR(RX_MAGIC, RX_BASE+0x67, INT32)
  59. #endif
  60. #ifdef CONFIG_SUPPORT_BURN_MUSIC
  61. #define RX_AUDIO_BURN_MELODY_INIT _IOWR(RX_MAGIC, RX_BASE+0x68, INT32)
  62. #define RX_AUDIO_BURN_MELODY_EXIT _IOWR(RX_MAGIC, RX_BASE+0x69, INT32)
  63. #endif
  64. // AUDIO TOOL
  65. #define RX_GET_AUDIO_SETTINGS _IOWR(RX_MAGIC, RX_BASE+0x80, INT32)
  66. #define RX_GET_AUDIO_REC_PARAM _IOWR(RX_MAGIC, RX_BASE+0x81, INT32)
  67. /********************************************************************************************************
  68. DEFINE FOR SUPPORTED AUDIO CODEC & EFFECT
  69. *********************************************************************************************************/
  70. #define AUDIO_FEATURE_MP3 0x00000001
  71. #define AUDIO_FEATURE_AAC 0x00000002
  72. #define AUDIO_FEATURE_EAC3 0x00000004
  73. #define AUDIO_FEATURE_REAL 0x00000008 //COOK
  74. #define AUDIO_FEATURE_AC3 0x00000010
  75. #define AUDIO_FEATURE_WMASTD 0x00000020
  76. #define AUDIO_FEATURE_WMAPRO 0x00000040
  77. #define AUDIO_FEATURE_VORBIS 0x00000080
  78. #define AUDIO_FEATURE_AMR 0x00000100
  79. #define AUDIO_FEATURE_APE 0x00000200 //FFMPEG SUPPORT
  80. #define AUDIO_FEATURE_FLAC 0x00000400 //FFMPEG SUPPORT
  81. #define AUDIO_FEATURE_SILK 0x00000800
  82. #define AUDIO_FEATURE_AC3_ENCODE 0x00001000
  83. #define AUDIO_FEATURE_AAC_MAIN 0x00002000
  84. #define AUDIO_FEATURE_DTS 0x00004000
  85. #define AUDIO_FEATURE_DRA 0x00008000
  86. //AUDIO EFFECT
  87. #define AUDIO_FEATURE_SRSTSXT 0x00010000
  88. #define AUDIO_FEATURE_SRSTSHD 0x00010000
  89. #define AUDIO_FEATURE_SRSTVOL 0x00020000
  90. #define AUDIO_FEATURE_DBX 0x00040000
  91. #define AUDIO_FEATURE_SP_SUR 0x00080000
  92. #define AUDIO_FEATURE_MS_SUR 0x00100000
  93. #ifndef CONFIG_AUDIO_FEATURE
  94. #define CONFIG_AUDIO_FEATURE 0x00000000 // IF NOT DEFINE CONFIG_AUDIO_FEATURE, USE THIS SETTING FOR DEFAULT
  95. #endif
  96. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_MP3)
  97. #define AUDIO_CODEC_MP3 //support MP3 codec
  98. #endif
  99. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_AAC)
  100. #define AUDIO_CODEC_AAC //support AAC codec
  101. #endif
  102. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_EAC3)
  103. #define AUDIO_CODEC_EAC3 //support EAC3 codec
  104. #endif
  105. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_REAL)
  106. #define AUDIO_CODEC_REAL //support REAL codec
  107. #endif
  108. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_AC3)
  109. #define AUDIO_CODEC_AC3 //support AC3 codec
  110. #endif
  111. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_WMASTD)
  112. #define AUDIO_CODEC_WMASTD //support WMA2 (STD) codec
  113. #endif
  114. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_WMAPRO)
  115. #define AUDIO_CODEC_WMAPRO //support WMA3(PRO) codec
  116. #endif
  117. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_VORBIS)
  118. #define AUDIO_CODEC_VORBIS //support VORBIS codec
  119. #endif
  120. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_AMR)
  121. #define AUDIO_CODEC_AMR //support AMR NB/WB codec
  122. #endif
  123. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_APE)
  124. #define AUDIO_CODEC_APE //support APE codec
  125. #endif
  126. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_FLAC)
  127. #define AUDIO_CODEC_FLAC //support FLAC codec
  128. #endif
  129. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_DRA)
  130. #define AUDIO_CODEC_DRA //support DRA codec
  131. #endif
  132. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_SRSTSXT)
  133. #define AUDIO_EFFECT_SRSTSXT //support SRSTSXT audio effect
  134. #endif
  135. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_SRSTVOL)
  136. #define AUDIO_EFFECT_SRSTVOL //support SRSTVOL audio effect
  137. #endif
  138. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_MS_SUR)
  139. #define AUDIO_EFFECT_MS_SUR //Maximus Surround
  140. #endif
  141. #if (CONFIG_AUDIO_FEATURE & AUDIO_FEATURE_DBX)
  142. #define AUDIO_EFFECT_DBX
  143. #endif
  144. /********************************************************************************************************
  145. AUDIO ENUM FOR MISC SETTING
  146. *********************************************************************************************************/
  147. //typedef enum _audio_op
  148. enum
  149. {
  150. //BASIC AUDIO SETTING
  151. AUDIO_OP_SLIPSYNC = 0, // Add for user adjust Audio delay time unit: 1ms Range +200 ~-200(ms)
  152. AUDIO_OP_UFRC_DELAY_TIME,
  153. AUDIO_OP_DOLBY_AUDIO_EXTDELAY, // add for Dolby audio add ext pts offset delay time unit: 1ms Range +200ms ~-200ms
  154. //MISC SETTING
  155. AUDIO_OP_DD_DRC_MODE = 10,
  156. AUDIO_OP_OUTPUT_CHANNEL_MODE,
  157. AUDIO_OP_TXHW_MUTE_ENABLE, //Use to control AUDIO TX HW mute enable register, normal mute control don't control this register
  158. AUDIO_OP_DTV_ADVOL, // NO USED NOW
  159. AUDIO_OP_ADVOL,
  160. AUDIO_OP_SCARTONOFF, //USE TO CONTROL SCART BYPASS SIF FEATURE ON/OFF
  161. AUDIO_OP_ADC_DPGA_GAIN, //FOR APP CONTROL AUDIO ADC HW DPGA GAIN
  162. AUDIO_OP_ADC_PGA_GAIN, //FOR APP CONTROL AUDIO ADC HW PGA GAIN
  163. //SIF SETTING
  164. AUDIO_OP_STVMTS = 30, // SET TV MULTI SOUND
  165. AUDIO_OP_SIFFILBW, //set SIF filter bandwidth
  166. AUDIO_OP_UNDEF
  167. };
  168. //}AUDIO_OP_t, *pAUDIO_OP_t;
  169. #ifndef DEF_AUDIO_MENU_PATH
  170. #define DEF_AUDIO_MENU_PATH
  171. enum {
  172. AUDIO_MENU_INTERNAL,
  173. AUDIO_MENU_EXTERNAL,
  174. AUDIO_MENU_SPDIF_OUTPUT, //ONLY SPDIF OUTPUT (NO I2S OUT) , DOLBY WILL RAW OUTPUT, OTHERS WILL BE PCM
  175. AUDIO_MENU_PARALLEL_SPDIF_NONLINEAR,
  176. AUDIO_MENU_PARALLEL_SPDIF_LINEAR,
  177. AUDIO_MENU_SPDIF_OUTPUT_PCM, //ONLY SPDIF OUTPUT (NO I2S OUT) , ALL AUDIO TYPE WILL BE PCM OUTPUT (FLAG = DECODEING)
  178. AUDIO_MENU_MUTE,
  179. AUDIO_MENU_DISABLE,
  180. AUDIO_MENU_UNDEFINED,
  181. };
  182. #define AUDIO_MENU_PARALLEL_OUTPUT AUDIO_MENU_PARALLEL_SPDIF_NONLINEAR // reserved for backward compatible
  183. #endif
  184. // TruSurround XT modes
  185. enum
  186. {
  187. MIPS_SAI_TSXT_1_0, // C
  188. MIPS_SAI_TSXT_2_0, // L/R
  189. MIPS_SAI_TSXT_2_1, // L/R/Cs
  190. MIPS_SAI_TSXT_2_2, // L/R/Ls/Rs
  191. MIPS_SAI_TSXT_3_0, // L/C/R
  192. MIPS_SAI_TSXT_3_1, // L/C/R/Cs
  193. MIPS_SAI_TSXT_3_2, // L/C/R/Ls/Rs
  194. MIPS_SAI_TSXT_3_3, // L/C/R/Ls/Cs/Rs
  195. MIPS_SAI_TSXT_PASSIVEMATRIX, // Lt/Rt directly into L/R channels
  196. MIPS_SAI_TSXT_3_2_BSDIGITAL, // L/C/R/Ls/Rs compatible with BS Digital AAC content
  197. MIPS_SAI_TSXT_PL2_MUSIC, // L/C/R/Ls/Rs (PLII decoded in Music mode)
  198. MIPS_SAI_TSXT_CSII, // CSII decoded material
  199. MIPS_SAI_TSXT_TS_NUM_MODES
  200. };
  201. // TruSurround XT TruBass speaker sizes
  202. enum
  203. {
  204. MIPS_SAI_TSXT_SPK_40_HZ, // 40 Hz low-frequency response
  205. MIPS_SAI_TSXT_SPK_60_HZ, // 60 Hz low-frequency response
  206. MIPS_SAI_TSXT_SPK_100_HZ, // 100 Hz low-frequency response
  207. MIPS_SAI_TSXT_SPK_150_HZ, // 150 Hz low-frequency response
  208. MIPS_SAI_TSXT_SPK_200_HZ, // 200 Hz low-frequency response
  209. MIPS_SAI_TSXT_SPK_250_HZ, // 250 Hz low-frequency response
  210. MIPS_SAI_TSXT_SPK_300_HZ, // 300 Hz low-frequency response
  211. MIPS_SAI_TSXT_SPK_400_HZ, // 400 Hz low-frequency response
  212. MIPS_SAI_TSXT_NUM_SPK_SIZES
  213. };
  214. // Dolby Digital dynamic range compression modes
  215. enum
  216. {
  217. MIPS_SAI_DDCD_COMP_CA, // custom mode, analog dialnorm
  218. MIPS_SAI_DDCD_COMP_CD, // custom mode, digital dialnorm
  219. MIPS_SAI_DDCD_COMP_LO, // line out mode //standard
  220. MIPS_SAI_DDCD_COMP_RF, // RF remod mode //compressed
  221. MIPS_SAI_DDCD_NUM_COMP_MODES
  222. };
  223. //hauchuen@20110831 add for SRS TSHD PostProcessor interface
  224. typedef enum _SRS_TSHD_MODE_t{
  225. SRS_OFF = 0, //SRS disable
  226. SRS_TSXT_ON, //Enable SRS TSXT (Surround, DC, TB)
  227. SRS_TSHD_ON, //Enable SRS TSHD (Surround, DC, TB, Def)
  228. SRS_TSHD_BYPASS, //SRS TSHD BYPASS Mode
  229. SRS_TSHD_CERTIFICATION, //SRS TOOL
  230. SRS_TSHD_USERDEFINE, //reserved for user define whic feature will be enable
  231. SRS_TSHD_MAX,
  232. }SRS_TSHD_MODE_t;
  233. //typedef enum _audio_op
  234. enum
  235. {
  236. Fail,
  237. Success,
  238. Connecting
  239. };
  240. typedef enum _OUTPUT_CHANNEL_MODE_e
  241. {
  242. OUTPUT_CHANNEL_AUTO,
  243. OUTPUT_CHANNEL_STEREO,
  244. OUTPUT_CHANNEL_LEFT,
  245. OUTPUT_CHANNEL_RIGHT,
  246. OUTPUT_CHANNEL_MIX,
  247. OUTPUT_CHANNEL_MODE_NUM,
  248. }OUTPUT_CHANNEL_MODE_e;
  249. typedef enum _AudioSrc_e {
  250. AUDIOSRC_ATV,
  251. AUDIOSRC_DTV,
  252. AUDIOSRC_AV,
  253. AUDIOSRC_SV,
  254. AUDIOSRC_COMPONENT,
  255. AUDIOSRC_HDMI, //5
  256. AUDIOSRC_PC,
  257. AUDIOSRC_USB,
  258. AUDIOSRC_SCART,
  259. AUDIOSRC_MUSIC,
  260. AUDIOSRC_DVI, // 10
  261. AUDIOSRC_KOK, // 11
  262. AUDIOSRC_MOVIE, // 12
  263. AUDIOSRC_ANDROID, // 13
  264. AUDIOSRC_ALSA, // Super@20101026
  265. AUDIOSRC_DVD, //15 jovi@20120720 add
  266. #ifdef CONFIG_BLUETOOTH_SUPPORT
  267. AUDIOSRC_BLUETOOTH,
  268. #endif
  269. AUDIOSRC_NotDefine,
  270. }AudioSrc_e;
  271. enum
  272. {
  273. I2S,
  274. RF,
  275. };
  276. enum
  277. { // SPDIF 60958-3 page17, take care bit order in spec
  278. // bits 15 to 8
  279. SPDIF_CATEGORY_CODE_GENERAL = 0x0,
  280. // USA= 1100 100
  281. SPDIF_CATEGORY_CODE_DIGITAL_BROADCAST_USA = 0x64,
  282. // EUROPE= 0001 100
  283. SPDIF_CATEGORY_CODE_DIGITAL_BROADCAST_EUROPE = 0x0c,
  284. // JAPAN= 0000 100
  285. SPDIF_CATEGORY_CODE_DIGITAL_BROADCAST_JAPAN = 0x04,
  286. };
  287. enum// _SISAUDIO_DEV_MINOR
  288. {
  289. SISAUDIO_DEV_AUDIORX,
  290. SISAUDIO_DEV_REAL,
  291. SISAUDIO_DEV_DCT,
  292. SISAUDIO_DEV_MP,
  293. SISAUDIO_DEV_AAC,
  294. SISAUDIO_DEV_MP3,
  295. SISAUDIO_DEV_UNDEF,
  296. };
  297. //SRS TRUVOL
  298. typedef enum
  299. {
  300. VIQ_kSrsNormal,
  301. VIQ_kSrsLight,
  302. VIQ_kSrsVolumeModeSize
  303. } SRSVolumeIQMode;
  304. typedef enum
  305. {
  306. VIQ_kSrs20Hz,
  307. VIQ_kSrs40Hz,
  308. VIQ_kSrs110Hz,
  309. VIQ_kSrs200Hz,
  310. VIQ_kSrs315Hz,
  311. VIQ_kSrs410Hz,
  312. VIQ_kSrsVolumeSpeakerSize
  313. } SRSVolumeIQSpeakerSize;
  314. //~SRS TRUVOL
  315. typedef enum _POSTPROCESSOR_TYPE_t{
  316. PPTYPE_AUDIOEFFECT = 0,
  317. PPTYPE_SRS_TSXT = 1,
  318. PPTYPE_SRS_TRUEVOL = 2,
  319. PPTYPE_SRS_TSHD = 3,
  320. PPTYPE_PEQ = 4,
  321. PPYPE_MAXIMUS_SURROUND = 5,
  322. #if 0
  323. PPTYPE_SIS_EQ_INIT = 5, // new EQ: fc and Q setting
  324. PPTYPE_SIS_EQ_SET = 6, // new EQ: gain setting
  325. #endif
  326. PPTYPE_NR = 7, // Line in noise reduce
  327. PPTYPE_AGC = 8, // Audio Gain control (audiorom function)
  328. PPTYPE_TREBLE = 9,
  329. PPTYPE_BASS = 10,
  330. PPTYPE_PLC= 11, // Power Limiter Control
  331. PPTYPE_CUT_OFF= 12,
  332. PPTYPE_DBX= 13, // DBXAUDIO
  333. PPTYPE_HIGHPASS=14,
  334. PPTYPE_LOWPASS=15,
  335. PPTYPE_TITOI = 16,
  336. PPTYPTE_MAX_NUM,
  337. }POSTPROCESSOR_TYPE_t;
  338. #if 0
  339. enum
  340. {
  341. EQ_BAND1 = 0,
  342. EQ_BAND2,
  343. EQ_BAND3,
  344. EQ_BAND4,
  345. EQ_BAND5,
  346. EQ_BAND6,
  347. EQ_BAND7,
  348. EQ_BAND8,
  349. EQ_BAND9,
  350. EQ_BAND_MAX,// 9
  351. };
  352. enum
  353. {
  354. PEQ_BAND1 = 0,
  355. PEQ_BAND2,
  356. PEQ_BAND3,
  357. PEQ_BAND_MAX,// 3
  358. };
  359. #endif
  360. /** Total Sonics modes for DBXTV_SetMode() */
  361. typedef enum _DBXTV_TotSonMode
  362. {
  363. TOTSON_ON = 0,
  364. TOTSON_OFF
  365. } DBXTV_TotSonMode;
  366. /** Total Volume modes for DBXTV_SetMode() */
  367. typedef enum _DBXTV_TotVolMode
  368. {
  369. TOTVOL_NORMAL = 0,
  370. TOTVOL_NIGHT,
  371. TOTVOL_OFF
  372. } DBXTV_TotVolMode;
  373. /** Total Surround modes for DBXTV_SetMode() */
  374. typedef enum _DBXTV_TotSurMode
  375. {
  376. TOTSUR_ON = 0,
  377. TOTSUR_OFF
  378. } DBXTV_TotSurMode;
  379. enum
  380. {
  381. PEQ_BAND1 = 0,
  382. PEQ_BAND2,
  383. PEQ_BAND3,
  384. PEQ_BAND4,
  385. PEQ_BAND5,
  386. PEQ_BAND6,
  387. PEQ_BAND7,
  388. PEQ_BAND8,
  389. PEQ_BAND9,
  390. PEQ_BAND10,
  391. PEQ_BAND11,
  392. PEQ_BAND12,
  393. PEQ_BAND_MAX,// 12
  394. };
  395. typedef enum{
  396. SISAE_SURMODE_3DMONO = 0,
  397. SISAE_SURMODE_STEREO = 1,
  398. SISAE_SURMODE_VS3 = 2,
  399. SISAE_SURMODE_STEREO_MIX = 3,
  400. SISAE_SP_SURROUND = 4,
  401. //Reserved
  402. SISAE_SURMODE_MAX = 8,
  403. }SISAE_SURMODE;
  404. typedef enum
  405. {
  406. PLAYBACK_NORMAL = 0,
  407. PLAYBACK_FAST_2X,
  408. PLAYBACK_FAST_4X,
  409. PLAYBACK_SLOW_2X,
  410. PLAYBACK_SLOW_4X,
  411. PLAYBACK_SLOW_8X,
  412. PLAYBACK_SLOW_16X,
  413. PLAYBACK_SLOW_32X
  414. } AUDIO_PLAYBACK;
  415. //ava@20120530 for EU scart output
  416. typedef enum _SCART_STATUS
  417. {
  418. SCART_DISABLE= 0,
  419. SCART_ENABLE,
  420. } SCART_STATUS;
  421. //~ava
  422. //HW output path SDx->I2Sx->DACx
  423. typedef enum _TVFE_Audio_MUTE_Path_e
  424. {
  425. TVFE_AUDIO_MUTE_PATH_INVALID = 0,
  426. TVFE_AUDIO_MUTE_MAIN_SD0_PATH = 1, //TX HW AVC SD0 mute
  427. TVFE_AUDIO_MUTE_AUXI_SD1_PATH = 2, //TX HW AVC SD1 mute
  428. TVFE_AUDIO_MUTE_SPDIF_PATH = 3, //TX HW AVC SPDIF soft mute
  429. TVFE_AUDIO_MUTE_DAC_SPEAKER_PATH = 4, //TX HW DAC1 speaker mute
  430. TVFE_AUDIO_MUTE_DAC_HEADPHONE_PATH = 5, //TX HW DAC1 HP mute
  431. TVFE_AUDIO_MUTE_DAC_LINEOUT_PATH = 6, //TX HW DAC2 lineout mute
  432. TVFE_AUDIO_MUTE_I2S0_PATH = 7, //TX HW output IS20 mute
  433. TVFE_AUDIO_MUTE_I2S1_PATH = 8, //TX HW output IS21 mute
  434. TVFE_AUDIO_MUTE_I2S3_PATH = 9, //TX HW output IS23 mute
  435. TVFE_AUDIO_MUTE_DRV_ALL_PATH = 10, //FOR DRV TEMP MUTE CONTROL
  436. TVFE_AUDIO_MUTE_MAIN_SD0_L_PATH = 11, //TX HW AVC SD0 mute
  437. TVFE_AUDIO_MUTE_MAIN_SD0_R_PATH = 12, //TX HW AVC SD0 mute
  438. TVFE_AUDIO_MUTE_PATH_NR
  439. } TVFE_Audio_MUTE_Path_e;
  440. typedef enum _TVFE_Audio_VOLUME_Path_e
  441. {
  442. TVFE_AUDIO_VOL_PATH_INVALID = 0,
  443. TVFE_AUDIO_VOL_MAIN_SD0_PATH,
  444. TVFE_AUDIO_VOL_AUXI_SD1_PATH,
  445. TVFE_AUDIO_VOL_SPDIF_PATH,
  446. TVFE_AUDIO_VOL_PATH_NR
  447. } TVFE_Audio_VOLUME_Path_e;
  448. typedef enum _TVFE_Audio_Output_e
  449. {
  450. TVFE_AUDIO_OUTPUT_INVALID = 0,
  451. TVFE_AUDIO_OUTPUT_DAC0,
  452. TVFE_AUDIO_OUTPUT_DAC1,
  453. TVFE_AUDIO_OUTPUT_I2S0,
  454. TVFE_AUDIO_OUTPUT_I2S1,
  455. TVFE_AUDIO_OUTPUT_SPDIF,
  456. TVFE_AUDIO_OUTPUT_NR
  457. } TVFE_Audio_Output_e;
  458. typedef enum _TVFE_Audio_Data_e
  459. {
  460. TVFE_AUDIO_DATA_INVALID = 0,
  461. TVFE_AUDIO_DATA_SD0, //With PostProcess
  462. TVFE_AUDIO_DATA_SD1, //No PostProcess
  463. TVFE_AUDIO_DATA_NR
  464. } TVFE_Audio_Data_e;
  465. typedef enum _TVFE_Audio_Headphone_Status_e
  466. {
  467. TVFE_Audio_Headphone_PlugOut = 0,
  468. TVFE_Audio_Headphone_PlugIn,
  469. } TVFE_Audio_Headphone_Status_e;
  470. typedef enum _TVFE_Audio_GPIO_Status_e
  471. {
  472. TVFE_Audio_Low_Active = 0,
  473. TVFE_Audio_High_Active,
  474. } TVFE_Audio_GPIO_Status_e;
  475. typedef enum _AUDIO_SETTINGS_TYPE_e
  476. {
  477. AUDIO_SETTINGS_TYPE_BASS = 0,
  478. AUDIO_SETTINGS_TYPE_TREBLE,
  479. // AUDIO_SETTINGS_TYPE_EQ,
  480. AUDIO_SETTINGS_TYPE_BALANCE,
  481. AUDIO_SETTINGS_TYPE_VOLUME,
  482. AUDIO_SETTINGS_TYPE_VOL_OSD,
  483. AUDIO_SETTINGS_TYPE_VOL_OFFSET,
  484. AUDIO_SETTINGS_TYPE_SUN_SURROUND,
  485. AUDIO_SETTINGS_TYPE_SRS_TSHD,
  486. AUDIO_SETTINGS_TYPE_SRS_TVOL,
  487. AUDIO_SETTINGS_TYPE_AVL,
  488. AUDIO_SETTINGS_TYPE_PLC,
  489. } AUDIO_SETTINGS_TYPE_e;
  490. typedef enum _MPEGHEADER_CHANNEL_MODE_e
  491. {
  492. MPEG_STEREO_MODE,
  493. MPEG_JOINT_MODE,
  494. MPEG_DUAL_MODE,
  495. MPEG_SINGLE_MODE,
  496. MPEG_MODE_TOTAL_NUMBER,
  497. MPEG_MODE_ERROR, // NON MPEG AUDIO , RETURN ERROR.
  498. }MPEGHEADER_CHANNEL_MODE_e;
  499. typedef enum _TVFE_Audio_INFO_FLAG_e
  500. {
  501. SEND_INFO_UNKNOW = 0,
  502. SEND_INFO_HDMI_CEC = 1,
  503. //RESERVED
  504. }TVFE_Audio_INFO_FLAG_e;
  505. typedef enum _TVFE_Audio_ICSTS_Flag_e
  506. {
  507. ICSTS_FLAG_BONDING = 0,
  508. ICSTS_FLAG_BOOTMUSIC_PLAYING = 1,
  509. ICSTS_FLAG_QUERY_AUDIO_DATA_TYPE = 2,
  510. ICSTS_FLAG_MAX
  511. }TVFE_Audio_ICSTS_Flag_e;
  512. typedef enum _TVFE_Audio_Data_Type_e
  513. {
  514. AUDIO_CODEC_DATA_PCM = 0,
  515. AUDIO_CODEC_DATA_MPEG,
  516. AUDIO_CODEC_DATA_AC3, // 2
  517. AUDIO_CODEC_DATA_DTS,
  518. AUDIO_CODEC_DATA_AAC,
  519. AUDIO_CODEC_DATA_MP3,
  520. AUDIO_CODEC_DATA_REAL,
  521. AUDIO_CODEC_DATA_EAC3, //7
  522. AUDIO_CODEC_DATA_WMA,
  523. AUDIO_CODEC_DATA_COOK,
  524. AUDIO_CODEC_DATA_AMRNB,
  525. AUDIO_CODEC_DATA_AMRWB,
  526. AUDIO_CODEC_DATA_VORBIS,
  527. AUDIO_CODEC_DATA_SILK,
  528. AUDIO_CODEC_DATA_ISAC,
  529. AUDIO_CODEC_DATA_DRA,
  530. AUDIO_CODEC_DATA_FLAC, //16
  531. AUDIO_CODEC_DATA_MAX,
  532. }TVFE_Audio_Data_Type_e;
  533. typedef enum _TVFE_DOLBY_REGION_e
  534. {
  535. DOLBY_REGION_EU = 0,
  536. DOLBY_REGION_ATSC = 1,
  537. DOLBY_REGION_OTHERS = 2,
  538. }TVFE_DOLBY_REGION_e;
  539. typedef enum _TVFE_Audio_IOMUX_e
  540. {
  541. TVFE_AUDIO_IOMUX_INVALID = 0,
  542. TVFE_AUDIO_IOMUX_SD0, //no used now
  543. TVFE_AUDIO_IOMUX_SD1, //no used now
  544. TVFE_AUDIO_IOMUX_I2S_OUT_ENABLE, //enable I2S chip output
  545. TVFE_AUDIO_IOMUX_I2S_INIT, //init I2S chip out setting
  546. TVFE_AUDIO_IOMUX_DAC1_SRC, //Select Audio DAC1 SRC from I2S0 OR I2S1 , DEFAULT I2S0
  547. TVFE_AUDIO_IOMUX_DAC2_SRC, //Select Audio DAC2 SRC I2S0 OR I2S1 , DEFAULT I2S1
  548. TVFE_AUDIO_IOMUX_I2S0_SRC, //Select Audio I2S output from I2S0 OR I2S1 , DEFAULT I2S0 , CHIP ONLY ONE I2S OUTPUT
  549. TVFE_AUDIO_IOMUX_TX_AVC_I2S0_SRC, //TX input I2S0 SRC SELECT, Audio_I2S_SRC_t
  550. TVFE_AUDIO_IOMUX_TX_AVC_I2S1_SRC, //Tx input I2S1 SRC SELECT, Audio_I2S_SRC_t
  551. TVFE_AUDIO_IOMUX_SD0_CH_MUX, //select SD0 channel MUX // TVFE_Audio_CHMUX_e
  552. TVFE_AUDIO_IOMUX_SD1_CH_MUX, //select SD1 channel MUX // TVFE_Audio_CHMUX_e
  553. TVFE_AUDIO_IOMUX_MAX,
  554. } TVFE_Audio_IOMUX_e;
  555. typedef enum _TVFE_Audio_CHMUX_e
  556. {
  557. TVFE_Audio_TXCHMUX_LR=0,
  558. TVFE_Audio_TXCHMUX_LL=1,
  559. TVFE_Audio_TXCHMUX_RR=2,
  560. TVFE_Audio_TXCHMUX_RL=3,
  561. }TVFE_Audio_CHMUX_e;
  562. typedef enum
  563. {
  564. I2S0=0,
  565. I2S1,
  566. I2S2,
  567. I2S3,
  568. SPDIF,
  569. Audio_kNbOfI2S_DEVICE
  570. } AudioTX_OUT_DEVICE_t;
  571. typedef enum
  572. {
  573. I2S_SRC_SD0=0, //with audio effect
  574. I2S_SRC_SD1, //without audio effect
  575. I2S_SRC_SD2, //no used
  576. I2S_SRC_SD3, //no used
  577. I2S_SRC_WAVGEN,
  578. Audio_kNbOfI2S_SRC
  579. } Audio_I2S_SRC_t;
  580. typedef enum _TVFE_Audio_CODEC_TYPE_e
  581. {
  582. TVFE_AUDIO_CODEC_PCM = 0,
  583. TVFE_AUDIO_CODEC_MPEG = 1,
  584. TVFE_AUDIO_CODEC_DOLBY= 2,
  585. TVFE_AUDIO_CODEC_DTS = 3,
  586. TVFE_AUDIO_CODEC_AAC = 4,
  587. TVFE_AUDIO_CODEC_AACMAIN = 5,
  588. TVFE_AUDIO_CODEC_WMA2 = 6,
  589. TVFE_AUDIO_CODEC_COOK = 7,
  590. TVFE_AUDIO_CODEC_VORBIS = 8,
  591. TVFE_AUDIO_CODEC_DRA = 9,
  592. TVFE_AUDIO_CODEC_FLAC = 10,
  593. TVFE_AUDIO_CODEC_AMR = 11,
  594. }TVFE_Audio_CODEC_TYPE_e;
  595. typedef enum _TVFE_Audio_CODEC_FLAG_e
  596. {
  597. TVFE_AUDIO_CODEC_FLAG_SET = 0,
  598. TVFE_AUDIO_CODEC_FLAG_STOP = 1,
  599. TVFE_AUDIO_CODEC_FLAG_QUERY = 2,
  600. // TVFE_AUDIO_CODEC_FLAG_QUERY_TYPE = 3,
  601. }TVFE_Audio_CODEC_FLAG_e;
  602. typedef enum _TVFE_Audio_CODEC_STATUS_e
  603. {
  604. TVFE_AUDIO_CODEC_STATUS_COMPLETE = 0, //LOAD CODEC COMPLETE, CAN SEND CMD TO DECODE
  605. TVFE_AUDIO_CODEC_STATUS_THESAMECODEC = 1, //THE SAME CODEC
  606. TVFE_AUDIO_CODEC_STATUS_SCHEDULE = 2, //SCHEDULE LOAD CODEC SUCESSFULLY, APP
  607. TVFE_AUDIO_CODEC_STATUS_WAIT = 3, //WQ IS RUNNING, PLEASE WAIT 20ms TO CHECK AGAIN
  608. TVFE_AUDIO_CODEC_STATUS_ERROR = 4, //FAIL, NOT SUPPORT CODEC. OR SRC
  609. }TVFE_Audio_CODEC_STATUS_e;
  610. typedef enum _TVFE_Audio_ADCDAC_e
  611. {
  612. TVFE_AUDIO_ADCDAC_NOT_READY = 0,
  613. TVFE_AUDIO_ADCDAC_READY = 1,
  614. }TVFE_Audio_ADCDAC_e;
  615. /********************************************************************************************************
  616. AUDIO STRUCTURE FOR MISC SETTING
  617. *********************************************************************************************************/
  618. #pragma pack(push,1)
  619. typedef struct _AUDIO_RANGE
  620. {
  621. INT32 min[AUDIO_OP_UNDEF];
  622. INT32 max[AUDIO_OP_UNDEF];
  623. INT32 cur[AUDIO_OP_UNDEF];
  624. }AUDIO_RANGE, *pAUDIO_RANGE;
  625. typedef struct _TVFE_Audio_Output_Config_t
  626. {
  627. TVFE_Audio_Output_e Output_Port;
  628. TVFE_Audio_Data_e data_type;
  629. } TVFE_Audio_Output_Config_t,*pTVFE_Audio_Output_Config_t;
  630. typedef struct _AUDIO_OUTPUT_SELECT
  631. {
  632. INT32 audio_opt; // audio output path
  633. }AUDIO_OUTPUT_SELECT, *pAUDIO_OUTPUT_SELECT;
  634. typedef struct _AUDIO_SOURCE_SELECT
  635. {
  636. INT32 audio_src; // audio source
  637. INT32 audio_srcno; // audio source number
  638. UINT8 scart_enable; // 0:scart disable 1:scart enable //ava@20120530 for EU scart output
  639. }AUDIO_SOURCE_SELECT, *pAUDIO_SOURCE_SELECT;
  640. typedef struct _AUDIO_ADJUST
  641. {
  642. INT32 flag;
  643. INT32 value;
  644. union
  645. {
  646. UINT32 state : 32;
  647. struct
  648. {
  649. UINT32 FromOSD : 1; // 1: user mute 0: temp mute
  650. UINT32 LinkStatus : 2; //20080908 Kai add for pair function
  651. UINT32 FromMP3 : 1; //1: driver use temp mute status, it will not be , 0: UMF/KMF mute status
  652. UINT32 DisableAAMP : 1; // some audio amp has white noise issue when amp mute, so kmf will set disableamp=1, when no signal mute
  653. UINT32 TXMuteCTL: 1;
  654. UINT32 reserved : 26;
  655. };
  656. //HC modify New Adjust structure .
  657. struct
  658. {
  659. //mute control status
  660. UINT32 FlowMuteStatus : 3; // 0: temp mute, 1: user mute
  661. UINT32 NoKeepMuteStatus : 1; // 1: audio driver will not save mute status, it doesnt affect UMF mute status , 0: Flow mute control
  662. UINT32 NoSignalMute : 1; // 1: mute will disable audio amp , use from no siganl mute that may has white noise issue
  663. UINT32 MutePriority: 3; // 0: UMF/FLOW Control, 1: Drv temp mute .... others lower priority
  664. //others setting
  665. UINT32 reserved1_b8_b31 : 24;
  666. };
  667. //~HC
  668. };
  669. }AUDIO_ADJUST, *pAUDIO_ADJUST;
  670. // Nonlinear Audio Structure definition
  671. typedef struct _AUDIO_AC3HEADERDATA
  672. {
  673. union
  674. {
  675. struct
  676. {
  677. UINT32 ec3_dummy : 19;
  678. UINT32 bsid_dummy : 5;
  679. UINT32 ec3_lfeon : 1;
  680. UINT32 ec3_acmod : 3;
  681. UINT32 ec3_fscod2_numblkscod : 2;
  682. UINT32 ec3_fscod : 2;
  683. };
  684. struct
  685. { /* E-AC3 Case */
  686. UINT32 no_use02:26;
  687. UINT32 ec3_byte5bit23:2; //5[3:2]
  688. UINT32 ec3_byte5bit45:2; //5[5:4]
  689. UINT32 ec3_byte5bit76:2; //5[7:6]
  690. };
  691. struct
  692. {
  693. UINT32 dummy:13;
  694. UINT32 acmod:3; //7[7:5]
  695. UINT32 bsmod:3; //6[2:0]
  696. UINT32 bsid:5; //6[7:3]
  697. UINT32 frmsizecod:6; //5[5:0]
  698. UINT32 fscod:2; //5[7:6]
  699. };
  700. UINT32 dw2;
  701. };
  702. union
  703. {
  704. struct
  705. { /* E-AC3 Case */
  706. UINT32 ec3_frmsize:11;
  707. UINT32 substreamid:3;
  708. UINT32 strmtyp:2;
  709. UINT32 no_use01:16;
  710. };
  711. struct
  712. {
  713. UINT32 crc:16;
  714. UINT32 syncword:16;
  715. };
  716. UINT32 dw1;
  717. };
  718. }AUDIO_AC3HEADERDATA, *AUDIO_AC3HEADERDATAPTR;
  719. typedef struct _NOTICE_AUDIO_EVENT
  720. {
  721. UINT32 event_type; //event type, 0: audio_txhw_mute_enable
  722. INT32 event_data;
  723. } NOTICE_AUDIO_EVENT,*pNOTICE_AUDIO_EVENT;
  724. typedef struct _TVFE_Audio_Volume_t
  725. {
  726. TVFE_Audio_VOLUME_Path_e Vol_Path;
  727. INT32 Volume;
  728. UINT32 OSD_Volume_index; //0~100
  729. } TVFE_Audio_Volume_t,*pTVFE_Audio_Volume_t;
  730. typedef struct _TVFE_Audio_Balance_t
  731. {
  732. INT32 left_val;
  733. INT32 right_val;
  734. }TVFE_Audio_Balance_t, *pTVFE_Audio_Balance_t;
  735. typedef struct _TVFE_Audio_Mute_t
  736. {
  737. UINT8 Enable;
  738. TVFE_Audio_MUTE_Path_e Mute_Path;
  739. INT32 Mute_Delay; // delay > 0 : do mute control and then delay , delay < 0, delay before do mute control
  740. UINT8 Mute_TXSpeed; // CONTROL TX MUTE FADE SPEED(NON TX HW device is no useless)
  741. } TVFE_Audio_Mute_t,*pTVFE_Audio_Mute_t;
  742. typedef struct _TVFE_Audio_Headphone_t
  743. {
  744. UINT8 HP_DET_GPIO;
  745. TVFE_Audio_GPIO_Status_e GPIO_Status; // 1: High Active = Plug in, 0: Low Active = Plug in
  746. TVFE_Audio_Headphone_Status_e HP_Status;
  747. } TVFE_Audio_Headphone_t,*pTVFE_Audio_Headphone_t;
  748. typedef struct _TVFE_Audio_INFO_t
  749. {
  750. UINT32 flag; //REFER TVFE_Audio_INFO_FLAG_e
  751. union{
  752. UINT32 cec_audio_format; //REMAP AUDIO_FEATURE
  753. //reserved for others info
  754. UINT32 audio_info;
  755. };
  756. }TVFE_Audio_INFO_t, *pTVFE_Audio_INFO_t;
  757. typedef struct _TVFE_Audio_ICSTS_t
  758. {
  759. TVFE_Audio_ICSTS_Flag_e flag; //SELECT STATUS TYPE : 0: IC BONDING STATUS, 1: BMUSIC PLAYING STATUS
  760. UINT8 DOLBY_status; //0: NOT SUPPORT DOLBY 1: SUPPORT DOLBY
  761. UINT8 SRSTSHD_status; //0: NOT SUPPORT SRSTSHD 1: SUPPORT DOLBY
  762. UINT8 BMUSIC_ISPLAYING; //0: BMUSIC DON'T BE PLAYING, 1: BMUSIC IS PLAYING
  763. TVFE_Audio_Data_Type_e audio_data_type; //
  764. } TVFE_Audio_ICSTS_t,*pTVFE_Audio_ICSTS_t;
  765. /*
  766. CUSTOMIZE PROJECT INFO FOR DRIVER SETTING.
  767. */
  768. typedef struct _TVFE_Audio_Project_Info_t
  769. {
  770. UINT32 spdif_category_boardcast_type;//ATV/DTV
  771. UINT32 spdif_category_type; //OTHERS , EXPECT HDMI
  772. UINT32 dolby_region; // DOLBY HAS DIFF SPEC BY REGION(EX. LOUNDESS OR DRC ), USE THIS FLAG TO CONTROL DRIVER SETTING
  773. //0: EU, 1, ATSC, 2: OTHERS(ASIA)
  774. //RESERVED
  775. } TVFE_Audio_Project_Info_t,*pTVFE_Audio_Project_Info_t;
  776. typedef struct _TVFE_Audio_IO_SELECT_t
  777. {
  778. TVFE_Audio_IOMUX_e flag; //SELECT IO TYPE
  779. TVFE_Audio_CHMUX_e i2s_ch_map;
  780. UINT8 src_type; //SELECT I2S SRC Audio_I2S_SRC_t
  781. //FOR I2S OUT ENABLE SETING
  782. UINT8 i2s_out_enable; //for I2S OUTPUT ENABLE 0: DISABLE , 1: ENABLE
  783. UINT8 i2s_sd_pin; // set1~4
  784. UINT8 i2s_ws_pin; // set1~4
  785. UINT8 i2s_mck_pin; // set1~4
  786. UINT8 i2s_sck_pin;
  787. } TVFE_Audio_IO_SELECT_t,*pTVFE_Audio_IO_SELECT_t;
  788. typedef struct _TVFE_Audio_LOAD_CODEC_t
  789. {
  790. TVFE_Audio_CODEC_FLAG_e flag; //LOAD CODEC FLAG
  791. TVFE_Audio_CODEC_TYPE_e new_type; //NEW AUDIO CODEC TYPE
  792. TVFE_Audio_CODEC_TYPE_e cur_type; //CURRENT AUDIO CODEC TYPE
  793. TVFE_Audio_CODEC_STATUS_e status; //LOAD CODEC STATUS
  794. }TVFE_Audio_LOAD_CODEC_t,*pTVFE_Audio_LOAD_CODEC_t;
  795. typedef struct _TVFE_Audio_ADCDADC_t
  796. {
  797. TVFE_Audio_ADCDAC_e poweron_ready;
  798. }TVFE_Audio_ADCDADC_t,*pTVFE_Audio_ADCDADC_t;
  799. /********************************************************************************************************
  800. AUDIO STRUCTURE FOR POSTPROCESSOR SETTING
  801. *********************************************************************************************************/
  802. typedef struct _DAC_Vol_Config
  803. {
  804. UINT8 enable;
  805. //UINT8 timer; //control attack time , unit 1ms, min : 10ms (default) range: 10ms ~ 200ms
  806. UINT8 release_ratio; //control release ratio , to avoid audio output unsmooth issue.
  807. UINT8 gain_step_dB; //control release and attack adjust gain. 1=0.125db
  808. }DAC_Vol_Config, *pDAC_Vol_Config;
  809. typedef struct _CUT_OFF_SET
  810. {
  811. UINT8 enable;
  812. UINT8 freq_index;
  813. }CUT_OFF_SET, *pCUT_OFF_SET;
  814. typedef struct _HPLP_SET
  815. {
  816. UINT8 hp_en;
  817. UINT8 lp_en;
  818. INT32 freq_hp;
  819. INT32 freq_lp;
  820. INT8 Q_hp;
  821. INT8 Q_lp;
  822. }HPLP_SET, *pHPLP_SET;
  823. typedef struct _PLC_Config
  824. {
  825. UINT8 enable;
  826. UINT8 timer; //control attack time , unit 1ms, min : 10ms (default) range: 10ms ~ 200ms
  827. UINT8 attack_release_ratio; //control atack : release ratio , to avoid audio output unsmooth issue.
  828. INT32 SP_attack; // PLC Setting for Speaker 0: 0dB, -1 : -0.125dB , 2 : -0.25dB Min = -240(-30dB)
  829. INT32 HP_attack; // PLC Setting for headphone 0: 0dB, -1 : -0.125dB , 2 : -0.25dB Min = -240(-30dB)
  830. INT32 LO_attack; // PLC Setting for line out 0: 0dB, -1 : -0.125dB , 2 : -0.25dB Min = -240(-30dB)
  831. }PLC_Config, *pPLC_Config;
  832. typedef struct _SRS_TSHD_SET
  833. {
  834. //op mode
  835. struct
  836. {
  837. UINT8 SRSTSHD_MODE : 4; //0: OFF, 1: Lt/Rt mode 2:bypass 3:user define
  838. UINT8 reserved1: 4;
  839. };
  840. //internal parameter control
  841. struct
  842. {
  843. UINT8 Enable : 1; // Main function Enable flag
  844. UINT8 Surround_En : 1; //Surround Enable
  845. UINT8 DialogClarity_En : 1; // Focus enable/disable flag (Dialog Clarity)
  846. UINT8 TruBassFront_En : 1; // TruBass enable/disable flag
  847. UINT8 DefinitionFront_En : 1;
  848. UINT8 TruBass_spksize : 3; //// TruBass speaker size, 0~7 40Hz~400Hz
  849. };
  850. struct
  851. {
  852. UINT8 Inputmode : 4; // TruSurround mode, 0~11
  853. UINT8 Outputmode: 3; // fix at STEREO output
  854. UINT8 reserved3: 1;
  855. };
  856. //customer setting
  857. UINT8 InputGain; //0~100 -> 0.0~1.00
  858. UINT8 OutputGain; //0~100 -> 0.0~1.00
  859. UINT8 bypassGain; //0~100 -> 0.0~1.00
  860. UINT8 SurroundLevel; // 0~ 100 -> 0.0~ 1.00
  861. UINT8 DialogClarityLevel; // 0~ 100 -> 0.0~ 1.00
  862. UINT8 TruBassFrontLevel; // 0~ 100 -> 0.0~ 1.00
  863. UINT8 DefinitionFrontLevel; // 0~ 100 -> 0.0~ 1.00
  864. }SRS_TSHD_SET, *pSRS_TSHD_SET;
  865. typedef struct _SISAE_SET
  866. {
  867. struct
  868. {
  869. UINT8 SiSAE_enable: 1;
  870. UINT8 SiSAE_surround_en:1;
  871. UINT8 SiSAE_voice_en: 1;
  872. UINT8 SiSAE_bass_en: 1;
  873. UINT8 sf_exp: 1; //EXPANSION SOUND FIELD
  874. UINT8 Reserved0: 3;
  875. };
  876. UINT8 SiSAE_Sur_mode; //surround mode
  877. UINT8 SiSAE_Sur_Lv; // surround level
  878. UINT8 SiSAE_Voice_Lv; //voice level
  879. UINT8 SiSAE_Bass_Lv; // bass level
  880. UINT8 SiSAE_Bass_Freq; // bass freq
  881. UINT8 SiSAE_inputgain;
  882. UINT8 directgain; //only use for S+ Surround range 1~10 , default 9
  883. UINT8 reverbgain; //only use for S+ Surround range 1~10 , default 7
  884. UINT8 ambiancegain; //only use for S+ Surround range 1~10 , default 9
  885. }SISAE_SET, *pSISAE_SET;
  886. typedef struct _MS_AE_SET
  887. {
  888. struct
  889. {
  890. UINT8 MS_AE_enable: 1;
  891. UINT8 MS_AE_surround_en:1;
  892. UINT8 MS_AE_voice_en: 1;
  893. UINT8 MS_AE_bass_en: 1;
  894. UINT8 MS_definition_en: 1;
  895. UINT8 MS_AE_sf_exp: 1; //EXPANSION SOUND FIELD
  896. UINT8 Reserved0: 2;
  897. };
  898. UINT8 MS_AE_surround_gain; //total gain output
  899. UINT8 MS_AE_Sur_Lv; // , default 8 //0.0~1.0,outputsound= (1-gain)*(input_sound) + gain*(surround_sound)
  900. UINT8 MS_AE_Sur_Delay; // surround level delay ,delay sample //0~4800,echo effect , 480 sample/step.
  901. UINT8 MS_AE_Bass_Freq; // bass freq 0:100 1:200 2:400
  902. UINT8 MS_AE_bassfix_gain; // , default 8
  903. UINT8 MS_AE_Voice_Lv; //voice level ,dialog clarity //0~+10dB (2500Hz EQ)
  904. UINT8 MS_AE_Definition_gain; // high pass definition 0~+10dB (5000Hz EQ)
  905. UINT8 reserved1;
  906. UINT8 reserved2;
  907. }MS_AE_SET, *pMS_AE_SET;
  908. typedef struct _PEQ_ELEMENT
  909. {
  910. UINT32 valid; // 0: disable, 1:enable
  911. UINT32 gain;
  912. UINT32 alpha;
  913. UINT32 beta;
  914. UINT32 gamma;
  915. } PEQ_ELEMENT, *pPEQ_ELEMENT;
  916. typedef struct _PEQ_SET
  917. {
  918. UINT8 valid[PEQ_BAND_MAX]; // 0: disable, 1:enable
  919. UINT32 fc[PEQ_BAND_MAX]; // center frequency: 20~20000
  920. UINT8 q[PEQ_BAND_MAX]; // 1(0.1)~30(3.0)
  921. INT8 gain[PEQ_BAND_MAX]; // -50(-12dB)~50(+12dB), each step is 0.24dB
  922. }PEQ_SET, *pPEQ_SET;
  923. typedef struct _PEQ_CONTROL_PARAMETER
  924. {
  925. unsigned int valid;
  926. unsigned int gain;
  927. unsigned int fc;
  928. unsigned int q;
  929. }PEQ_CONTROL_PRARMETER, *pPEQ_CONTROL_PARAMETER ;
  930. typedef struct _TB_CONTROL_PARAMETER
  931. {
  932. unsigned int valid;
  933. int gain;
  934. unsigned int fc;
  935. unsigned int q;
  936. }TB_CONTROL_PARAMETER, *pTB_CONTROL_PARAMETER;
  937. typedef struct _HPLP_CONTROL_PARAMETER
  938. {
  939. unsigned int valid;
  940. int gain;
  941. unsigned int fc;
  942. unsigned int q;
  943. }HPLP_CONTROL_PARAMETER, *pHPLP_CONTROL_PARAMETER;
  944. #if 0
  945. // SIS_PEQ_SET, SIS_EQ_SET and SIS_EQ_INIT are for umf/kmf
  946. typedef struct _PEQ_SET
  947. {
  948. UINT8 index;
  949. UINT8 valid; // 0: disable, 1:enable
  950. UINT32 fc; // center frequency: 20~20000
  951. UINT8 q; // 1(0.1)~30(3.0)
  952. INT8 gain; // -50(-12dB)~50(+12dB), each step is 0.24dB
  953. } PEQ_SET, *pPEQ_SET;
  954. typedef struct _SIS_EQ_SET
  955. {
  956. UINT8 enable; // 0: off, 1: on
  957. INT8 gain[EQ_BAND_MAX];
  958. } SIS_EQ_SET, *pSIS_EQ_SET;
  959. typedef struct _SIS_EQ_INIT
  960. {
  961. UINT8 valid[EQ_BAND_MAX]; // 0: disable, 1:enable
  962. UINT32 fc[EQ_BAND_MAX]; // center frequency: 20~20000
  963. UINT8 q[EQ_BAND_MAX]; // 1(0.1)~30(3.0)
  964. } SIS_EQ_INIT, *pSIS_EQ_INIT;
  965. #endif
  966. typedef struct _NOISE_REDUCE
  967. {
  968. // UINT8 mode; //0:Line in only, 1: Line in + ATV 2:Line in + ATV + Digital (HDMI, DTV, USB ...etc))
  969. UINT8 enable; // 0: disable, gain = 0db, 1: enable NR , decrease gain when input level is smaller
  970. 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>
  971. 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>
  972. UINT8 rate; //NR adjust gain step
  973. }NOISE_REDUCE, *PNOISE_REDUCE;
  974. typedef struct _SIS_AGC_INFO
  975. {
  976. UINT8 AGC_Enable; /* True = Process, False = Bypass */
  977. UINT8 AGC_limiter_level; //unit -1dB, 0: 0: 0.dB(default), 1: -1dB, 2: -2dB.... Max: 30 : -30dB
  978. UINT8 AGC_pullup_gain; //unit: +1dB, 0: 0.dB(default), 1: 1 dB... max:18(+18 dB)
  979. 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
  980. UINT8 AGC_pullup_active_level; //internal use, control pullup gain active level, max = -12dB ( pullup gain only work at input < -12dB)
  981. UINT8 AGC_Tool_Control;
  982. UINT8 AGC_active_time; //unit 10ms, 0: 10ms, 1: 20ms .... 15: 160ms
  983. UINT8 AGC_attack_speed; //Control attack speed, 0: default(slowest) ~ 7: fastest (30x default)
  984. }SIS_AGC_INFO, *pSIS_AGC_INFO;
  985. typedef struct _SRS_TVOL_SET
  986. {
  987. UINT8 SRSTVEnable;
  988. UINT8 tv;
  989. UINT8 tvnoise;
  990. UINT8 noisethreshold;
  991. UINT8 tvmode;
  992. UINT8 tvspksize;
  993. UINT16 inputgain;
  994. UINT8 outputgain;
  995. UINT8 bypassgain;
  996. UINT8 referencelevel;
  997. UINT16 maxgain;
  998. } SRS_TVOL_SET, *pSRS_TVOL_SET;
  999. typedef struct _DBXAUDIO_SET
  1000. {
  1001. UINT8 mtotvol;
  1002. UINT8 mtotsur;
  1003. UINT8 mtotson;
  1004. UINT32 enable_flag;
  1005. }DBXAUDIO_SET, *pDBXAUDIO_SET;
  1006. typedef struct _TREBLE_SET
  1007. {
  1008. INT8 treble_gain;
  1009. UINT32 treble_frequency;
  1010. }TREBLE_SET, *pTREBLE_SET;
  1011. typedef struct _BASS_SET
  1012. {
  1013. INT8 bass_gain;
  1014. UINT32 bass_frequency;
  1015. }BASS_SET, *pBASS_SET;
  1016. typedef struct _AUDIO_POSTPROCESS_SET
  1017. {
  1018. INT32 flag;
  1019. union
  1020. {
  1021. SRS_TSHD_SET tshd; //current srstshd setting
  1022. SRS_TVOL_SET tvol; // Truevolume setting
  1023. PEQ_SET peq; // current PEQ setting
  1024. // SIS_EQ_INIT eqInit;// new EQ
  1025. // SIS_EQ_SET eqSet; // new EQ
  1026. SISAE_SET sisAE;
  1027. MS_AE_SET ms_ae;
  1028. NOISE_REDUCE nr;
  1029. SIS_AGC_INFO agc_info;
  1030. PLC_Config plc;
  1031. CUT_OFF_SET cut_off;
  1032. HPLP_SET hp_lp;
  1033. DBXAUDIO_SET dbx;
  1034. char titoi;
  1035. #ifdef CONFIG_AUDIO_PARAMETRIC_SHELVING
  1036. TREBLE_SET treble;
  1037. BASS_SET bass;
  1038. #else
  1039. INT8 treble;
  1040. INT8 bass;
  1041. #endif
  1042. };
  1043. }AUDIO_POSTPROCESS_SET, *pAUDIO_POSTPROCESS_SET;
  1044. //SAVE APP AUDIO SETTTING STATUS
  1045. typedef struct _AUDIO_APP_STATUS
  1046. {
  1047. union{
  1048. UINT32 mute_status_all;
  1049. struct{
  1050. //SAVE REAL HW MUTE STATUS
  1051. UINT32 mute_tx_sd0:1;
  1052. UINT32 mute_tx_sd1:1;
  1053. UINT32 mute_tx_spdif:1;
  1054. UINT32 mute_dac_speaker : 1;
  1055. UINT32 mute_dac_headphone : 1;
  1056. UINT32 mute_dac_lineout : 1;
  1057. UINT32 mute_tx_I2S3:1;
  1058. UINT32 mute_status_reserved1 : 9;
  1059. //SAVE APP MUTE STATUS, DC MUTE WILL CHECK THESE FLAG.
  1060. UINT32 mute_app_tx_sd0: 1;
  1061. UINT32 mute_app_tx_sd1: 1;
  1062. UINT32 mute_app_tx_spdif: 1;
  1063. UINT32 mute_app_dac_speaker:1;
  1064. UINT32 mute_app_dac_headphone: 1;
  1065. UINT32 mute_app_dac_lineout :1;
  1066. UINT32 mute_app_tx_I2S3:1;
  1067. UINT32 mute_status_reserved2:9;
  1068. };
  1069. };
  1070. INT32 SD0_Vol;
  1071. INT32 SD1_Vol;
  1072. INT32 SPDIF_Vol;
  1073. UINT32 OSD_SD0;
  1074. UINT32 OSD_SD1;
  1075. UINT32 OSD_SPDIF;
  1076. INT32 Bal_L;
  1077. INT32 Bal_R;
  1078. UINT32 ADC_PIN;
  1079. }AUDIO_APP_STATUS, *pAUDIO_APP_STATUS;
  1080. #pragma pack(pop)
  1081. /********************************************************************************************************
  1082. AUDIO STRUCTURE FOR AUDIO TOOL
  1083. *********************************************************************************************************/
  1084. #if 0
  1085. typedef struct _AUDIO_SETTINGS_EQ
  1086. {
  1087. INT8 gain[PEQ_BAND_MAX];
  1088. UINT8 valid[PEQ_BAND_MAX]; // 0: disable, 1:enable
  1089. UINT32 fc[PEQ_BAND_MAX]; // center frequency: 20~20000
  1090. UINT8 q[PEQ_BAND_MAX]; // 1(0.1)~30(3.0)
  1091. } AUDIO_SETTINGS_EQ;
  1092. #endif
  1093. typedef struct _AUDIO_SETTINGS_BALANCE
  1094. {
  1095. INT32 left;
  1096. INT32 right;
  1097. } AUDIO_SETTINGS_BALANCE;
  1098. typedef struct _AUDIO_SETTINGS_VOLUME
  1099. {
  1100. INT32 master;
  1101. INT32 aux1;
  1102. } AUDIO_SETTINGS_VOLUME;
  1103. typedef struct _AUDIO_SETTINGS_VOLUME_OSD_INDEX
  1104. {
  1105. UINT32 OSD_SD0;
  1106. UINT32 OSD_SD1;
  1107. }AUDIO_SETTINGS_VOLUME_OSD_INDEX;
  1108. typedef struct _AUDIO_SETTINGS_VOL_OFFSET
  1109. {
  1110. } AUDIO_SETTINGS_VOL_OFFSET;
  1111. typedef struct _AUDIO_SETTINGS_SUN_SURROUND
  1112. {
  1113. UINT8 directgain;
  1114. UINT8 reverbgain;
  1115. UINT8 ambiancegain;
  1116. } AUDIO_SETTINGS_SUN_SURROUND;
  1117. typedef struct _AUDIO_SETTINGS_t
  1118. {
  1119. AUDIO_SETTINGS_TYPE_e type;
  1120. union
  1121. {
  1122. INT8 bass;
  1123. INT8 treble;
  1124. // AUDIO_SETTINGS_EQ eq;
  1125. AUDIO_SETTINGS_BALANCE balance;
  1126. AUDIO_SETTINGS_VOLUME volume;
  1127. AUDIO_SETTINGS_VOLUME_OSD_INDEX Osd_volume_index;
  1128. AUDIO_SETTINGS_VOL_OFFSET vol_offset;
  1129. AUDIO_SETTINGS_SUN_SURROUND sun_surround;
  1130. SRS_TSHD_SET tshd;
  1131. SRS_TVOL_SET tvol;
  1132. SIS_AGC_INFO avl;
  1133. PLC_Config plc;
  1134. };
  1135. } AUDIO_SETTINGS_t;
  1136. typedef struct _AUDIO_REC_PARAM_t
  1137. {
  1138. UINT32 rec_cmdbuf_size;
  1139. UINT32 rec_pcmbuf_size;
  1140. UINT32 rec_txdespbuf_size;
  1141. UINT32 rec_actlbuf_size;
  1142. UINT32 rec_cmdbuf_kbase;
  1143. UINT32 rec_pcmbuf_kbase;
  1144. UINT32 rec_txdespbuf_kbase;
  1145. UINT32 rec_actlbuf_kbase;
  1146. UINT32 rec_raw_frame_size;
  1147. UINT32 rec_pcm_frame_size;
  1148. UINT32 rec_pcm_wp;
  1149. INT32 rec_pcm_rp;
  1150. }AUDIO_REC_PARAM_t;
  1151. typedef enum
  1152. {
  1153. AUDIOPOWER_DAC2_OUTPUT, //DAC2 power control
  1154. AUDIOPOWER_ADC_INPUT, // ADC in power control
  1155. AUDIOPOWER_POWER_DOWN, //SET audio Power off
  1156. //reserved for other devices
  1157. AUDIOPOWER_DEVICE_UNKNOW = 0xff
  1158. }AUDIOPOWER_DEVICE;
  1159. typedef struct _AUDIO_DEVICE_POWERCTRL
  1160. {
  1161. UINT8 flag;
  1162. UINT8 POWERStatus;
  1163. }AUDIO_DEVICE_POWERCTRL, *pAUDIO_DEVICE_POWERCTRL;
  1164. void DRV_AUDIO_RESET_DAC_SDM(void);
  1165. #ifdef CONFIG_SUPPORT_DBX
  1166. /** Parameters structure.
  1167. This defines the DSP parameters that get copied from the preset to
  1168. the DSP memory.
  1169. */
  1170. typedef struct _DBXTV_PARAMETERS
  1171. {
  1172. UINT32 DVCOnOff;
  1173. UINT32 DVCFreq;
  1174. UINT32 DVCHiLevel;
  1175. UINT32 DVCHiRMSTime;
  1176. UINT32 DVCHiAvgAttTime;
  1177. UINT32 DVCHiAvgRelTime;
  1178. UINT32 DVCHiAttRat;
  1179. UINT32 DVCHiRelRat;
  1180. UINT32 DVCHiAttThr;
  1181. UINT32 DVCHiRelThr;
  1182. UINT32 DVCHiAttDel;
  1183. UINT32 DVCHiRelDel;
  1184. UINT32 DVCHiGate;
  1185. UINT32 DVCHiGain;
  1186. UINT32 DVCHiHold;
  1187. UINT32 DVCHiRMS;
  1188. UINT32 DVCHiRMSTimeConst;
  1189. UINT32 DVCHiAvgAttTimeConst;
  1190. UINT32 DVCHiAvgRelTimeConst;
  1191. UINT32 DVCHiAvgAttTCNormal;
  1192. UINT32 DVCHiAvgAttTCFast;
  1193. UINT32 DVCHiAvgRelTCNormal;
  1194. UINT32 DVCHiAvgRelTCFast;
  1195. UINT32 DVCLoLevel;
  1196. UINT32 DVCLoRMSTime;
  1197. UINT32 DVCLoAvgAttTime;
  1198. UINT32 DVCLoAvgRelTime;
  1199. UINT32 DVCLoAttRat;
  1200. UINT32 DVCLoRelRat;
  1201. UINT32 DVCLoAttThr;
  1202. UINT32 DVCLoRelThr;
  1203. UINT32 DVCLoAttDel;
  1204. UINT32 DVCLoRelDel;
  1205. UINT32 DVCLoGate;
  1206. UINT32 DVCLoGain;
  1207. UINT32 DVCLoHold;
  1208. UINT32 DVCLoRMS;
  1209. UINT32 DVCLoRMSTimeConst;
  1210. UINT32 DVCLoAvgAttTimeConst;
  1211. UINT32 DVCLoAvgRelTimeConst;
  1212. UINT32 DVCLoAvgAttTCNormal;
  1213. UINT32 DVCLoAvgAttTCFast;
  1214. UINT32 DVCLoAvgRelTCNormal;
  1215. UINT32 DVCLoAvgRelTCFast;
  1216. UINT32 DVCMuteOnOff;
  1217. UINT32 DVCMuteTime;
  1218. UINT32 DVCMuteLevel;
  1219. UINT32 DVCMuteDetect;
  1220. UINT32 DVCMuteHold;
  1221. UINT32 DVCHold;
  1222. UINT32 DVCOrder;
  1223. UINT32 DVCCoupling;
  1224. UINT32 DVCHoldTime;
  1225. UINT32 DVCHoldTC;
  1226. UINT32 DPPOnOff;
  1227. UINT32 DPPThresh;
  1228. UINT32 DPPAvgTime;
  1229. UINT32 DPPSumRMS;
  1230. UINT32 DPPDifRMS;
  1231. UINT32 DPPProtect;
  1232. UINT32 DPPGain;
  1233. UINT32 DPPHPBypass;
  1234. UINT32 DPPFreq;
  1235. UINT32 DPPEQBypass;
  1236. UINT32 DPPGL;
  1237. UINT32 DPPGM;
  1238. UINT32 DPPGH;
  1239. UINT32 DPPFL;
  1240. UINT32 DPPFH;
  1241. UINT32 DPPRMSTime;
  1242. UINT32 DPPRMSTimeConstSum;
  1243. UINT32 DPPRMSTimeConstDif;
  1244. UINT32 DPPCenter;
  1245. UINT32 DPPAvgTimeConst;
  1246. UINT32 IWBypass;
  1247. UINT32 IWSpaceGain;
  1248. UINT32 IWClip;
  1249. UINT32 EQBypass;
  1250. UINT32 EQNumBands;
  1251. UINT32 BEOnOff;
  1252. UINT32 BEFreq;
  1253. UINT32 BEMaxGain;
  1254. UINT32 BEOrder;
  1255. UINT32 BEHPFFreq;
  1256. UINT32 BELevel;
  1257. UINT32 BERMSTime;
  1258. UINT32 BEAvgAttTime;
  1259. UINT32 BEAvgRelTime;
  1260. UINT32 BEGainRat;
  1261. UINT32 BEGain;
  1262. UINT32 BERMS;
  1263. UINT32 BERMSTimeConst;
  1264. UINT32 BEAvgAttTimeConst;
  1265. UINT32 BEAvgRelTimeConst;
  1266. UINT32 BEPeakThreshLin;
  1267. } DBXTV_PARAMETERS;
  1268. /** Coefficients structure.
  1269. This defines the DSP coefficients that get copied from the preset to
  1270. the DSP memory.
  1271. */
  1272. typedef struct _DBXTV_COEFFICIENTS
  1273. {
  1274. INT32 DVClpfL1coef[5];
  1275. INT32 DVChpfL1coef[5];
  1276. INT32 DPPeqlcoef[5];
  1277. INT32 DPPeqlmcoef[5];
  1278. INT32 DPPeqhmcoef[5];
  1279. INT32 DPPeqhcoef[5];
  1280. INT32 DPPhpfdifcoef[5];
  1281. INT32 IWEQCoefs[5];
  1282. INT32 DEQCoefs0[5];
  1283. INT32 DEQCoefs1[5];
  1284. INT32 DEQCoefs2[5];
  1285. INT32 DEQCoefs3[5];
  1286. INT32 DEQCoefs4[5];
  1287. INT32 DEQCoefs5[5];
  1288. INT32 DEQCoefs6[5];
  1289. INT32 DVCBELPF1Coefs[5];
  1290. INT32 DVCBELPF2Coefs[5];
  1291. INT32 DVCBEHPF1Coefs[5];
  1292. INT32 DVCBEHPF2Coefs[5];
  1293. INT32 BEHPFCoefs[5];
  1294. } DBXTV_COEFFICIENTS;
  1295. /** Data structure */
  1296. typedef union _DBXTV_Param
  1297. {
  1298. UINT32 Data[95];
  1299. DBXTV_PARAMETERS Params;
  1300. } DBXTV_Param;
  1301. /** Coef structure */
  1302. typedef union _DBXTV_Coeff
  1303. {
  1304. UINT32 Data[100];
  1305. DBXTV_COEFFICIENTS Coefs;
  1306. } DBXTV_Coeff;
  1307. typedef struct _DBX_PARAM_TABLE
  1308. {
  1309. DBXTV_Param TotSonParam[1];
  1310. DBXTV_Coeff TotSonCoeff[1];
  1311. DBXTV_Param TotVolParam[2];
  1312. DBXTV_Coeff TotVolCoeff[2];
  1313. DBXTV_Param TotSurParam[1];
  1314. DBXTV_Coeff TotSurCoeff[1];
  1315. }DBX_PARAM_TABLE,*pDBX_PARAM_TABLE;
  1316. typedef struct _DBX_CTL
  1317. {
  1318. UINT32 flag; //0: GET, 1: SET
  1319. UINT32 table_type;
  1320. UINT32 offset;
  1321. UINT32 value;
  1322. }DBX_CTL,*pDBX_CTL;
  1323. #endif //~ CONFIG_SUPPORT_DBX
  1324. #endif