config_extra.h 30 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063
  1. #ifndef __CONFIG_EXTRA_H__
  2. #define __CONFIG_EXTRA_H__
  3. /*****************************************************************************
  4. * Module : SDK版本配置
  5. *****************************************************************************/
  6. #ifndef SDK_VERSION
  7. #define SDK_VERSION 0x013 //V013
  8. #endif
  9. /*****************************************************************************
  10. * Module : 系统功能配置
  11. *****************************************************************************/
  12. #undef SYS_ADJ_DIGVOL_EN
  13. #define SYS_ADJ_DIGVOL_EN 1
  14. #ifndef SYS_MODE_BREAKPOINT_EN
  15. #define SYS_MODE_BREAKPOINT_EN 0
  16. #endif // SYS_MODE_BREAKPOINT_EN
  17. #ifndef ENERGY_LED_EN
  18. #define ENERGY_LED_EN 0
  19. #endif
  20. #ifndef PLUGIN_SYS_INIT_FINISH_CALLBACK
  21. #define PLUGIN_SYS_INIT_FINISH_CALLBACK 0
  22. #endif
  23. #ifndef PLUGIN_FUNC_IDLE_ENTER_CHECK
  24. #define PLUGIN_FUNC_IDLE_ENTER_CHECK 0
  25. #endif
  26. #ifndef FLASH_SPEED_UP_EN
  27. #define FLASH_SPEED_UP_EN 1
  28. #endif
  29. #ifndef MUSIC_AAC_SUPPORT
  30. #define MUSIC_AAC_SUPPORT 0
  31. #endif // MUSIC_AAC_SUPPORT
  32. #ifndef USER_NTC
  33. #define USER_NTC 0
  34. #endif
  35. #if !EQ_DBG_IN_UART
  36. #undef EQ_DBG_IN_UART_VUSB_EN
  37. #define EQ_DBG_IN_UART_VUSB_EN 0
  38. #endif
  39. /*****************************************************************************
  40. * Module : 充电仓功能选择
  41. *****************************************************************************/
  42. #if !CHARGE_EN
  43. #undef CHARGE_BOX_EN
  44. #define CHARGE_BOX_EN 0
  45. #endif
  46. #if !CHARGE_BOX_EN
  47. #undef CHARGE_BOX_TYPE
  48. #define CHARGE_BOX_TYPE CBOX_NONE
  49. #endif
  50. #if (CHARGE_BOX_TYPE != CBOX_SSW)
  51. #undef CHARGE_BOX_INTF_SEL
  52. #define CHARGE_BOX_INTF_SEL INTF_NONE
  53. #endif
  54. #if ((CHARGE_BOX_TYPE == CBOX_SSW) && !BT_TWS_EN)
  55. #undef CHARGE_BOX_TYPE
  56. #define CHARGE_BOX_TYPE CBOX_NONE
  57. #endif
  58. /*****************************************************************************
  59. * Module : 产测功能选择
  60. *****************************************************************************/
  61. #if !IODM_TEST_EN && !QTEST_EN
  62. #undef TEST_INTF_SEL
  63. #define TEST_INTF_SEL INTF_NONE
  64. #endif
  65. #if IODM_TEST_EN
  66. #undef FUNC_BT_DUT_EN
  67. #define FUNC_BT_DUT_EN 1
  68. #endif
  69. #if IODM_TEST_EN || FUNC_BT_FCC_EN || FUNC_BT_DUT_EN || QTEST_EN
  70. #define TEST_MODE_BT_INFO 1
  71. #endif
  72. #if !DAC_PT_EN
  73. #undef DAC_PT_NUM
  74. #define DAC_PT_NUM 0
  75. #endif
  76. /*****************************************************************************
  77. * Module : UART功能选择(待整理)
  78. *****************************************************************************/
  79. #if BT_AEC_DUMP_EN || BT_AEC_FRE_DUMP_EN || BT_SCO_DUMP_EN || BT_EQ_DUMP_EN || BT_SCO_FAR_DUMP_EN
  80. #define BT_SCO_DUMP_TX_EN 1
  81. #else
  82. #define BT_SCO_DUMP_TX_EN 0
  83. #endif
  84. #if (CHARGE_BOX_INTF_SEL == INTF_UART1) || (TEST_INTF_SEL == INTF_UART1)
  85. #define UART1_EN 1
  86. #elif (CHARGE_BOX_INTF_SEL == INTF_UART2) || (TEST_INTF_SEL == INTF_UART2)
  87. #define UART2_EN 1
  88. #endif
  89. #if (CHARGE_BOX_INTF_SEL == INTF_HUART) || (TEST_INTF_SEL == INTF_HUART) || EQ_DBG_IN_UART || BT_SCO_DUMP_TX_EN || QTEST_EN || ANC_TOOL_EN/*(强制打开HUART)*/
  90. #define HUART_EN 1
  91. #endif
  92. /*****************************************************************************
  93. * Module : 音乐功能配置
  94. *****************************************************************************/
  95. #if !FUNC_MUSIC_EN
  96. #undef MUSIC_UDISK_EN
  97. #undef MUSIC_SDCARD_EN
  98. #undef MUSIC_WAV_SUPPORT
  99. #undef MUSIC_WMA_SUPPORT
  100. #undef MUSIC_APE_SUPPORT
  101. #undef MUSIC_FLAC_SUPPORT
  102. #undef MUSIC_SBC_SUPPORT
  103. #undef MUSIC_M4A_SUPPORT
  104. #undef MUSIC_AAC_SUPPORT
  105. #undef MUSIC_ID3_TAG_EN
  106. #define MUSIC_UDISK_EN 0
  107. #define MUSIC_SDCARD_EN 0
  108. #define MUSIC_WAV_SUPPORT 0
  109. #define MUSIC_WMA_SUPPORT 0
  110. #define MUSIC_APE_SUPPORT 0
  111. #define MUSIC_FLAC_SUPPORT 0
  112. #define MUSIC_M4A_SUPPORT 0
  113. #define MUSIC_SBC_SUPPORT 0
  114. #define MUSIC_ID3_TAG_EN 0
  115. #define MUSIC_AAC_SUPPORT 0
  116. #endif // FUNC_MUSIC_EN
  117. #if !CHARGE_EN
  118. #undef CHARGE_TRICK_EN
  119. #undef CHARGE_DC_IN
  120. #undef CHARGE_DC_NOT_PWRON
  121. #define CHARGE_TRICK_EN 0
  122. #define CHARGE_DC_NOT_PWRON 0
  123. #define CHARGE_DC_IN() 0
  124. #endif
  125. #if !LINEIN_DETECT_EN
  126. #undef LINEIN_DETECT_INIT
  127. #undef LINEIN_IS_ONLINE
  128. #undef LINEIN_DETECT_IS_BUSY
  129. #define LINEIN_DETECT_INIT()
  130. #define LINEIN_IS_ONLINE() 0
  131. #define LINEIN_DETECT_IS_BUSY() 0
  132. #endif
  133. #ifndef PWROFF_PRESS_TIME
  134. #define PWROFF_PRESS_TIME 3 //1:大约1秒 3: 1.5s, 6: 2s, 9: 2.5s, 12: 3s
  135. #endif // PWROFF_PRESS_TIME
  136. #ifndef PWRON_PRESS_TIME
  137. #define PWRON_PRESS_TIME 1500 //1.5s
  138. #endif // PWRON_PRESS_TIME
  139. #ifndef DOUBLE_KEY_TIME
  140. #define DOUBLE_KEY_TIME 1
  141. #endif // DOUBLE_KEY_TIME
  142. #ifndef SYS_LIMIT_VOLUME
  143. #define SYS_LIMIT_VOLUME 5
  144. #endif // SYS_LIMIT_VOLUME
  145. #ifndef LINEIN_2_PWRDOWN_TONE_EN
  146. #define LINEIN_2_PWRDOWN_TONE_EN 0 //插入Linein直接关机,是否播放关机提示音。
  147. #endif // LINEIN_2_PWRDOWN_TONE_EN
  148. #ifndef LPWR_WARING_TIMES
  149. #define LPWR_WARING_TIMES 0xff
  150. #endif // LPWR_WARING_TIMES
  151. #if !BUZZER_EN
  152. #undef BUZZER_INIT
  153. #define BUZZER_INIT()
  154. #undef BUZZER_ON
  155. #define BUZZER_ON()
  156. #undef BUZZER_OFF
  157. #define BUZZER_OFF()
  158. #endif
  159. #ifndef LED_LOWBAT_EN
  160. #define LED_LOWBAT_EN 0
  161. #endif // RLED_LOWBAT_EN
  162. #ifndef RLED_LOWBAT_FOLLOW_EN
  163. #define RLED_LOWBAT_FOLLOW_EN 1
  164. #endif // RLED_LOWBAT_FOLLOW_EN
  165. #ifndef SLEEP_DAC_OFF_EN
  166. #define SLEEP_DAC_OFF_EN 1
  167. #endif // SLEEP_DAC_OFF_EN
  168. #ifndef PWRON_FRIST_BAT_EN
  169. #define PWRON_FRIST_BAT_EN 0
  170. #endif // PWRON_FRIST_BAT_EN
  171. #if !LED_DISP_EN
  172. #undef LED_LOWBAT_EN
  173. #undef RLED_LOWBAT_FOLLOW_EN
  174. #undef BLED_FFT_EN
  175. #undef BLED_LOW2ON_EN
  176. #undef BLED_CHARGE_FULL_EN
  177. #undef BT_RECONN_LED_EN
  178. #define LED_LOWBAT_EN 0
  179. #define RLED_LOWBAT_FOLLOW_EN 0
  180. #define BLED_FFT_EN 0
  181. #define BLED_LOW2ON_EN 0
  182. #define BLED_CHARGE_FULL_EN 0
  183. #define BT_RECONN_LED_EN 0
  184. #endif
  185. #if !LED_DISP_EN
  186. #undef LED_INIT
  187. #define LED_INIT()
  188. #undef LED_SET_ON
  189. #define LED_SET_ON()
  190. #undef LED_SET_OFF
  191. #define LED_SET_OFF()
  192. #endif
  193. #if !LED_PWR_EN
  194. #undef LED_PWR_INIT
  195. #define LED_PWR_INIT()
  196. #undef LED_PWR_SET_ON
  197. #define LED_PWR_SET_ON()
  198. #undef LED_PWR_SET_OFF
  199. #define LED_PWR_SET_OFF()
  200. #endif
  201. #undef GUI_LCD_EN
  202. #define GUI_LCD_EN 0
  203. #undef MUSIC_NAVIGATION_EN
  204. #define MUSIC_NAVIGATION_EN 0
  205. #if !LOUDSPEAKER_MUTE_EN
  206. #undef LOUDSPEAKER_MUTE_INIT
  207. #define LOUDSPEAKER_MUTE_INIT()
  208. #undef LOUDSPEAKER_MUTE_DIS
  209. #define LOUDSPEAKER_MUTE_DIS()
  210. #undef LOUDSPEAKER_MUTE
  211. #define LOUDSPEAKER_MUTE()
  212. #undef LOUDSPEAKER_UNMUTE
  213. #define LOUDSPEAKER_UNMUTE()
  214. #undef LOUDSPEAKER_UNMUTE_DELAY
  215. #define LOUDSPEAKER_UNMUTE_DELAY 0
  216. #endif
  217. #ifndef IR_INPUT_NUM_MAX
  218. #define IR_INPUT_NUM_MAX 999 //最大输入数字9999
  219. #endif // IR_INPUT_NUM_MAX
  220. #ifndef FMRX_THRESHOLD_VAL
  221. #define FMRX_THRESHOLD_VAL 128
  222. #endif // FMRX_THRESHOLD_VAL
  223. #ifndef FMRX_SEEK_DISP_CH_EN
  224. #define FMRX_SEEK_DISP_CH_EN 0
  225. #endif // FMRX_SEEK_DISP_CH_EN
  226. #ifndef SD_SOFT_DETECT_EN
  227. #define SD_SOFT_DETECT_EN 0
  228. #undef SD_IS_SOFT_DETECT
  229. #define SD_IS_SOFT_DETECT() 0
  230. #endif // SD_SOFT_DETECT_EN
  231. #if USER_ADKEY_MUX_LED
  232. #undef USER_ADKEY
  233. #undef USER_ADKEY_MUX_SDCLK
  234. #undef ADKEY_PU10K_EN
  235. #define USER_ADKEY 1
  236. #define USER_ADKEY_MUX_SDCLK 0
  237. #define ADKEY_PU10K_EN 0
  238. #endif // USER_ADKEY_MUX_LED
  239. #if ((SD0_MAPPING == SD0MAP_G5) || (SD0_MAPPING == SD0MAP_G4)) && MUSIC_UDISK_EN && MUSIC_SDCARD_EN
  240. #define SD_USB_MUX_IO_EN 0
  241. #else
  242. #define SD_USB_MUX_IO_EN 0
  243. #endif
  244. #ifndef DAC_DRC_EN
  245. #define DAC_DRC_EN 0
  246. #endif
  247. #if !USER_PWRKEY
  248. #undef PWRKEY_IS_PRESS
  249. #define PWRKEY_IS_PRESS() 0
  250. #endif
  251. #if !USER_TKEY
  252. #undef USER_TKEY_SOFT_PWR_EN
  253. #undef USER_TKEY_INEAR
  254. #undef USER_TKEY_DEBUG_EN
  255. #undef TKEY_IS_PRESS
  256. #undef USER_TKEY_TEMP_EN
  257. #define USER_TKEY_SOFT_PWR_EN 0
  258. #define USER_TKEY_INEAR 0
  259. #define USER_TKEY_DEBUG_EN 0
  260. #define TKEY_IS_PRESS() 0
  261. #define USER_TKEY_TEMP_EN 0
  262. #else
  263. #undef USER_PWRKEY
  264. #define USER_PWRKEY 0
  265. #endif
  266. #if USER_TKEY_INEAR
  267. #undef USER_TKEY_TEMP_EN
  268. #define USER_TKEY_TEMP_EN 1
  269. #endif // USER_TKEY_INEAR
  270. #if !USER_TKEY_SOFT_PWR_EN
  271. #undef USER_TKEY_LOWPWR_WAKEUP_DIS
  272. #define USER_TKEY_LOWPWR_WAKEUP_DIS 0
  273. #endif
  274. #if !USER_INEAR_DETECT_EN
  275. #undef USER_TKEY_INEAR
  276. #undef USER_INEAR_DET_OPT
  277. #undef INEAR_IS_ONLINE
  278. #define USER_TKEY_INEAR 0
  279. #define USER_INEAR_DET_OPT 0
  280. #define INEAR_IS_ONLINE() 0
  281. #endif
  282. #if !USER_INEAR_DET_OPT
  283. #undef INEAR_OPT_PORT_INIT
  284. #define INEAR_OPT_PORT_INIT()
  285. #endif
  286. /*****************************************************************************
  287. * Module : 录音功能配置
  288. *****************************************************************************/
  289. #if !FUNC_REC_EN
  290. #undef FMRX_REC_EN
  291. #undef AUX_REC_EN
  292. #undef MIC_REC_EN
  293. #undef REC_TYPE_SEL
  294. #undef REC_AUTO_PLAY
  295. #undef REC_FAST_PLAY
  296. #undef BT_REC_EN
  297. #undef BT_HFP_REC_EN
  298. #undef KARAOK_REC_EN
  299. #undef REC_STOP_MUTE_1S
  300. #define FMRX_REC_EN 0
  301. #define AUX_REC_EN 0
  302. #define MIC_REC_EN 0
  303. #define REC_AUTO_PLAY 0
  304. #define REC_FAST_PLAY 0
  305. #define BT_REC_EN 0
  306. #define BT_HFP_REC_EN 0
  307. #define KARAOK_REC_EN 0
  308. #define REC_TYPE_SEL REC_NO
  309. #define REC_STOP_MUTE_1S 0
  310. #endif //FUNC_REC_EN
  311. #if FMRX_INSIDE_EN
  312. #undef FMRX_QN8035_EN
  313. #define FMRX_QN8035_EN 0
  314. //#else
  315. //#undef I2C_SW_EN
  316. //#define I2C_SW_EN 1
  317. #endif
  318. #if !I2C_SW_EN
  319. #undef I2C_MUX_SD_EN
  320. #define I2C_MUX_SD_EN 0
  321. #endif
  322. /*****************************************************************************
  323. * Module : karaok相关配置
  324. *****************************************************************************/
  325. #if SYS_KARAOK_EN
  326. #undef FUNC_SPEAKER_EN
  327. #undef BT_HFP_REC_EN
  328. #define FUNC_SPEAKER_EN 0
  329. #define BT_HFP_REC_EN 0 //Karaok不支持通话录音
  330. #else
  331. #undef SYS_ECHO_EN
  332. #undef HIFI4_ECHO_EN
  333. #undef HIFI4_REVERB_EN
  334. #undef SYS_MAGIC_VOICE_EN
  335. #undef HIFI4_PITCH_SHIFT_EN
  336. #undef HIFI4_HOWLING_EN
  337. #undef SYS_HOWLING_EN
  338. #undef KARAOK_REC_EN
  339. #define SYS_ECHO_EN 0
  340. #define HIFI4_ECHO_EN 0
  341. #define HIFI4_REVERB_EN 0
  342. #define SYS_MAGIC_VOICE_EN 0
  343. #define HIFI4_PITCH_SHIFT_EN 0
  344. #define HIFI4_HOWLING_EN 0
  345. #define SYS_HOWLING_EN 0
  346. #define KARAOK_REC_EN 0
  347. #endif // SYS_KARAOK_EN
  348. #if SYS_HOWLING_EN
  349. #undef SYS_MAGIC_VOICE_EN
  350. #define SYS_MAGIC_VOICE_EN 1
  351. #endif
  352. /*****************************************************************************
  353. * Module : 蓝牙相关配置
  354. *****************************************************************************/
  355. #if (LE_AB_LINK_APP_EN && AB_MATE_APP_EN)
  356. #error "APP: please don't open LE_AB_LINK_APP_EN & AB_MATE_APP_EN at the same time\n"
  357. #endif
  358. #if (LE_AB_LINK_APP_EN && LE_USER_APP_EN)
  359. #error "APP: please don't open LE_AB_LINK_APP_EN & LE_USER_APP_EN at the same time\n"
  360. #endif
  361. #if (AB_MATE_APP_EN && LE_USER_APP_EN)
  362. #error "APP: please don't open AB_MATE_APP_EN & LE_USER_APP_EN at the same time\n"
  363. #endif
  364. #if LE_AB_LINK_APP_EN || AB_MATE_APP_EN || LE_BQB_RF_EN || GFPS_EN || LE_USER_APP_EN || LE_PRIV_EN || LE_DUEROS_DMA_EN || LE_TUYA_EN || ONEMORE_APP_EN
  365. #define LE_EN 1
  366. #define BT_DUAL_MODE_EN 1
  367. #else
  368. #define LE_EN 0
  369. #define BT_DUAL_MODE_EN 0
  370. #endif
  371. #if GFPS_EN
  372. #define LE_ADDRESS_TYPE 3 //GAP_RANDOM_ADDRESS_RESOLVABLE
  373. #else
  374. #define LE_ADDRESS_TYPE 0 //GAP_RANDOM_ADDRESS_TYPE_OFF
  375. #endif
  376. #if !LE_EN
  377. #undef LE_AB_FOT_EN
  378. #undef LE_PAIR_EN
  379. #undef LE_SM_SC_EN
  380. #define LE_AB_FOT_EN 0
  381. #define LE_PAIR_EN 0
  382. #define LE_SM_SC_EN 0
  383. #endif
  384. #if GFPS_EN
  385. #undef LE_ADV_POWERON_EN
  386. #define LE_ADV_POWERON_EN 0
  387. #endif
  388. #if LE_DUEROS_DMA_EN
  389. #undef OPUS_ENC_EN
  390. #define OPUS_ENC_EN 1
  391. #if BT_TWS_EN
  392. #undef BT_TWS_PUBLIC_ADDR_EN
  393. #define BT_TWS_PUBLIC_ADDR_EN 1
  394. #endif
  395. #endif
  396. #ifndef BT_A2DP_RECON_EN
  397. #define BT_A2DP_RECON_EN 0
  398. #endif
  399. #ifndef BT_PAIR_SLEEP_EN
  400. #define BT_PAIR_SLEEP_EN 0
  401. #endif // BT_PAIR_SLEEP_EN
  402. #if BT_BACKSTAGE_EN
  403. #undef MUSIC_WMA_SUPPORT
  404. #undef MUSIC_FLAC_SUPPORT
  405. #undef FMRX_THRESHOLD_FZ
  406. #define MUSIC_WMA_SUPPORT 0
  407. #define MUSIC_FLAC_SUPPORT 0
  408. #define FMRX_THRESHOLD_FZ 0
  409. #endif
  410. #ifndef BT_HFP_RINGS_BEFORE_NUMBER
  411. #define BT_HFP_RINGS_BEFORE_NUMBER 0
  412. #endif
  413. #ifndef BT_A2DP_AAC_AUDIO_EN
  414. #define BT_A2DP_AAC_AUDIO_EN 0
  415. #endif // BT_A2DP_AAC_AUDIO_EN
  416. #if !BT_A2DP_EN
  417. #undef BT_A2DP_AAC_AUDIO_EN
  418. #define BT_A2DP_AAC_AUDIO_EN 0
  419. #endif
  420. #if BT_FCC_TEST_EN || LE_BQB_RF_EN //FCC 默认PB3 (USB_DP) 波特率1500000通信, 关闭用到PB3的程序
  421. #undef FUNC_USBDEV_EN
  422. #undef MUSIC_UDISK_EN
  423. #define FUNC_USBDEV_EN 0
  424. #define MUSIC_UDISK_EN 0
  425. //#if (UART0_PRINTF_SEL == PRINTF_PB3)
  426. //#undef UART0_PRINTF_SEL
  427. //#define UART0_PRINTF_SEL PRINTF_NONE
  428. //#endif
  429. #endif
  430. #if !BT_TWS_EN
  431. #undef BT_TWS_SCO_EN
  432. #define BT_TWS_SCO_EN 0
  433. #undef BT_TWS_MS_SWITCH_EN
  434. #define BT_TWS_MS_SWITCH_EN 0
  435. #undef FOT_SUPPORT_TWS
  436. #define FOT_SUPPORT_TWS 0
  437. #undef BT_TWS_DBG_EN
  438. #define BT_TWS_DBG_EN 0
  439. #endif
  440. #if BT_TWS_DBG_EN
  441. #if !BT_SPP_EN
  442. #error "TWS_DBG: please open BT_TWS_DBG_EN & BT_SPP_EN at the same time\n"
  443. #endif
  444. #endif // BT_TWS_DBG_EN
  445. #if AB_MATE_APP_EN
  446. #undef EQ_APP_EN
  447. #undef BT_A2DP_AVRCP_PLAY_STATUS_EN
  448. #define EQ_APP_EN 1
  449. #define BT_A2DP_AVRCP_PLAY_STATUS_EN 1
  450. #undef LE_AB_FOT_EN
  451. #undef BT_AB_FOT_EN
  452. #define LE_AB_FOT_EN 0
  453. #define BT_AB_FOT_EN 0
  454. #endif
  455. #if BT_AB_FOT_EN || LE_AB_FOT_EN
  456. #undef FOT_EN
  457. #define FOT_EN 1 //是否打开FOTA升级功能
  458. #endif
  459. #if BT_AB_FOT_EN
  460. #if !BT_SPP_EN
  461. #error "FOTA: please open BT_AB_FOT_EN & BT_SPP_EN at the same time\n"
  462. #endif
  463. #endif // BT_AB_FOT_EN
  464. #if BT_HID_VOL_CTRL_EN
  465. #undef BT_HID_EN
  466. #undef BT_A2DP_VOL_CTRL_EN
  467. #define BT_HID_EN 1
  468. #define BT_A2DP_VOL_CTRL_EN 1
  469. #endif // BT_HID_VOL_CTRL_EN
  470. #if !EQ_APP_EN
  471. #undef EQ_APP_NUM
  472. #define EQ_APP_NUM 0
  473. #endif
  474. #if BT_A2DP_LHDC_AUDIO_EN || BT_A2DP_LDAC_AUDIO_EN
  475. #undef DAC_OUT_SPR
  476. #define DAC_OUT_SPR DAC_OUT_96K
  477. #define BT_A2DP_VENDOR_AUDIO_EN 1
  478. #endif
  479. /*****************************************************************************
  480. * Module : 蓝牙音乐算法配置
  481. *****************************************************************************/
  482. #if (!BT_MUSIC_EFFECT_EN) && \
  483. (BT_MUSIC_EFFECT_DBB_EN || \
  484. BT_MUSIC_EFFECT_SPATIAL_AU_EN || \
  485. BT_MUSIC_EFFECT_USER_EN || \
  486. BT_MUSIC_EFFECT_VBASS_EN || \
  487. BT_MUSIC_EFFECT_DYEQ_EN || \
  488. BT_MUSIC_EFFECT_XDRC_EN || \
  489. ABP_EN || \
  490. BT_MUSIC_EFFECT_HRTF_RT_EN \
  491. )
  492. #error "EFFECT: please set the macro BT_MUSIC_EFFECT_EN!"
  493. #endif
  494. #if !BT_MUSIC_EFFECT_DBB_EN
  495. #undef BT_MUSIC_EFFECT_DBB_BAND_CNT
  496. #define BT_MUSIC_EFFECT_DBB_BAND_CNT 0
  497. #endif
  498. #if BT_MUSIC_EFFECT_DYEQ_VBASS_EN
  499. #undef BT_MUSIC_EFFECT_VBASS_EN
  500. #define BT_MUSIC_EFFECT_VBASS_EN 0
  501. #endif
  502. #if !BT_MUSIC_EFFECT_XDRC_EN
  503. #undef BT_MUSIC_EFFECT_XDRC_EQ_EN
  504. #undef BT_MUSIC_EFFECT_XDRC_DELAY_EN
  505. #define BT_MUSIC_EFFECT_XDRC_EQ_EN 0
  506. #define BT_MUSIC_EFFECT_XDRC_DELAY_EN 0
  507. #endif
  508. #if !ABP_EN
  509. #undef ABP_MUSIC_DIS_PINK_EN
  510. #undef ABP_PLAY_WAKE_EN
  511. #undef ABP_PLAY_DIS_WAV_EN
  512. #define ABP_MUSIC_DIS_PINK_EN 0
  513. #define ABP_PLAY_WAKE_EN 0
  514. #define ABP_PLAY_DIS_WAV_EN 0
  515. #endif
  516. #if BT_MUSIC_EFFECT_VBASS_EN || BT_MUSIC_EFFECT_DYEQ_EN || BT_MUSIC_EFFECT_XDRC_EN
  517. #define BT_MUSIC_EFFECT_TWS_ALG_EN 1
  518. #endif
  519. #if BT_MUSIC_EFFECT_DBB_EN || BT_MUSIC_EFFECT_DYEQ_EN || BT_MUSIC_EFFECT_XDRC_EN
  520. #define BT_MUSIC_EFFECT_SOFT_VOL_EN 1
  521. #else
  522. #define BT_MUSIC_EFFECT_SOFT_VOL_EN 0
  523. #endif
  524. #if BT_MUSIC_EFFECT_XDRC_EN || BT_MUSIC_EFFECT_DYEQ_EN
  525. #undef BT_MUSIC_EFFECT_ABT_EN
  526. #define BT_MUSIC_EFFECT_ABT_EN 1
  527. #endif
  528. #if !BT_MUSIC_EFFECT_SPATIAL_AU_EN
  529. #undef BT_MUSIC_EFFECT_SPATIAL_AUEQ_EN
  530. #undef BT_MUSIC_EFFECT_SPATIAL_AU_L1
  531. #undef BT_MUSIC_EFFECT_SPATIAL_AU_DLEN
  532. #define BT_MUSIC_EFFECT_SPATIAL_AUEQ_EN 0
  533. #define BT_MUSIC_EFFECT_SPATIAL_AU_L1 0
  534. #define BT_MUSIC_EFFECT_SPATIAL_AU_DLEN 0
  535. #endif
  536. #if !BT_MUSIC_EFFECT_HRTF_RT_EN
  537. #undef BT_MUSIC_EFFECT_HRTF_RT_RST_EN
  538. #undef BT_MUSIC_EFFECT_HRTF_RT_EQ_EN
  539. #define BT_MUSIC_EFFECT_HRTF_RT_RST_EN 0
  540. #define BT_MUSIC_EFFECT_HRTF_RT_EQ_EN 0
  541. #endif
  542. #if !BT_TWS_EN && BT_MUSIC_EFFECT_TWS_ALG_EN
  543. #error "EFFECT: music effect only support TWS mode now."
  544. #endif
  545. #if BT_MUSIC_EFFECT_SPATIAL_AU_EN && BT_MUSIC_EFFECT_HRTF_RT_EN
  546. #error "EFFECT: please select only one spatial audio."
  547. #endif
  548. /*****************************************************************************
  549. * Module : 通话算法相关配置
  550. *****************************************************************************/
  551. #define BT_SCO_SMIC_EN 0
  552. #define BT_SCO_DMIC_EN 0
  553. #if (BT_SCO_NR_EN || BT_SNDP_SMIC_AI_EN || BT_SCO_SMIC_AI_EN || BT_SCO_SMIC_AI_PRO_EN || BT_SCO_AIAEC_DNN_EN || BT_SCO_NR_USER_SMIC_EN)
  554. #undef BT_SCO_SMIC_EN
  555. #define BT_SCO_SMIC_EN 1
  556. #endif
  557. #if (BT_SNDP_DMIC_EN || BT_SCO_DMIC_AI_EN || BT_SCO_LDMIC_AI_EN || BT_SCO_NR_USER_DMIC_EN || BT_SNDP_FBDM_EN || BT_SNDP_DM_AI_EN)
  558. #undef BT_SCO_DMIC_EN
  559. #define BT_SCO_DMIC_EN 1
  560. #endif
  561. #if !BT_SCO_DMIC_EN && !BT_SCO_SMIC_EN
  562. #undef ENC_DBG_EN
  563. #define ENC_DBG_EN 0
  564. #endif
  565. #if BT_SCO_SMIC_EN && BT_SCO_DMIC_EN
  566. #error "NR err: please choose only one of the NR algorithms at the same time!\n"
  567. #endif
  568. #if BT_SCO_NR_EN && (BT_SNDP_SMIC_AI_EN || BT_SCO_SMIC_AI_EN || BT_SCO_SMIC_AI_PRO_EN || BT_SCO_AIAEC_DNN_EN)
  569. #error "NR err: please select only one nr algorithm in BT_SCO_NR_EN, BT_SNDP_SMIC_AI_EN, BT_SCO_SMIC_AI_EN, BT_SCO_SMIC_AI_PRO_EN\n"
  570. #endif
  571. #if (BT_SCO_DUMP_EN || BT_AEC_DUMP_EN || BT_SCO_FAR_DUMP_EN || BT_EQ_DUMP_EN) && ((CHARGE_BOX_TYPE == CBOX_SSW) || QTEST_EN)
  572. #warning "DUMP warning: please select only one nr algorithm in BT_XXX_DUMP_EN, VUSB_XXX_EN\n"
  573. #endif
  574. #if (BT_SCO_DUMP_EN + BT_AEC_DUMP_EN + BT_SCO_FAR_DUMP_EN + BT_EQ_DUMP_EN) > 1
  575. #error "DUMP err: please select only one dump in BT_AEC_DUMP_EN, BT_SCO_DUMP_EN, BT_SCO_FAR_DUMP_EN, BT_EQ_DUMP_EN\n"
  576. #endif
  577. #if !FUNC_USBDEV_EN
  578. #undef USB_MIC_NR_EN
  579. #define USB_MIC_NR_EN 0
  580. #endif
  581. #if USB_MIC_NR_EN
  582. #define SRC_EN 1
  583. #else
  584. #define SRC_EN 0
  585. #endif
  586. /*****************************************************************************
  587. * Module : ANC相关配置
  588. *****************************************************************************/
  589. #if ANC_EN
  590. #undef SYS_ADJ_DIGVOL_EN
  591. #undef TINY_TRANSPARENCY_EN
  592. #define SYS_ADJ_DIGVOL_EN 1 //DAC固定模拟增益调数字增益
  593. #define TINY_TRANSPARENCY_EN 0 //开ANC不能打开小通透
  594. #if !(BT_A2DP_LHDC_AUDIO_EN || BT_A2DP_LDAC_AUDIO_EN)
  595. #undef DAC_OUT_SPR
  596. #define DAC_OUT_SPR DAC_OUT_48K
  597. #endif
  598. #endif
  599. #if TINY_TRANSPARENCY_EN
  600. #undef SYS_ADJ_DIGVOL_EN
  601. #define SYS_ADJ_DIGVOL_EN 1 //DAC固定模拟增益调数字增益
  602. #endif
  603. #if !ANC_EN
  604. #undef ANC_EQ_RES2_EN
  605. #undef ANC_MAX_VOL_DIS_FB_EN
  606. #define ANC_EQ_RES2_EN 0 //如果ANC关闭的情况下,不能开启优先使用资源2
  607. #define ANC_MAX_VOL_DIS_FB_EN 0
  608. #endif
  609. #if ANC_EQ_RES2_EN
  610. #undef FLASH_RESERVE_SIZE
  611. #define FLASH_RESERVE_SIZE 0x6000
  612. #endif
  613. #if ANC_ALG_EN
  614. #if ANC_ALG_HOWLING_FB_EN || \
  615. ANC_ALG_FIT_DETECT_FF_FB_EN || \
  616. ANC_ALG_HOWLING_FF_EN || \
  617. ANC_ALG_WIND_NOISE_FF_FB_EN || \
  618. ANC_ALG_LIMITER_FF_EN || \
  619. ANC_ALG_DUMP_EN || \
  620. ANC_ALG_MSC_ADP_FB_EN || \
  621. ANC_ALG_ADP_EQ_FF_FB_EN || \
  622. ANC_ALG_AEM_RT_FF_FB_EN
  623. #undef ANC_DS_DMA_EN
  624. #define ANC_DS_DMA_EN 1
  625. #endif
  626. #if ANC_ALG_AI_WN_FF_EN
  627. #define ANC_ALG_AI_NPU_EN 1
  628. #else
  629. #define ANC_ALG_AI_NPU_EN 0
  630. #endif
  631. #if ANC_ALG_STEREO_EN
  632. #undef SDADC_5CH_EN
  633. #define SDADC_5CH_EN 1
  634. #endif // ANC_ALG_STEREO_EN
  635. #else
  636. #undef ANC_ALG_WIND_NOISE_FF_TALK_EN
  637. #undef ANC_ALG_WIND_NOISE_FF_FB_EN
  638. #undef ANC_ALG_ASM_SIM_FF_EN
  639. #undef ANC_ALG_HOWLING_FB_EN
  640. #undef ANC_ALG_FIT_DETECT_FF_FB_EN
  641. #undef ANC_ALG_HOWLING_FF_EN
  642. #undef ANC_ALG_AI_WN_FF_EN
  643. #undef ANC_ALG_LIMITER_FF_EN
  644. #undef ANC_ALG_DYVOL_FF_EN
  645. #undef ANC_ALG_MSC_ADP_FB_EN
  646. #undef ANC_ALG_ADP_EQ_FF_FB_EN
  647. #undef ANC_ALG_ASM_FF_EN
  648. #undef ANC_ALG_AEM_RT_FF_FB_EN
  649. #undef ANC_SNDP_SAE_SHIELD_ADAPTER_EN
  650. #undef ANC_SNDP_SAE_WIND_DETECT_EN
  651. #undef ANC_ALG_USER_EN
  652. #undef ANC_ALG_DUMP_EN
  653. #undef ANC_ALG_DBG_EN
  654. #define ANC_ALG_WIND_NOISE_FF_TALK_EN 0
  655. #define ANC_ALG_WIND_NOISE_FF_FB_EN 0
  656. #define ANC_ALG_ASM_SIM_FF_EN 0
  657. #define ANC_ALG_HOWLING_FB_EN 0
  658. #define ANC_ALG_FIT_DETECT_FF_FB_EN 0
  659. #define ANC_ALG_HOWLING_FF_EN 0
  660. #define ANC_ALG_AI_WN_FF_EN 0
  661. #define ANC_ALG_LIMITER_FF_EN 0
  662. #define ANC_ALG_DYVOL_FF_EN 0
  663. #define ANC_ALG_MSC_ADP_FB_EN 0
  664. #define ANC_ALG_ADP_EQ_FF_FB_EN 0
  665. #define ANC_ALG_ASM_FF_EN 0
  666. #define ANC_ALG_AEM_RT_FF_FB_EN 0
  667. #define ANC_SNDP_SAE_SHIELD_ADAPTER_EN 0
  668. #define ANC_SNDP_SAE_WIND_DETECT_EN 0
  669. #define ANC_ALG_USER_EN 0
  670. #define ANC_ALG_DUMP_EN 0
  671. #define ANC_ALG_DBG_EN 0
  672. #endif // ANC_ALG_EN
  673. #if ANC_ALG_ADP_EQ_FF_FB_EN
  674. #undef DAC_EQ_AFTER_VOL_EN
  675. #define DAC_EQ_AFTER_VOL_EN 1
  676. #define ANC_ALG_ADP_EQ_NUM 1
  677. #else
  678. #define ANC_ALG_ADP_EQ_NUM 0
  679. #endif
  680. #if ANC_ALG_HOWLING_FB_EN && ANC_ALG_HOWLING_FF_EN
  681. #error "ANC ALG: please select only one howling algorithm in ANC_ALG_HOWLING_FB_EN and ANC_ALG_HOWLING_FF_EN"
  682. #endif
  683. #if (ANC_ALG_WIND_NOISE_FF_TALK_EN + ANC_ALG_AI_WN_FF_EN + ANC_ALG_WIND_NOISE_FF_FB_EN + ANC_ALG_AI_WN_DSP_FF_EN) > 1
  684. #error "ANC ALG: please select only one wind noise detect algorithm"
  685. #endif
  686. #if !ANC_ALG_DUMP_EN && ANC_ALG_DUMP_FOR_ANC_MODE
  687. #error "ANC ALG: please set the macro ANC_ALG_DUMP_EN"
  688. #endif
  689. #if ANC_TOOL_EN
  690. #undef ANC_DS_DMA_EN
  691. #define ANC_DS_DMA_EN 1
  692. #if !ANC_EN
  693. #error "ANC TOOL: please set the macro ANC_EN"
  694. #endif
  695. #if ANC_TOOL_SPP_EN && (!BT_SPP_EN)
  696. #error "ANC TOOL: please set the macro BT_SPP_EN"
  697. #endif
  698. #else
  699. #undef ANC_TOOL_SPP_EN
  700. #undef ANC_TOOL_LINK_FB_MSC_SIMU_EN
  701. #define ANC_TOOL_SPP_EN 1
  702. #define ANC_TOOL_LINK_FB_MSC_SIMU_EN 1
  703. #endif // ANC_TOOL_EN
  704. /*****************************************************************************
  705. * Module : uart0 printf 功能自动配置(自动关闭SD卡,USB)
  706. *****************************************************************************/
  707. #if (UART0_PRINTF_SEL == PRINTF_PB2)
  708. #if (SD0_MAPPING == SD0MAP_G2)
  709. #undef MUSIC_SDCARD_EN
  710. #define MUSIC_SDCARD_EN 0
  711. #endif
  712. #elif (UART0_PRINTF_SEL == PRINTF_PA7)
  713. #if (SD0_MAPPING == SD0MAP_G1)
  714. #undef MUSIC_SDCARD_EN
  715. #define MUSIC_SDCARD_EN 0
  716. #endif
  717. #elif (UART0_PRINTF_SEL == PRINTF_PB3)
  718. #undef FUNC_USBDEV_EN
  719. #undef MUSIC_UDISK_EN
  720. #define FUNC_USBDEV_EN 0
  721. #define MUSIC_UDISK_EN 0
  722. #elif (UART0_PRINTF_SEL == PRINTF_PE13)
  723. #if (SD0_MAPPING == SD0MAP_G4)
  724. #undef MUSIC_SDCARD_EN
  725. #define MUSIC_SDCARD_EN 0
  726. #endif
  727. #elif (UART0_PRINTF_SEL == PRINTF_NONE)
  728. //关闭所以打印信息
  729. #undef printf
  730. #undef vprintf
  731. #undef print_r
  732. #undef print_r16
  733. #undef print_r32
  734. #undef printk
  735. #undef vprintk
  736. #undef print_kr
  737. #undef print_kr16
  738. #undef print_kr32
  739. #define printf(...)
  740. #define vprintf(...)
  741. #define print_r(...)
  742. #define print_r16(...)
  743. #define print_r32(...)
  744. #define printk(...)
  745. #define vprintk(...)
  746. #define print_kr(...)
  747. #define print_kr16(...)
  748. #define print_kr32(...)
  749. #endif
  750. #if !MUSIC_SDCARD_EN
  751. #undef SD_DETECT_INIT
  752. #undef SD_IS_ONLINE
  753. #undef SD_DETECT_IS_BUSY
  754. #define SD_DETECT_INIT()
  755. #define SD_IS_ONLINE() 0
  756. #define SD_DETECT_IS_BUSY() 0
  757. #endif
  758. /*****************************************************************************
  759. * Module : usb device 功能配置
  760. *****************************************************************************/
  761. #if !FUNC_USBDEV_EN
  762. #undef UDE_STORAGE_EN
  763. #undef UDE_SPEAKER_EN
  764. #undef UDE_HID_EN
  765. #undef UDE_MIC_EN
  766. #undef UDE_ENUM_TYPE
  767. #define UDE_STORAGE_EN 0
  768. #define UDE_SPEAKER_EN 0
  769. #define UDE_HID_EN 0
  770. #define UDE_MIC_EN 0
  771. #define UDE_ENUM_TYPE 0
  772. #else
  773. #define UDE_ENUM_TYPE (UDE_STORAGE_EN*0x01 + UDE_SPEAKER_EN*0x02 + UDE_HID_EN*0x04 + UDE_MIC_EN*0x08)
  774. #endif
  775. /*****************************************************************************
  776. * Module : iis 功能配置
  777. *****************************************************************************/
  778. #if I2S_EN
  779. #if I2S_MODE_SEL
  780. #undef I2S_DMA_EN
  781. #define I2S_DMA_EN 1 //slave模式必须打开DMA功能
  782. #endif
  783. #endif // I2S_EN
  784. #if !IIS_EN
  785. #undef IIS_RX2SCO_EN
  786. #define IIS_RX2SCO_EN 0
  787. #endif
  788. /*****************************************************************************
  789. * Module : 提示音配置
  790. *****************************************************************************/
  791. #if (!WARNING_TONE_EN)
  792. #undef WARNING_POWER_ON
  793. #undef WARNING_POWER_OFF
  794. #undef WARNING_FUNC_MUSIC
  795. #undef WARNING_FUNC_BT
  796. #undef WARNING_FUNC_CLOCK
  797. #undef WARNING_FUNC_FMRX
  798. #undef WARNING_FUNC_AUX
  799. #undef WARNING_FUNC_USBDEV
  800. #undef WARNING_FUNC_SPEAKER
  801. #undef WARNING_LOW_BATTERY
  802. #undef WARNING_BT_CONNECT
  803. #undef WARNING_BT_DISCONNECT
  804. #undef WARNING_BT_INCALL
  805. #undef WARNING_USB_SD
  806. #undef WARNING_BT_HID_MENU
  807. #undef WARNING_BTHID_CONN
  808. #undef WARNING_MAX_VOLUME
  809. #undef WARNING_BT_PAIR
  810. #define WARNING_POWER_ON 0
  811. #define WARNING_POWER_OFF 0
  812. #define WARNING_FUNC_MUSIC 0
  813. #define WARNING_FUNC_BT 0
  814. #define WARNING_FUNC_CLOCK 0
  815. #define WARNING_FUNC_FMRX 0
  816. #define WARNING_FUNC_AUX 0
  817. #define WARNING_FUNC_USBDEV 0
  818. #define WARNING_FUNC_SPEAKER 0
  819. #define WARNING_LOW_BATTERY 0
  820. #define WARNING_BT_CONNECT 0
  821. #define WARNING_BT_DISCONNECT 0
  822. #define WARNING_BT_INCALL 0
  823. #define WARNING_USB_SD 0
  824. #define WARNING_BT_HID_MENU 0
  825. #define WARNING_BTHID_CONN 0
  826. #define WARNING_MAX_VOLUME 0
  827. #define WARNING_BT_PAIR 0
  828. #endif
  829. #if ((!MUSIC_UDISK_EN) && (!MUSIC_SDCARD_EN))
  830. #undef USB_SD_UPDATE_EN
  831. #define USB_SD_UPDATE_EN 0
  832. #endif
  833. #if SD_USB_MUX_IO_EN == 1
  834. #undef FUNC_USBDEV_EN
  835. #define FUNC_USBDEV_EN 0
  836. #endif
  837. #ifndef UPD_FILENAME
  838. #define UPD_FILENAME "fw5000.upd"
  839. #endif
  840. #if ((SD0_MAPPING == SD0MAP_G1) || (SD0_MAPPING == SD0MAP_G4) || (SD0_MAPPING == SD0MAP_G5) || (SD0_MAPPING == SD0MAP_G6))
  841. #define SDCLK_AD_CH ADCCH_PA6
  842. #elif (SD0_MAPPING == SD0MAP_G2)
  843. #define SDCLK_AD_CH ADCCH_PB1
  844. #else
  845. #define SDCLK_AD_CH ADCCH_PE6
  846. #endif
  847. #define USB_SUPPORT_EN (MUSIC_UDISK_EN | FUNC_USBDEV_EN)
  848. #define SD_SUPPORT_EN (MUSIC_SDCARD_EN)
  849. #if MUSIC_SDCARD_EN
  850. #define SDCMD_MUX_DETECT_EN 1
  851. #define SDCLK_MUX_DETECT_EN 1
  852. #else
  853. #undef USER_ADKEY_MUX_SDCLK
  854. #undef I2C_MUX_SD_EN
  855. #define I2C_MUX_SD_EN 0
  856. #define SDCMD_MUX_DETECT_EN 0
  857. #define SDCLK_MUX_DETECT_EN 0
  858. #define USER_ADKEY_MUX_SDCLK 0
  859. #endif // MUSIC_SDCARD_EN
  860. #if !SD_SUPPORT_EN
  861. #undef UDE_STORAGE_EN
  862. #define UDE_STORAGE_EN 0
  863. #undef SD_SOFT_DETECT_EN
  864. #define SD_SOFT_DETECT_EN 0
  865. #endif
  866. /*****************************************************************************
  867. * Module : 有冲突或功能上不能同时打开的宏
  868. *****************************************************************************/
  869. #if (SYS_KARAOK_EN && BT_BACKSTAGE_EN)
  870. #error "SYS_KARAOK_EN and BT_BACKSTAGE_EN (include BT_APP_EN) can't open at sametime"
  871. #endif
  872. #define DAC_EQ_NUM_TOTAL (DAC_PT_NUM + EQ_APP_NUM + BT_MUSIC_EFFECT_DBB_BAND_CNT + ANC_ALG_ADP_EQ_NUM)
  873. #if (DAC_EQ_NUM_TOTAL > 20)
  874. #error "error: (DAC_PT_NUM + EQ_APP_NUM + BT_MUSIC_EFFECT_DBB_BAND_CNT) > 20"
  875. #endif
  876. #if ANC_ALG_AI_NPU_EN && (BT_MUSIC_EFFECT_SPATIAL_AU_EN || BT_MUSIC_EFFECT_USER_EN || BT_MUSIC_EFFECT_VBASS_EN ||BT_MUSIC_EFFECT_DYEQ_EN || BT_MUSIC_EFFECT_XDRC_EN)
  877. #error "Algorithm RAM exist conflict. Please close ANC AI algorithm or music effect algorithm."
  878. #endif
  879. /*****************************************************************************
  880. * Module : 计算FunctionKey
  881. *****************************************************************************/
  882. #if BT_TWS_EN
  883. #define FUNCKEY_TWS 0xe0938553
  884. #else
  885. #define FUNCKEY_TWS 0
  886. #endif
  887. #if BT_SNDP_SMIC_AI_EN || BT_SNDP_DM_AI_EN || BT_SNDP_FBDM_EN
  888. #define FUNCKEY_SNDP 0xf3c19711
  889. #else
  890. #define FUNCKEY_SNDP 0
  891. #endif
  892. #if BT_A2DP_LHDC_AUDIO_EN || BT_A2DP_LDAC_AUDIO_EN
  893. #define FUNCKEY_LHDC 0xf8789d28
  894. #else
  895. #define FUNCKEY_LHDC 0
  896. #endif
  897. #endif // __CONFIG_EXTRA_H__