AC63_BT_SDK/cpu/br34/audio_config.h
2025-02-18 15:40:42 +08:00

137 lines
4.8 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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_*/