This commit is contained in:
huxi
2025-12-03 11:12:34 +08:00
parent c23ae4f24c
commit bc195654bf
8163 changed files with 3799544 additions and 92 deletions
+38
View File
@@ -0,0 +1,38 @@
#ifndef _ADC_FILE_H_
#define _ADC_FILE_H_
#include "generic/typedef.h"
#include "media/includes.h"
#include "app_config.h"
#include "audio_config.h"
//stream.bin ADC参数文件解析
struct adc_file_cfg {
u32 mic_en_map; // BIT(ch) 1 为 ch 使能,0 为不使能
struct adc_file_param param[AUDIO_ADC_MIC_MAX_NUM];
} __attribute__((packed));
void audio_adc_file_init(void);
void audio_all_adc_file_init(void);
void audio_adc_file_set_gain(u8 mic_index, u8 mic_gain);
u8 audio_adc_file_get_gain(u8 mic_index);
u8 audio_adc_file_get_mic_mode(u8 mic_index);
int adc_file_mic_open(struct adc_mic_ch *mic, int ch);
struct adc_file_cfg *audio_adc_file_get_cfg(void);
struct adc_platform_cfg *audio_adc_platform_get_cfg(void);
u8 audio_adc_file_get_esco_mic_num(void);
void audio_adc_fixed_digital_set_buffs(void);
u8 audio_adc_file_get_mic_en_map(void);
void audio_adc_file_set_mic_en_map(u8 mic_en_map);
extern u32 pc_mic_get_fmt_sample_rate(void);
/*根据mic通道值获取使用的第几个mic*/
u8 audio_get_mic_index(u8 mic_ch);
/*根据mic通道值获取使用了多少个mic*/
u8 audio_get_mic_num(u32 mic_ch);
u8 audio_anc_adt_mic_ch_num_get();
#endif // #ifndef _ADC_FILE_H_
+34
View File
@@ -0,0 +1,34 @@
#ifndef _LINEIN_FILE_H_
#define _LINEIN_FILE_H_
#include "generic/typedef.h"
#include "media/includes.h"
#include "app_config.h"
#include "audio_config.h"
struct linein_file_cfg {
u32 mic_en_map;
struct adc_file_param param[AUDIO_ADC_LINEIN_MAX_NUM];
} __attribute__((packed));
struct linein_file_hdl {
void *source_node;
u8 start;
u8 dump_cnt;
u8 ch_num;
u8 mute_en;
u16 sample_rate;
u16 irq_points;
struct adc_linein_ch linein_ch;
struct audio_adc_output_hdl adc_output;
s16 *adc_buf;
u8 adc_seq;
u16 output_fade_in_gain;
u8 output_fade_in;
};
void audio_linein_file_init();
int adc_file_linein_open(struct adc_linein_ch *linein, int ch);
#endif // #ifndef _ADC_FILE_H_
+33
View File
@@ -0,0 +1,33 @@
#ifndef _VOLUME_NODE_H_
#define _VOLUME_NODE_H_
#include "audio_config.h"
struct volume_cfg {
u8 bypass; //是否bypass掉当前节点,复用高4bit用于传递 cmdVOLUME_NODE_CMD_SET_VOL,VOLUME_NODE_CMD_SET_MUTE
u16 cfg_level_max; //最大音量等级
s32 cfg_vol_min; //最小音量,dB
u8 vol_table_custom; //是否自定义音量表
s32 cfg_vol_max; //最大音量,dB
s16 cur_vol; //当前音量
#if VOL_TAB_CUSTOM_EN
u16 tab_len; //音量表的字节长度
#endif
float vol_table[0]; //音量表
} __attribute__((packed));
//Volume Node Command List
#define VOLUME_NODE_CMD_SET_VOL (1<<4)
#define VOLUME_NODE_CMD_SET_MUTE (1<<5)
#define VOLUME_TABLE_CUSTOM_EN 2
//初步判断是否为音量结构体参数的阈值,高8位是 volume_cfg 成员cfg_level_max的低8位,低8位是bypass的8位,cfg_level_max 最小值为01,bypass最小值为0,故此处阈值设为0x0100;
#define VOL_CFG_THRESHOLD ((1<<8 |0 ) - 1 )
int volume_ioc_get_cfg(const char *name, struct volume_cfg *vol_cfg);//获取名字对应节点的音量配置
u16 volume_ioc_get_max_level(const char *name); //获取名字对应节点的最大音量
#endif