初版
This commit is contained in:
@@ -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_
|
||||
@@ -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_
|
||||
@@ -0,0 +1,33 @@
|
||||
#ifndef _VOLUME_NODE_H_
|
||||
#define _VOLUME_NODE_H_
|
||||
|
||||
#include "audio_config.h"
|
||||
|
||||
struct volume_cfg {
|
||||
u8 bypass; //是否bypass掉当前节点,复用高4bit用于传递 cmd(VOLUME_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
|
||||
|
||||
Reference in New Issue
Block a user