Edit online

接口设计

driver 层接口设计

driver 层将 audio 定义为 sound0dmic0 , amic0 三个设备,三个设备在 driver 层的接口基本相同,下面以 playback 端的接口进行说明。
1. drv_audio_init
函数原型 rt_err_t drv_audio_init(struct rt_audio_device *audio)
功能说明 playback 端的初始化函数
参数定义 audio:指向 playback 设备的指针
返回值 RT_EOK:执行成功
注意事项 -
2. drv_audio_buffer_info
函数原型 void drv_audio_buffer_info(struct rt_audio_device *audio, struct rt_audio_buf_info *info)
功能说明 获取 playback 端的 TX buffer 参数
参数定义 audio:指向 playback 设备的指针 info:用于获取 buffer 参数的指针
返回值
注意事项 -
3. drv_audio_start
函数原型 rt_err_t drv_audio_start(struct rt_audio_device *audio, int stream)
功能说明 开始 playback 端播放
参数定义 audio:指向 playback 设备的指针 stream:音频数据流方向
返回值 RT_EOK:执行成功-RT_EINVAL:参数非法
注意事项 -
4. drv_audio_stop
函数原型 rt_err_t drv_audio_stop(struct rt_audio_device *audio, int stream)
功能说明 结束 playback 端播放
参数定义 audio:指向 playback 设备的指针 stream:音频数据流方向
返回值 RT_EOK:执行成功-RT_EINVAL:参数非法
注意事项 -
5. drv_audio_pause
函数原型 rt_err_t drv_audio_pause(struct rt_audio_device *audio, int enable)
功能说明 暂停/恢复 playback 端播放
参数定义 audio:指向 playback 设备的指针 enable:playback 端暂停和恢复播放使能位(0 为恢复,非 0 为暂停)
返回值 RT_EOK:执行成功
注意事项 -
6. drv_audio_configure
函数原型 rt_err_t drv_audio_configure(struct rt_audio_device *audio, struct rt_audio_caps *caps)
功能原型 音频设备配置接口,用于配置采样格式,采样率,通道数等接口
参数定义 audio:指向 playback 设备的指针 caps:指向配置参数的指针
返回值 RT_EOK:执行成功-RT_ERROR:参数不支持
注意事项 -
7. drv_audio_getcaps
函数原型 rt_err_t drv_audio_getcaps(struct rt_audio_device *audio, struct rt_audio_caps *caps)
功能说明 获取音频设备的参数
参数定义 audio:指向 playback 设备的指针 caps:指向配置参数的指针
返回值 RT_EOK:执行成功-RT_ERROR:参数不支持
注意事项 -
8. drv_audio_get_playback_avail
函数原型 rt_size_t drv_audio_get_playback_avail(struct rt_audio_device *audio)
功能说明 获取 playback 端缓存的数据大小
参数定义 audio:指向 playback 设备的指针
返回值 缓存数据的大小
注意事项 -

hal 层接口设计

hal 层接口也是分 playback、DMIC、AMIC 三部分进行设计,下面以 playback 端的接口进行说明。

9. hal_audio_set_samplerate
函数原型 void hal_audio_set_samplerate(aic_audio_ctrl *codec, uint32_t samplerate)
功能说明 设置采样率
参数定义 codec:指向 ctrl 的指针 samplerate:采样率
返回值
注意事项 -
10. hal_audio_set_playback_channel
函数原型 void hal_audio_set_playback_channel(aic_audio_ctrl *codec, uint32_t ch)
功能说明 设置 playback 端的通道数
参数定义 codec:指向 ctrl 的指针 ch:通道数
返回值
注意事项 -
11. hal_audio_set_playback_by_spk0
函数原型 void hal_audio_set_playback_by_spk0(aic_audio_ctrl *codec)
功能说明 配置 SPK0 音频通路
参数定义 codec:指向 ctrl 的指针
返回值
注意事项 -
12. hal_audio_set_playback_by_spk1
函数原型 void hal_audio_set_playback_by_spk1(aic_audio_ctrl *codec)
功能说明 配置 SPK1 音频通路
参数定义 codec:指向 ctrl 的指针
返回值
注意事项 -
13. hal_audio_playback_start
函数原型 void hal_audio_playback_start(aic_audio_ctrl *codec)
功能说明 开始播放
参数定义 codec:指向 ctrl 的指针
返回值
注意事项 -
14. hal_audio_playback_stop
函数原型 void hal_audio_playback_stop(aic_audio_ctrl *codec)
功能说明 结束播放
参数定义 codec:指向 ctrl 的指针
返回值
注意事项 -