190 lines
4.7 KiB
C
190 lines
4.7 KiB
C
|
|
#ifndef __ICSD_ADT_APP_H_
|
|||
|
|
#define __ICSD_ADT_APP_H_
|
|||
|
|
|
|||
|
|
#include "typedef.h"
|
|||
|
|
#include "icsd_anc_user.h"
|
|||
|
|
// #include "icsd_adt_client_board.h"
|
|||
|
|
|
|||
|
|
#define SPEAK_TO_CHAT_TASK_NAME "speak_to_chat"
|
|||
|
|
|
|||
|
|
/*智能免摘检测到声音和退出通透是否播放提示音*/
|
|||
|
|
#define SPEAK_TO_CHAT_PLAY_TONE_EN 1
|
|||
|
|
|
|||
|
|
/*智能免摘每次检测到声音的测试提示音*/
|
|||
|
|
#define SPEAK_TO_CHAT_TEST_TONE_EN 0
|
|||
|
|
|
|||
|
|
/* 通过蓝牙spp发送风噪信息
|
|||
|
|
* 需要同时打开USER_SUPPORT_PROFILE_SPP和APP_ONLINE_DEBUG*/
|
|||
|
|
#define ICSD_ADT_WIND_INFO_SPP_DEBUG_EN 0
|
|||
|
|
|
|||
|
|
enum {
|
|||
|
|
AUDIO_ADT_CLOSE = 0, //关闭关闭
|
|||
|
|
AUDIO_ADT_OPEN, //打开状态
|
|||
|
|
AUDIO_ADT_CHAT, //免摘状态
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum {
|
|||
|
|
ANC_WIND_NOISE_LVL0 = 1,
|
|||
|
|
ANC_WIND_NOISE_LVL1,
|
|||
|
|
ANC_WIND_NOISE_LVL2,
|
|||
|
|
ANC_WIND_NOISE_LVL3,
|
|||
|
|
ANC_WIND_NOISE_LVL4,
|
|||
|
|
ANC_WIND_NOISE_LVL5,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum {
|
|||
|
|
WIND_AREA_TAP_DOUBLE_CLICK = 2, //双击
|
|||
|
|
WIND_AREA_TAP_THIRD_CLICK, //三击
|
|||
|
|
WIND_AREA_TAP_MULTIPLE_CLICK, //大于3次多次连击
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum {
|
|||
|
|
ADT_MODE_CLOSE = 0,
|
|||
|
|
ADT_SPEAK_TO_CHAT_MODE = BIT(0), //智能免摘
|
|||
|
|
ADT_WIND_NOISE_DET_MODE = BIT(1),//风噪检测
|
|||
|
|
ADT_WIDE_AREA_TAP_MODE = BIT(2), //广域点击
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum {
|
|||
|
|
/*任务消息*/
|
|||
|
|
ICSD_ADT_VOICE_STATE = 1,
|
|||
|
|
ICSD_ADT_WIND_LVL,
|
|||
|
|
ICSD_ADT_WAT_RESULT,
|
|||
|
|
ICSD_ADT_TONE_PLAY,
|
|||
|
|
SPEAK_TO_CHAT_TASK_KILL,
|
|||
|
|
ICSD_ANC_MODE_SWITCH,
|
|||
|
|
ICSD_ADT_STATE_SYNC,
|
|||
|
|
|
|||
|
|
/*对耳信息同步*/
|
|||
|
|
SYNC_ICSD_ADT_VOICE_STATE,
|
|||
|
|
SYNC_ICSD_ADT_WIND_LVL_CMP,
|
|||
|
|
SYNC_ICSD_ADT_WAT_RESULT,
|
|||
|
|
SYNC_ICSD_ADT_WIND_LVL_RESULT,
|
|||
|
|
SYNC_ICSD_ADT_SUSPEND,
|
|||
|
|
SYNC_ICSD_ADT_OPEN,
|
|||
|
|
SYNC_ICSD_ADT_CLOSE,
|
|||
|
|
SYNC_ICSD_ADT_SET_ANC_FADE_GAIN,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/*打开智能免摘*/
|
|||
|
|
int audio_speak_to_chat_open();
|
|||
|
|
|
|||
|
|
/*关闭智能免摘*/
|
|||
|
|
int audio_speak_to_chat_close();
|
|||
|
|
|
|||
|
|
void audio_speak_to_chat_demo();
|
|||
|
|
|
|||
|
|
/*设置免摘定时结束的时间,单位ms*/
|
|||
|
|
int audio_speak_to_char_end_time_set(u16 time);
|
|||
|
|
|
|||
|
|
/*设置智能免摘检测的灵敏度*/
|
|||
|
|
int audio_speak_to_chat_sensitivity_set(u8 sensitivity);
|
|||
|
|
|
|||
|
|
/*获取是否需要先开anc再开免摘的状态*/
|
|||
|
|
u8 get_adt_open_in_anc_state();
|
|||
|
|
|
|||
|
|
void audio_anc_mode_switch_in_adt(u8 anc_mode);
|
|||
|
|
|
|||
|
|
/*打开声音检测*/
|
|||
|
|
int audio_acoustic_detector_open();
|
|||
|
|
|
|||
|
|
/*关闭声音检测*/
|
|||
|
|
int audio_acoustic_detector_close();
|
|||
|
|
|
|||
|
|
int audio_speak_to_chat_open_in_anc_done();
|
|||
|
|
|
|||
|
|
void audio_icsd_adt_resume();
|
|||
|
|
void audio_icsd_adt_suspend();
|
|||
|
|
/*char 定时结束后从通透同步恢复anc on /anc off*/
|
|||
|
|
void audio_speak_to_char_suspend(void);
|
|||
|
|
void audio_speak_to_char_sync_suspend(void);
|
|||
|
|
|
|||
|
|
/*获取智能免摘是否打开*/
|
|||
|
|
u8 audio_speak_to_chat_is_running();
|
|||
|
|
|
|||
|
|
/*获取智能免摘状态*/
|
|||
|
|
u8 get_speak_to_chat_state();
|
|||
|
|
|
|||
|
|
/*获取adt的模式*/
|
|||
|
|
u8 get_icsd_adt_mode();
|
|||
|
|
|
|||
|
|
/*同步tws配对时,同步adt的状态*/
|
|||
|
|
void audio_anc_icsd_adt_state_sync(u8 *data);
|
|||
|
|
void audio_icsd_adt_state_sync_done(u8 adt_mode, u8 speak_to_chat_state);
|
|||
|
|
|
|||
|
|
/*检测到讲话状态同步*/
|
|||
|
|
void set_speak_to_chat_voice_state(u8 state);
|
|||
|
|
void audio_speak_to_chat_voice_state_sync(void);
|
|||
|
|
|
|||
|
|
int anc_adt_init();
|
|||
|
|
|
|||
|
|
int audio_icsd_adt_open(u8 adt_mode);
|
|||
|
|
int audio_icsd_adt_sync_open(u8 adt_mode);
|
|||
|
|
/*打开所有模块*/
|
|||
|
|
int audio_icsd_adt_open_all();
|
|||
|
|
|
|||
|
|
int audio_icsd_adt_sync_close(u8 adt_mode);
|
|||
|
|
int audio_icsd_adt_close(u8 adt_mode);
|
|||
|
|
int audio_icsd_adt_res_close(u8 adt_mode);
|
|||
|
|
/*关闭所有模块*/
|
|||
|
|
int audio_icsd_adt_close_all();
|
|||
|
|
|
|||
|
|
u8 audio_icsd_adt_is_running();
|
|||
|
|
|
|||
|
|
/*打开广域点击*/
|
|||
|
|
int audio_wat_click_open();
|
|||
|
|
|
|||
|
|
/*关闭广域点击*/
|
|||
|
|
int audio_wat_click_close();
|
|||
|
|
|
|||
|
|
/*设置是否忽略广域点击
|
|||
|
|
* ingore: 1 忽略点击,0 响应点击
|
|||
|
|
* 忽略点击的时间,单位ms*/
|
|||
|
|
int audio_wide_area_tap_ignore_flag_set(u8 ignore, u16 time);
|
|||
|
|
|
|||
|
|
/*广域点击开关demo*/
|
|||
|
|
void audio_wat_click_demo();
|
|||
|
|
|
|||
|
|
/*广域点击事件处理*/
|
|||
|
|
void audio_wat_area_tap_event_handle(u8 wat_result);
|
|||
|
|
|
|||
|
|
/*打开风噪检测*/
|
|||
|
|
int audio_icsd_wind_detect_open();
|
|||
|
|
|
|||
|
|
/*关闭风噪检测*/
|
|||
|
|
int audio_icsd_wind_detect_close();
|
|||
|
|
|
|||
|
|
/*获取风噪等级*/
|
|||
|
|
u8 get_audio_icsd_wind_lvl();
|
|||
|
|
|
|||
|
|
/*风噪检测开关demo*/
|
|||
|
|
void audio_icsd_wind_detect_demo();
|
|||
|
|
|
|||
|
|
/*风噪检测处理*/
|
|||
|
|
void audio_anc_wind_noise_process(u8 wind_lvl);
|
|||
|
|
|
|||
|
|
/*参数更新接口*/
|
|||
|
|
int audio_acoustic_detector_updata();
|
|||
|
|
void set_icsd_adt_param_updata();
|
|||
|
|
|
|||
|
|
/*获取免摘需要多少个mic*/
|
|||
|
|
u8 get_icsd_adt_mic_num();
|
|||
|
|
|
|||
|
|
extern void set_anc_adt_state(u8 state);
|
|||
|
|
extern void *get_anc_lfb_coeff();
|
|||
|
|
extern void *get_anc_lff_coeff();
|
|||
|
|
extern void *get_anc_ltrans_coeff();
|
|||
|
|
extern void *get_anc_ltrans_fb_coeff();
|
|||
|
|
extern float get_anc_gains_l_fbgain();
|
|||
|
|
extern float get_anc_gains_l_ffgain();
|
|||
|
|
extern float get_anc_gains_l_transgain();
|
|||
|
|
extern float get_anc_gains_lfb_transgain();
|
|||
|
|
extern u8 get_anc_l_fbyorder();
|
|||
|
|
extern u8 get_anc_l_ffyorder();
|
|||
|
|
extern u8 get_anc_l_transyorder();
|
|||
|
|
extern u8 get_anc_lfb_transyorder();
|
|||
|
|
extern u32 get_anc_gains_alogm();
|
|||
|
|
extern u32 get_anc_gains_trans_alogm();
|
|||
|
|
|
|||
|
|
#endif
|