接口设计
driver 层接口设计
driver 层将 audio 定义为
sound0
, dmic0
,
amic0
三个设备,三个设备在 driver 层的接口基本相同,下面以 playback 端的接口进行说明。函数原型 | rt_err_t drv_audio_init(struct rt_audio_device *audio) |
---|---|
功能说明 | playback 端的初始化函数 |
参数定义 | audio:指向 playback 设备的指针 |
返回值 | RT_EOK:执行成功 |
注意事项 | - |
函数原型 | void drv_audio_buffer_info(struct rt_audio_device *audio, struct rt_audio_buf_info *info) |
---|---|
功能说明 | 获取 playback 端的 TX buffer 参数 |
参数定义 | audio:指向 playback 设备的指针 info:用于获取 buffer 参数的指针 |
返回值 | 无 |
注意事项 | - |
函数原型 | rt_err_t drv_audio_start(struct rt_audio_device *audio, int stream) |
---|---|
功能说明 | 开始 playback 端播放 |
参数定义 | audio:指向 playback 设备的指针 stream:音频数据流方向 |
返回值 | RT_EOK:执行成功-RT_EINVAL:参数非法 |
注意事项 | - |
函数原型 | rt_err_t drv_audio_stop(struct rt_audio_device *audio, int stream) |
---|---|
功能说明 | 结束 playback 端播放 |
参数定义 | audio:指向 playback 设备的指针 stream:音频数据流方向 |
返回值 | RT_EOK:执行成功-RT_EINVAL:参数非法 |
注意事项 | - |
函数原型 | rt_err_t drv_audio_pause(struct rt_audio_device *audio, int enable) |
---|---|
功能说明 | 暂停/恢复 playback 端播放 |
参数定义 | audio:指向 playback 设备的指针 enable:playback 端暂停和恢复播放使能位(0 为恢复,非 0 为暂停) |
返回值 | RT_EOK:执行成功 |
注意事项 | - |
函数原型 | rt_err_t drv_audio_configure(struct rt_audio_device *audio, struct rt_audio_caps *caps) |
---|---|
功能原型 | 音频设备配置接口,用于配置采样格式,采样率,通道数等接口 |
参数定义 | audio:指向 playback 设备的指针 caps:指向配置参数的指针 |
返回值 | RT_EOK:执行成功-RT_ERROR:参数不支持 |
注意事项 | - |
函数原型 | rt_err_t drv_audio_getcaps(struct rt_audio_device *audio, struct rt_audio_caps *caps) |
---|---|
功能说明 | 获取音频设备的参数 |
参数定义 | audio:指向 playback 设备的指针 caps:指向配置参数的指针 |
返回值 | RT_EOK:执行成功-RT_ERROR:参数不支持 |
注意事项 | - |
函数原型 | rt_size_t drv_audio_get_playback_avail(struct rt_audio_device *audio) |
---|---|
功能说明 | 获取 playback 端缓存的数据大小 |
参数定义 | audio:指向 playback 设备的指针 |
返回值 | 缓存数据的大小 |
注意事项 | - |
hal 层接口设计
hal 层接口也是分 playback、DMIC、AMIC 三部分进行设计,下面以 playback 端的接口进行说明。
函数原型 | void hal_audio_set_samplerate(aic_audio_ctrl *codec, uint32_t samplerate) |
---|---|
功能说明 | 设置采样率 |
参数定义 | codec:指向 ctrl 的指针 samplerate:采样率 |
返回值 | 无 |
注意事项 | - |
函数原型 | void hal_audio_set_playback_channel(aic_audio_ctrl *codec, uint32_t ch) |
---|---|
功能说明 | 设置 playback 端的通道数 |
参数定义 | codec:指向 ctrl 的指针 ch:通道数 |
返回值 | 无 |
注意事项 | - |
函数原型 | void hal_audio_set_playback_by_spk0(aic_audio_ctrl *codec) |
---|---|
功能说明 | 配置 SPK0 音频通路 |
参数定义 | codec:指向 ctrl 的指针 |
返回值 | 无 |
注意事项 | - |
函数原型 | void hal_audio_set_playback_by_spk1(aic_audio_ctrl *codec) |
---|---|
功能说明 | 配置 SPK1 音频通路 |
参数定义 | codec:指向 ctrl 的指针 |
返回值 | 无 |
注意事项 | - |
函数原型 | void hal_audio_playback_start(aic_audio_ctrl *codec) |
---|---|
功能说明 | 开始播放 |
参数定义 | codec:指向 ctrl 的指针 |
返回值 | 无 |
注意事项 | - |
函数原型 | void hal_audio_playback_stop(aic_audio_ctrl *codec) |
---|---|
功能说明 | 结束播放 |
参数定义 | codec:指向 ctrl 的指针 |
返回值 | 无 |
注意事项 | - |