KT25-0812_82A-UART/cpu/br25/audio_config.h

147 lines
5.2 KiB
C
Raw Permalink Normal View History

2025-08-12 10:09:23 +00:00
#ifndef _AUDIO_CONFIG_H_
#define _AUDIO_CONFIG_H_
#include "generic/typedef.h"
#include "app_config.h"
#include "board_config.h"
#define AUDIO_MIXER_LEN (128 * 4 * 2)
#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 //不支持音量同步的设备默认最大音量
#if TCFG_SUPPORT_MIC_CAPLESS
/*
*mic偏置电压自动调整()
*1
*2,()
*3
*/
#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偏置每次开机都校准(包括上电复位和其他复位)
#define TCFG_MC_BIAS_AUTO_ADJUST MC_BIAS_ADJUST_POWER_ON
#define TCFG_MC_CONVERGE_TRACE 0 //省电容mic收敛值跟踪
#else
#define TCFG_MC_BIAS_AUTO_ADJUST MC_BIAS_ADJUST_DISABLE
#define TCFG_MC_CONVERGE_TRACE 0 //省电容mic收敛值跟踪
#endif/*TCFG_SUPPORT_MIC_CAPLESS*/
#if TCFG_USER_BLE_ENABLE
#define TCFG_AEC_SIMPLEX 0 //通话单工模式配置
#else
#define TCFG_AEC_SIMPLEX 0 //通话单工模式配置
#endif
#define TCFG_ESCO_PLC 1 //通话丢包修复
#ifdef CONFIG_SOUNDBOX_FLASH_256K
#define TCFG_ESCO_LIMITER 0 //通话近端底噪/限幅器
#else
#define TCFG_ESCO_LIMITER 1 //通话近端底噪/限幅器
#endif
#if (TCFG_AUDIO_DAC_CONNECT_MODE == DAC_OUTPUT_MONO_LR_DIFF || \
TCFG_AUDIO_DAC_CONNECT_MODE == DAC_OUTPUT_DUAL_LR_DIFF)
#define MAX_ANA_VOL (21)
#else
#define MAX_ANA_VOL (30)
#endif/*TCFG_AUDIO_DAC_CONNECT_MODE*/
#define MAX_COM_VOL (22) // 具体数值应小于联合音量等级的数组大小 (combined_vol_list)
#define MAX_DIG_VOL (100)
#if ((SYS_VOL_TYPE == VOL_TYPE_DIGITAL) || (SYS_VOL_TYPE == VOL_TYPE_DIGITAL_HW))
#define SYS_MAX_VOL MAX_DIG_VOL
#elif (SYS_VOL_TYPE == VOL_TYPE_ANALOG)
#define SYS_MAX_VOL MAX_ANA_VOL
#elif (SYS_VOL_TYPE == VOL_TYPE_AD)
#define SYS_MAX_VOL MAX_COM_VOL
#else
#error "SYS_VOL_TYPE define error"
#endif
#define SYS_DEFAULT_VOL 0//(SYS_MAX_VOL/2)
#define SYS_DEFAULT_TONE_VOL 18//(SYS_MAX_VOL)
#define SYS_DEFAULT_SIN_VOL 17
#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 AUDIO_OUTPUT_ONLY_DAC (AUDIO_OUTPUT_WAY == AUDIO_OUTPUT_WAY_DAC)
#define AUDIO_OUTPUT_INCLUDE_DAC ((AUDIO_OUTPUT_WAY == AUDIO_OUTPUT_WAY_DAC) \
|| (AUDIO_OUTPUT_WAY == AUDIO_OUTPUT_WAY_BT) \
|| (AUDIO_OUTPUT_WAY == AUDIO_OUTPUT_WAY_DONGLE) \
|| (AUDIO_OUTPUT_WAY == AUDIO_OUTPUT_DAC_AND_IIS))
u8 get_max_sys_vol(void);
u8 get_tone_vol(void);
void app_audio_output_init(void);
void app_audio_output_sync_buff_init(void *sync_buff, int len);
int app_audio_output_channel_set(u8 output);
int app_audio_output_channel_get(void);
int app_audio_output_mode_set(u8 output);
int app_audio_output_mode_get(void);
int app_audio_output_write(void *buf, int len);
int app_audio_output_samplerate_select(u32 sample_rate, u8 high);
int app_audio_output_samplerate_set(int sample_rate);
int app_audio_output_samplerate_get(void);
int app_audio_output_start(void);
int app_audio_output_stop(void);
int app_audio_output_reset(u32 msecs);
int app_audio_output_state_get(void);
void app_audio_output_ch_mute(u8 ch, u8 mute);
int app_audio_output_ch_analog_gain_set(u8 ch, u8 again);
int app_audio_output_ch_digital_gain_set(u8 ch, u32 dgain);
int app_audio_output_get_cur_buf_points(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_volume_init(void);
void app_audio_set_digital_volume(s16 volume);
void dac_trim_hook(u8 pos);
int audio_output_buf_time(void);
int audio_output_dev_is_working(void);
int audio_output_sync_start(void);
int audio_output_sync_stop(void);
void app_set_sys_vol(s16 vol_l, s16 vol_r);
void app_set_max_vol(s16 vol);
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);
#endif/*_AUDIO_CONFIG_H_*/