#ifndef _AUDIO_HOWLING_API_H #define _AUDIO_HOWLING_API_H #include "media/howling_api.h" #define TRAP_MODE 0 #define SHIFT_PITCH_MODE 1 #define PEMAFROW_MODE 2 #define SHIFT_PHASE_MODE 3 #define HOWLING_MODE SHIFT_PITCH_MODE #if (HOWLING_MODE == TRAP_MODE) #define REVERB_RUN_POINT_NUM 160 //固定160个点 #elif (HOWLING_MODE == SHIFT_PHASE_MODE) // #define REVERB_RUN_POINT_NUM 256 //固定256个点 #elif (HOWLING_MODE == PEMAFROW_MODE) #define REVERB_RUN_POINT_NUM 128 //固定128 #else #define REVERB_RUN_POINT_NUM 0 //无限制 #endif /*----------------------------------------------------------------------------*/ /**@brief 啸叫抑制模块打开 @param howl_para:陷波模式时为啸叫抑制参数 ,pemafrow模式为DAC输出数据buf,; sample_rate:输入数据采样率; channels: 输入数据通道数; mode: 0 陷波模式;1 移频模式 2 pemafrow模式 @return 啸叫抑制句柄, @note 陷波模式 要外部保证每次运算数据为160点,pemafrow 为128个点 对应模式需外部使能,默认只开 移频模式 const int config_howling_enable_pemafrow_mode = 1; const int config_howling_enable_trap_mode = 1; const int config_howling_enable_pitchps_mode = 1; */ /*----------------------------------------------------------------------------*/ HOWLING_API_STRUCT *open_howling(void *howl_para, u16 sample_rate, u8 channel, u8 mode); /* * 啸叫抑制模块数据处理 */ void run_howling(HOWLING_API_STRUCT *howling_hdl, short *in, short *out, int len); /* * 啸叫抑制模块关闭 */ void close_howling(HOWLING_API_STRUCT *holing_hdl); /* * 啸叫抑制模块暂停处理 */ void pause_howling(HOWLING_API_STRUCT *holing_hdl, u8 run_mark); void howling_update_bypass(HOWLING_API_STRUCT *hdl, u8 bypass); void update_howling_parm(HOWLING_API_STRUCT *howling_hdl, void *parm); #endif