132 lines
4.7 KiB
C
132 lines
4.7 KiB
C
#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
|
||
|
||
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_*/
|