#ifndef _APP_AUDIO_H_ #define _APP_AUDIO_H_ #include "generic/typedef.h" #include "board_config.h" #if BT_SUPPORT_MUSIC_VOL_SYNC #define TCFG_MAX_VOL_PROMPT 0 #else #define TCFG_MAX_VOL_PROMPT 1 #endif /* *该配置适用于没有音量按键的产品,防止打开音量同步之后 *连接支持音量同步的设备,将音量调小过后,连接不支持音 *量同步的设备,音量没有恢复,导致音量小的问题 *默认是没有音量同步的,将音量设置到最大值,可以在vol_sync.c *该宏里面修改相应的设置。 */ #define TCFG_VOL_RESET_WHEN_NO_SUPPORT_VOL_SYNC 0 //不支持音量同步的设备默认最大音量 #define MC_BIAS_ADJUST_DISABLE 0 //省电容mic偏置校准关闭 #define MC_BIAS_ADJUST_ONE 1 //省电容mic偏置只校准一次(跟dac trim一样) #define MC_BIAS_ADJUST_POWER_ON 2 //省电容mic偏置每次上电复位都校准(Power_On_Reset) #define MC_BIAS_ADJUST_ALWAYS 3 //省电容mic偏置每次开机都校准(包括上电复位和其他复位) /* *省电容mic偏置电压自动调整(因为校准需要时间,所以有不同的方式) *1、烧完程序(完全更新,包括配置区)开机校准一次 *2、上电复位的时候都校准,即断电重新上电就会校准是否有偏差(默认) *3、每次开机都校准,不管有没有断过电,即校准流程每次都跑 */ #define TCFG_MC_BIAS_AUTO_ADJUST MC_BIAS_ADJUST_POWER_ON #define TCFG_MC_CONVERGE_TRACE 0 //省电容mic收敛值跟踪 /* *省电容mic收敛步进限制 *0:自适应步进调整, >0:收敛步进最大值 *注:当mic的模拟增益或者数字增益很大的时候,mic_capless模式收敛过程, *变化的电压放大后,可能会听到哒哒声,这个时候就可以限制住这个收敛步进 *让收敛平缓进行(前提是预收敛成功的情况下) */ #define TCFG_MC_DTB_STEP_LIMIT 15 //最大收敛步进值 /* *省电容mic使用固定收敛值 *可以用来测试默认偏置是否合理:设置固定收敛值7000左右,让mic的偏置维持在1.5v左右即为合理 *正常使用应该设置为0,让程序动态收敛 */ #define TCFG_MC_DTB_FIXED 0 #define TCFG_AEC_SIMPLEX 0 //通话单工模式配置 #define TCFG_ESCO_PLC 1 //通话丢包修复 #define TCFG_DIG_PHASE_INVERTER_EN 1 //数字反相器,用来矫正DAC的输出相位 #define MAX_ANA_VOL (10) //系统最大模拟音量 #define MAX_COM_VOL (16) // 具体数值应小于联合音量等级的数组大小 (combined_vol_list) #define MAX_DIG_VOL (16) #if (SYS_VOL_TYPE == VOL_TYPE_DIGITAL) #define SYS_MAX_VOL 16 #define SYS_DEFAULT_VOL 16 #define SYS_DEFAULT_TONE_VOL 10 #define SYS_DEFAULT_SIN_VOL 8 #elif (SYS_VOL_TYPE == VOL_TYPE_DIGITAL_HW) #define SYS_MAX_VOL MAX_DIG_VOL #define SYS_DEFAULT_VOL SYS_MAX_VOL #define SYS_DEFAULT_TONE_VOL 10 #define SYS_DEFAULT_SIN_VOL 8 #elif (SYS_VOL_TYPE == VOL_TYPE_ANALOG) #define SYS_MAX_VOL MAX_ANA_VOL #define SYS_DEFAULT_VOL SYS_MAX_VOL #define SYS_DEFAULT_TONE_VOL 10 #define SYS_DEFAULT_SIN_VOL 8 #elif (SYS_VOL_TYPE == VOL_TYPE_AD) #define SYS_MAX_VOL MAX_COM_VOL #define SYS_DEFAULT_VOL SYS_MAX_VOL #define SYS_DEFAULT_TONE_VOL 14 #define SYS_DEFAULT_SIN_VOL 8 #else #error "SYS_VOL_TYPE define error" #endif /* *audio state define */ #define APP_AUDIO_STATE_IDLE 0 #define APP_AUDIO_STATE_MUSIC 1 #define APP_AUDIO_STATE_CALL 2 #define APP_AUDIO_STATE_WTONE 3 #define APP_AUDIO_CURRENT_STATE 4 #define TONE_WAV_MIX_EN BIT(0) #define TONE_WTG_MIX_EN BIT(1) #define TONE_MP3_MIX_EN BIT(2) u8 get_max_sys_vol(void); u8 get_tone_vol(void); s8 app_audio_get_volume(u8 state); void app_audio_set_volume(u8 state, s8 volume, u8 fade); void app_audio_volume_up(u8 value); void app_audio_volume_down(u8 value); void app_audio_state_switch(u8 state, s16 max_volume); void app_audio_mute(u8 value); s16 app_audio_get_max_volume(void); void app_audio_state_switch(u8 state, s16 max_volume); void app_audio_state_exit(u8 state); u8 app_audio_get_state(void); void volume_up_down_direct(s8 value); void app_audio_set_mix_volume(u8 front_volume, u8 back_volume); void app_audio_set_digital_volume(s16 volume); void app_set_sys_vol(s16 vol_l, s16 vol_r); void app_set_max_vol(s16 vol); void audio_combined_vol_init(u8 cfg_en); void audio_volume_list_init(u8 cfg_en); u32 phone_call_eq_open(); int eq_mode_sw(); int mic_test_start(); int mic_test_stop(); void dac_power_on(void); void dac_power_off(void); void mc_trim_init(int update); void mic_trim_run(); /*打印audio模块的数字模拟增益:DAC/ADC*/ void audio_gain_dump(); void audio_adda_dump(void); //打印所有的dac,adc寄存器 #endif/*_APP_AUDIO_H_*/