strong_sco.c 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. /**********************************************************************
  2. *
  3. * strong_sco.c
  4. * 定义库里面通话算法部分WEAK函数的Strong函数,动态关闭库代码
  5. ***********************************************************************/
  6. #include "include.h"
  7. /*****************************************************************************
  8. * Module : AEC算法强定义
  9. *****************************************************************************/
  10. #if !BT_AEC_EN
  11. AT(.com_text.isr.aec)
  12. bool aec_isr(void) { return false; }
  13. AT(.com_text.aec_det)
  14. void aec_far_detect(void) {}
  15. AT(.bt_voice.aec)
  16. void aec_nlms_process(u8 mic_sel) {}
  17. AT(.bt_voice.aec)
  18. void aec_nlp_process(void) {}
  19. void aec_init(void) {}
  20. void aec_exit(void) {}
  21. #endif
  22. #if !BT_ALC_EN
  23. void alc_init(void) {}
  24. void alc_process(void) {}
  25. void alc_fade_in(s16 *buf) {}
  26. void alc_fade_out(s16 *buf) {}
  27. AT(.bt_voice.alc)
  28. bool alc_isr(void) { return false; }
  29. AT(.bt_voice.alc)
  30. void bt_alc_process(u8 *ptr, u32 samples, int ch_mode) {};
  31. #endif
  32. /*****************************************************************************
  33. * Module : 通话其他部分强定义
  34. *****************************************************************************/
  35. #if !BT_SCO_DUMP_EN && !BT_AEC_DUMP_EN && !BT_SCO_FAR_DUMP_EN && !BT_EQ_DUMP_EN
  36. void sco_huart_init(void){}
  37. bool sco_huart_putcs(u8 type, u8 frame_num, const void *buf, uint len){return 0;}
  38. AT(.com_huart.text)
  39. void sco_huart_tx_done(void){}
  40. AT(.bt_voice.sco.dump)
  41. void bt_sco_dump_cb(uint type, void *ptr, uint size) {}
  42. #endif
  43. #if !SDADC_SOFT_GAIN_EN
  44. AT(.com_text.sdadc.soft_gain)
  45. void sdadc_drc_soft_gain_proc(s16 *ptr, u32 samples, int ch_mode) {}
  46. AT(.com_text.sdadc.soft_gain.proc)
  47. bool sdadc_soft_gain_proc(s16 *ptr, u32 samples, int ch_mode){return false;}
  48. bool sdadc_drc_init(u8 *drc_addr, int drc_len){return false;}
  49. void sdadc_set_soft_gain(u16 ch, u32 gain) {}
  50. #else
  51. void sdadc_set_digital_gain(u16 ch, u16 gain) {}
  52. #endif
  53. #if !SDADC_EQ_EN
  54. AT(.com_text.sdadc.soft_eq)
  55. void sdadc_soft_eq_proc(s16 *ptr, u32 samples, int ch_mode) {}
  56. bool sdadcl_set_soft_eq_by_res(u32 addr, u32 len){return false;}
  57. bool sdadcr_set_soft_eq_by_res(u32 addr, u32 len){return false;}
  58. #endif
  59. #if !SDADC_DRC_EN
  60. bool sdadc_drc_v3_init(u8 *drc_addr, int drc_len){return false;}
  61. AT(.com_text.sdadc.drc_v3)
  62. bool sdadc_drc_v3_calc(s16 *ptr, u32 samples, int ch_mode){return false;}
  63. #endif
  64. /*****************************************************************************
  65. * Module : 通话上行降噪算法强定义
  66. *****************************************************************************/
  67. #if !BT_TRUMPET_NR_EN
  68. void trumpet_denoise_init(u8 level) {}
  69. void trumpet_denoise(int *fft_in) {}
  70. AT(.bt_voice.sco.trumpet)
  71. void bt_sco_trumpet_nr(s32 *fft_in) {}
  72. #endif
  73. #if !BT_SCO_AGC_EN
  74. void bt_sco_agc_proc(s16 *buf) {}
  75. void bt_agc_init(void) {}
  76. void agc_init(agc_cb_t* agc_cb) {}
  77. void agc_proc(s16 *input, s16 *output, s32 pcmLen) {}
  78. void bt_sco_agc_proc_do(s16 *ptr, int samples) {}
  79. #endif
  80. #if !BT_SNDP_SMIC_AI_EN
  81. void bt_sndp_sm_init(void *alg_cb) {}
  82. void sndp_sm_process(void) {}
  83. void bt_sndp_sm_exit(void) {}
  84. #endif
  85. //#if !BT_SNDP_DMIC_EN && !BT_SNDP_DMIC_DNN_EN
  86. //void bt_sndp_dm_proc_do(void) {}
  87. //void bt_sndp_dm_process(s16 *buf) {}
  88. //void bt_sndp_dmic_init(void) {}
  89. //void bt_sndp_dmic_exit(void) {}
  90. //#endif
  91. #if !BT_SCO_SMIC_AI_EN && !BT_SCO_DMIC_AI_EN && !BT_SCO_LDMIC_AI_EN && !BT_SCO_ASM_DNN_EN && !BT_SCO_AIAEC_DNN_EN && !BT_SCO_SMIC_AI_PRO_EN
  92. AT(.bt_voice.sco)
  93. bool bt_sco_dnn_en(void) {return 0;}
  94. void dnn_far_upsample(s16 *out, s16 *in, u32 samples, u8 step) {}
  95. #endif
  96. #if !BT_SCO_SMIC_AI_EN
  97. void bt_dnn_init(void *alg_cb) {}
  98. void dnn_sm_process(void) {}
  99. void bt_dnn_exit(void) {}
  100. #endif
  101. #if !BT_SCO_SMIC_AI_PRO_EN
  102. void bt_dnn_pro_init(void *alg_cb) {}
  103. void dnn_pro_sm_process(void) {}
  104. void bt_dnn_pro_exit(void) {}
  105. #endif
  106. #if !BT_SCO_AIAEC_DNN_EN
  107. void bt_aiaec_dnn_init(void *alg_cb) {}
  108. void aiaec_dnn_sm_process(void) {}
  109. void bt_aiaec_dnn_exit(void) {}
  110. void pink_noise_proc(s16 *pink_buf, s16 *mic_in) {}
  111. void aiaec_pink_generation_init(s32 plfsr_val) {}
  112. s16 pink_gen_buf[0] AT(.aiaec_dnn_buf.sta);
  113. #endif
  114. #if !BT_SCO_DMIC_AI_EN
  115. void bt_dmns_init(void *alg_cb) {}
  116. void dnn_dm_process(void) {}
  117. void bt_dmns_exit(void) {}
  118. #endif
  119. #if !BT_SCO_LDMIC_AI_EN
  120. void bt_ldmdnn_init(void *alg_cb) {}
  121. void ldmdnn_process(void) {}
  122. void bt_ldmdnn_exit(void) {}
  123. #endif
  124. #if !BT_SCO_NR_USER_SMIC_EN && !BT_SCO_NR_USER_DMIC_EN
  125. void bt_nr_user_proc_do(s16 *mic1, s16 *mic2, nr_cb_t *nr_cb) {}
  126. void bt_nr_user_init(void *alg_cb, nr_cb_t *nr_cb) {}
  127. #endif
  128. #if !BT_SCO_AEC_USER_EN
  129. AT(.bt_voice.soc_nr.far)
  130. void bt_sco_far_get(s16 *buf) {}
  131. void bt_sco_far_cache_init(void) {}
  132. #endif
  133. #if !BT_SCO_NR_EN
  134. void bt_ains_init(void *alg_cb) {}
  135. void ains_sm_process(void) {}
  136. void bt_ains_exit(void) {}
  137. #endif
  138. #if !BT_SNDP_FBDM_EN
  139. void bt_sndp_fbdm_init(void *alg_cb) {}
  140. void alg_sndp_fbdm_process(void) {}
  141. void bt_sndp_fbdm_exit(void) {}
  142. #endif
  143. #if !BT_SNDP_DM_AI_EN
  144. void bt_sndp_dm_init(void *alg_cb) {}
  145. void alg_sndp_dm_process(void) {}
  146. void bt_sndp_dm_exit(void) {}
  147. s32 bt_sndp_dm_process(s32 *efw0, s32 *efw1, s32 *xfw, s16 *hnl, u32 *aeccon2){return 0;}
  148. #endif
  149. /*****************************************************************************
  150. * Module : 通话下行降噪算法强定义
  151. *****************************************************************************/
  152. #if !BT_SCO_FAR_NR_EN
  153. AT(.com_text.isr.peri_nr)
  154. void peri_nr_isr(void) {}
  155. AT(.bt_voice.peri_nr)
  156. void bt_sco_far_peri_nr_process(s16 *ptr, u16 samples) {}
  157. void bt_sco_far_nr_int(void *cfg) {}
  158. void bt_peri_nr_exit(void) {}
  159. void bt_peri_nr_init(void) {}
  160. #endif
  161. #if !BT_SCO_CALLING_NR_EN
  162. AT(.bt_voice.sco)
  163. u16 dnr_voice_maxpow_calling(u32 *ptr, u16 len){return 0;}
  164. #endif
  165. #if !BT_SCO_DAC_DRC_EN
  166. bool bt_sco_dac_drc_init(u8 *drc_addr, int drc_len) {return false;}
  167. AT(.bt_voice.dac.drc)
  168. s16 bt_sco_dac_drc_calc(s32 data) {return 0;}
  169. AT(.bt_voice.dac.drc)
  170. void bt_sco_dac_drc_proc(s16 *ptr, u32 samples) {}
  171. #endif
  172. #if !BT_SCO_DAC_DNR_EN
  173. AT(.bt_voice.dac.dnr)
  174. void bt_sco_dac_dnr_proc(s16 *ptr, u32 samples, int dnr_thr) {}
  175. #endif