1 #ifndef __CODEC_MANAGER_H__ 2 #define __CODEC_MANAGER_H__ 15 #define MAX_CODEC_NUM 2 246 extern int cm_write_codec(
int codec_index,
void * pcm_buffer,uint32_t wait_tick);
253 extern void cm_get_pcm_buffer(
int codec_index,uint32_t* ret_buf,uint32_t wait_tick);
Definition: codec_manager.h:82
过采样率192
Definition: codec_manager.h:30
uint16_t block_size
Definition: codec_manager.h:102
IIS_Mode_Sel_t
IIS主从模式选择
Definition: ci130x_scu.h:194
int cm_set_codec_dac_gain(int codec_index, cm_cha_sel_t cha, int gain)
设置指定的音频CODEC的DAC(播放)的指定通道的增益。
Definition: codec_manager.c:847
iis_data_format_t iis_data_format
Definition: codec_manager.h:148
int cm_set_codec_mute(int codec_index, io_direction_t io_dir, int channel_flag, FunctionalState en)
设置静音模式。
Definition: codec_manage_outside_port.c:37
Definition: codec_manager.h:70
cm_codec_interface_t codec_if
Definition: codec_manager.h:167
int cm_register_codec_callback(int codec_index, void(*callback_func)(void))
注册指定音频CODEC的回调函数,用于异步调用方式,CODEC会在特定事件发生时,调用此函数与调用者通信。 ...
Definition: codec_manager.c:246
Definition: codec_manager.h:140
audio_play_card_clk_source_t
定义放音设备可选择的时钟源。
Definition: codec_manager.h:41
IIS_Sck_Lrck_Wid_t
IIS SCK和LRCK的频率关系比值
Definition: ci130x_scu.h:286
Definition: codec_manager.h:73
音频buffer信息结构体
Definition: codec_manager.h:111
int cm_get_codec_empty_buffer_number(int codec_index, io_direction_t io_dir)
获取指定的音频CODEC的空闲buffer数量。
Definition: codec_manage_outside_port.c:63
cm_io_ctrl_cmd_t
Definition: codec_manager.h:67
iic_base_t
IIC控制器定义
Definition: ci130x_iic.h:34
Definition: codec_manager.h:74
Definition: codec_manager.h:120
int cm_write_codec(int codec_index, void *pcm_buffer, uint32_t wait_tick)
向指定的音频CODEC写入数据。
Definition: codec_manager.c:727
int icodec_init(cm_codec_hw_info_t *codec_hw_info)
包括CODEC整个的初始化,ADC、DAC的初始化
Definition: ci130x_codec.c:568
IIS_Src_Source_t clk_source
Definition: codec_manager.h:146
uint8_t channel_flag
Definition: codec_manager.h:92
int cm_set_codec_dac_enable(int codec_index, int channel, FunctionalState en)
设置指定的音频CODEC的DAC功能是否使能。
Definition: codec_manager.c:897
Definition: codec_manager.h:69
Definition: codec_manager.h:81
iis_base_t IISx
Definition: codec_manager.h:142
IIS_Src_Source_t
MCLK 时钟源SRC的 来源选择
Definition: ci130x_scu.h:254
void * pcm_buffer
Definition: codec_manager.h:101
Definition: codec_manager.h:57
Definition: codec_manager.h:50
int icodec_ioctl(io_direction_t io_dir, uint32_t param0, uint32_t param1, uint32_t param2)
ADC、DAC的配置项,mute使能或关闭、配置增益等
Definition: ci130x_codec.c:710
Definition: codec_manager.h:48
IIS_SckLrck_Mode_t scklrck_out_en
Definition: codec_manager.h:150
cm_iis_info_t output_iis
Definition: codec_manager.h:166
iis_rx_channal_t
IIS RX 接收通道
Definition: ci130x_iis.h:96
int cm_get_codec_busy_buffer_number(int codec_index, io_direction_t io_dir)
获取指定的音频CODEC的忙buffer数量。
Definition: codec_manage_outside_port.c:77
cm_cha_sel_t
Definition: codec_manager.h:78
过采样率128
Definition: codec_manager.h:28
IIS_Mclk_Mode_t
IIS MCLK 输入/输出
Definition: ci130x_scu.h:206
uint16_t buffer_size
Definition: codec_manager.h:103
static uint32_t data_size
Definition: get_play_data.c:148
Definition: codec_manager.h:63
uint8_t block_num
Definition: codec_manager.h:104
int cm_set_codec_alc(int codec_index, cm_cha_sel_t cha, FunctionalState alc_enable)
设置指定的音频CODEC录音时是否开启ALC功能。
Definition: codec_manage_outside_port.c:91
int cm_config_codec(int codec_index, io_direction_t io_dir, cm_sound_info_t *sound_info)
配置指定音频CODEX的音频信息。
Definition: codec_manager.c:537
struct codec_hw_info_str cm_codec_hw_info_t
CODEC相关信息结构体
Definition: codec_manager.h:19
inner CODEC ADC配置
Definition: ci130x_codec.h:473
int cm_release_pcm_buffer(int codec_index, io_direction_t io_dir, void *pcm_buffer)
向指定的音频CODEC释放一个PCM数据buffer,释放的PCM数据buffer必须是通过cm_read_codec读取到的数据buffer...
Definition: codec_manager.c:812
过采样率384
Definition: codec_manager.h:34
IIS_Sck_Lrck_Wid_t sck_lrck_ratio
Definition: codec_manager.h:149
Definition: codec_manager.h:80
iis_data_width_t
IIS数据宽度
Definition: ci130x_iis.h:43
Definition: codec_manager.h:44
CODEC操作接口
Definition: codec_manager.h:130
IIS_Mclk_Fs_t over_sample
Definition: codec_manager.h:145
Definition: codec_manager.h:46
cm_iis_info_t input_iis
Definition: codec_manager.h:165
cm_play_buffer_info_t play_buffer_info
Definition: codec_manager.h:122
int icodec_start(io_direction_t io_dir)
ADC、DAC的启动
Definition: ci130x_codec.c:629
int cm_reg_codec(int codec_index, cm_codec_hw_info_t *p_codec_hw_info)
向音频CODEC管理模块注册一个音频CODEC。
Definition: codec_manager.c:180
过采样率256
Definition: codec_manager.h:32
CODEC相关信息结构体
Definition: codec_manager.h:162
int cm_config_pcm_buffer(int codec_index, io_direction_t io_dir, cm_pcm_buffer_info_t *pcm_buffer_info)
配置指定音频CODEC的PCM数据buffer。
Definition: codec_manager.c:452
void cm_init()
初始化音频CODEC管理模块。
Definition: codec_manager.c:84
IIS_Mclk_Mode_t mclk_out_en
Definition: codec_manager.h:147
FunctionalState
Definition: ci130x_system.h:86
iis_tx_channal_t
IIS TX 发送通道选择
Definition: ci130x_iis.h:76
int icodec_stop(io_direction_t io_dir)
ADC、DAC的关闭
Definition: ci130x_codec.c:642
void cm_get_pcm_buffer(int codec_index, uint32_t *ret_buf, uint32_t wait_tick)
从指定的音频CODEC获取空闲的PCM数据buffer,用于填充PCM数据后再通过cm_write_codec接口写入音频CODEC。 ...
Definition: codec_manager.c:767
音频buffer信息结构体
Definition: codec_manager.h:99
Definition: codec_manager.h:71
iis_data_format_t
IIS 数据格式(标准IIS格式,左对齐格式,右对齐格式)
Definition: ci130x_iis.h:55
IIS_Mclk_Fs_t
IIS MCLK 过采样率选择
Definition: ci130x_scu.h:270
io_direction_t
Definition: codec_manager.h:61
inner_codec_adc_config_t codec_gain
Definition: codec_manager.h:168
Definition: codec_manager.h:64
iis_data_width_t sample_depth
Definition: codec_manager.h:91
cm_record_buffer_info_t record_buffer_info
Definition: codec_manager.h:123
Definition: codec_manager.h:52
int cm_start_codec(int codec_index, io_direction_t io_dir)
启动指定的音频CODEC播放或录音。
Definition: codec_manage_outside_port.c:25
IIS_SckLrck_Mode_t
IIS SCK和LRCK 输入/输出
Definition: ci130x_scu.h:217
int cm_stop_codec(int codec_index, io_direction_t io_dir)
停止指定的音频CODEC播放或录音。
Definition: codec_manage_outside_port.c:51
int cm_read_codec(int codec_index, uint32_t *data_addr, uint32_t *data_size)
从指定的音频CODEC读取录制的PCM数据,此接口为同步调用接口,如果当前没有PCM数据可以读取,此调用会被阻塞...
Definition: codec_manager.c:693
int cm_set_codec_adc_gain(int codec_index, cm_cha_sel_t cha, int gain)
设置指定的音频CODEC的ADC(录音)的指定通道的增益。
Definition: codec_manage_outside_port.c:102
IIS_Mode_Sel_t iis_mode_sel
Definition: codec_manager.h:144
Definition: codec_manager.h:72
iic_base_t IICx
Definition: codec_manager.h:164
uint32_t outside_mclk_fre
Definition: codec_manager.h:151
uint32_t sample_rate
Definition: codec_manager.h:90
uint8_t buffer_num
Definition: codec_manager.h:105
cm_iis_txrx_t
Definition: codec_manager.h:55
iis_base_t
IIS控制器定义
Definition: ci130x_iis.h:32
audio_play_card_over_sample_t
定义放音设备支持的过采样率。
Definition: codec_manager.h:25
音频信息结构体
Definition: codec_manager.h:88
int icodec_config(cm_sound_info_t *audio_info, io_direction_t io_dir)
配置CODEC ADC或者DAC的采样率、数据位宽以及通道选择
Definition: ci130x_codec.c:655
Definition: codec_manager.h:58