xt-sdk 文档
v1.0.3
xt-sdk 嵌入式 SDK API 参考
Toggle main menu visibility
载入中...
搜索中...
未找到
xt_audio_dev.h
浏览该文件的文档.
1
10
11
#ifndef __XT_AUDIO_DEV_H__
12
#define __XT_AUDIO_DEV_H__
13
14
/* ==================== [Includes] ========================================== */
15
16
#include "
xt_audio_types.h
"
17
#include "
xt_audio_dev_drv.h
"
18
19
#ifdef __cplusplus
20
extern
"C"
{
21
#endif
22
29
30
/* ==================== [Defines] =========================================== */
31
32
/* ==================== [Typedefs] ========================================== */
33
37
enum
xt_audio_dev_evt
{
38
XT_AUDIO_DEV_EVT_NO_ERR
,
39
XT_AUDIO_DEV_EVT_WRITE_BATCH
,
40
XT_AUDIO_DEV_EVT_WRITE_ERROR
,
41
XT_AUDIO_DEV_EVT_WRITE_UNDERRUN
,
42
XT_AUDIO_DEV_EVT_READ_BATCH
,
43
XT_AUDIO_DEV_EVT_READ_READY
,
44
XT_AUDIO_DEV_EVT_READ_ERROR
,
45
};
46
50
struct
xt_audio_dev_cb_info
{
51
void
*
user_data
;
52
uint8_t *
data
;
53
uint32_t
size
;
54
};
55
63
typedef
void (*
xt_audio_dev_evt_cb_t
)(
xt_audio_t
hdl,
enum
xt_audio_dev_evt
evt,
64
struct
xt_audio_dev_cb_info
*info);
65
69
struct
xt_audio_dev_info
{
70
xt_audio_dev_evt_cb_t
user_cb
;
71
void
*
user_data
;
72
uint8_t
level
;
73
};
74
78
struct
xt_audio_dev_config
{
79
const
char
*
drv_name
;
80
xt_audio_mode_t
mode
;
81
uint16_t
sample_freq
;
82
uint8_t
sample_bits
;
83
uint8_t
channel_num
;
84
uint16_t
frame_size
;
85
uint8_t
write_wq_num
;
86
uint8_t
read_wq_num
;
87
xt_audio_dev_evt_cb_t
evt_cb
;
88
void
*
evt_cb_user_data
;
89
};
90
91
/* ==================== [Global Prototypes] ================================= */
92
100
xt_err_t
xt_audio_dev_setup
(
struct
xt_audio_dev_config
*cfg,
xt_audio_t
*hdl);
101
108
xt_err_t
xt_audio_dev_close
(
xt_audio_t
hdl);
109
117
xt_err_t
xt_audio_dev_stop_ext
(
xt_audio_t
hdl,
xt_audio_mode_t
mode);
118
119
#define xt_audio_dev_stop(_hdl) xt_audio_dev_stop_ext(_hdl, (xt_audio_mode_t)-1)
120
#define xt_audio_dev_read_stop(_hdl) xt_audio_dev_stop_ext(_hdl, XT_AUDIO_MODE_READ)
121
131
int
xt_audio_dev_write_ext
(
xt_audio_t
hdl, uint8_t *data, uint32_t size,
struct
xt_audio_dev_info
*info);
132
133
#define xt_audio_dev_write(_hdl, _data, _size, _level) \
134
xt_audio_dev_write_ext(_hdl, _data, _size, &((struct xt_audio_dev_info){.level = _level}))
135
145
int
xt_audio_dev_read_ext
(
xt_audio_t
hdl, uint8_t *data, uint32_t size,
struct
xt_audio_dev_info
*info);
146
154
int
xt_audio_dev_read_start_ext
(
xt_audio_t
hdl,
struct
xt_audio_dev_info
*info);
155
156
#define xt_audio_dev_read(_hdl, _data, _size, _level) \
157
xt_audio_dev_read_ext(_hdl, _data, _size, &((struct xt_audio_dev_info){.level = _level}))
158
166
xt_err_t
xt_audio_dev_get_format
(
xt_audio_t
hdl,
struct
xt_audio_format
*fmt);
167
174
uint16_t
xt_audio_dev_get_frame_interval
(
xt_audio_t
hdl);
175
182
xt_err_t
xt_audio_dev_sleep
(
xt_audio_t
hdl);
183
190
xt_err_t
xt_audio_dev_resume
(
xt_audio_t
hdl);
191
198
xt_err_t
xt_audio_dev_register_drv
(
struct
xt_audio_dev_drv
*drv);
199
206
struct
xt_audio_dev_drv
*
xt_audio_dev_get_drv
(
const
char
*
name
);
207
208
/* ==================== [Macros] ============================================ */
209
/* xt_audio_dev */
211
212
#ifdef __cplusplus
213
}
/* extern "C" */
214
#endif
215
216
#endif
/* __XT_AUDIO_DEV_H__ */
xt_audio_dev_write_ext
int xt_audio_dev_write_ext(xt_audio_t hdl, uint8_t *data, uint32_t size, struct xt_audio_dev_info *info)
向音频设备写入数据(扩展版本)
xt_audio_dev_evt_cb_t
void(* xt_audio_dev_evt_cb_t)(xt_audio_t hdl, enum xt_audio_dev_evt evt, struct xt_audio_dev_cb_info *info)
音频设备事件回调函数类型
定义
xt_audio_dev.h:63
xt_audio_dev_get_format
xt_err_t xt_audio_dev_get_format(xt_audio_t hdl, struct xt_audio_format *fmt)
获取音频设备当前格式
xt_audio_dev_get_drv
struct xt_audio_dev_drv * xt_audio_dev_get_drv(const char *name)
按名称获取已注册的音频驱动
xt_audio_dev_read_ext
int xt_audio_dev_read_ext(xt_audio_t hdl, uint8_t *data, uint32_t size, struct xt_audio_dev_info *info)
从音频设备读取数据(扩展版本)
xt_audio_dev_resume
xt_err_t xt_audio_dev_resume(xt_audio_t hdl)
音频设备从休眠恢复
xt_audio_dev_stop_ext
xt_err_t xt_audio_dev_stop_ext(xt_audio_t hdl, xt_audio_mode_t mode)
停止音频设备指定方向的传输
xt_audio_dev_read_start_ext
int xt_audio_dev_read_start_ext(xt_audio_t hdl, struct xt_audio_dev_info *info)
启动音频设备读取(扩展版本)
xt_audio_dev_register_drv
xt_err_t xt_audio_dev_register_drv(struct xt_audio_dev_drv *drv)
注册音频设备驱动
xt_audio_dev_get_frame_interval
uint16_t xt_audio_dev_get_frame_interval(xt_audio_t hdl)
获取帧间隔时间
xt_audio_dev_evt
xt_audio_dev_evt
音频设备事件枚举
定义
xt_audio_dev.h:37
xt_audio_dev_setup
xt_err_t xt_audio_dev_setup(struct xt_audio_dev_config *cfg, xt_audio_t *hdl)
初始化音频设备
xt_audio_dev_sleep
xt_err_t xt_audio_dev_sleep(xt_audio_t hdl)
音频设备进入休眠
xt_audio_dev_close
xt_err_t xt_audio_dev_close(xt_audio_t hdl)
关闭音频设备
XT_AUDIO_DEV_EVT_WRITE_ERROR
@ XT_AUDIO_DEV_EVT_WRITE_ERROR
定义
xt_audio_dev.h:40
XT_AUDIO_DEV_EVT_READ_ERROR
@ XT_AUDIO_DEV_EVT_READ_ERROR
定义
xt_audio_dev.h:44
XT_AUDIO_DEV_EVT_WRITE_UNDERRUN
@ XT_AUDIO_DEV_EVT_WRITE_UNDERRUN
定义
xt_audio_dev.h:41
XT_AUDIO_DEV_EVT_WRITE_BATCH
@ XT_AUDIO_DEV_EVT_WRITE_BATCH
定义
xt_audio_dev.h:39
XT_AUDIO_DEV_EVT_READ_BATCH
@ XT_AUDIO_DEV_EVT_READ_BATCH
定义
xt_audio_dev.h:42
XT_AUDIO_DEV_EVT_READ_READY
@ XT_AUDIO_DEV_EVT_READ_READY
定义
xt_audio_dev.h:43
XT_AUDIO_DEV_EVT_NO_ERR
@ XT_AUDIO_DEV_EVT_NO_ERR
定义
xt_audio_dev.h:38
xt_audio_t
void * xt_audio_t
音频设备句柄类型
定义
xt_audio_types.h:43
xt_audio_mode_t
uint8_t xt_audio_mode_t
音频模式类型
定义
xt_audio_types.h:48
xt_err_t
int32_t xt_err_t
错误码类型
定义
xt_error.h:38
xt_audio_dev_cb_info
音频设备回调信息结构体
定义
xt_audio_dev.h:50
xt_audio_dev_cb_info::user_data
void * user_data
定义
xt_audio_dev.h:51
xt_audio_dev_cb_info::size
uint32_t size
定义
xt_audio_dev.h:53
xt_audio_dev_cb_info::data
uint8_t * data
定义
xt_audio_dev.h:52
xt_audio_dev_config
音频设备配置结构体
定义
xt_audio_dev.h:78
xt_audio_dev_config::sample_freq
uint16_t sample_freq
定义
xt_audio_dev.h:81
xt_audio_dev_config::write_wq_num
uint8_t write_wq_num
定义
xt_audio_dev.h:85
xt_audio_dev_config::mode
xt_audio_mode_t mode
定义
xt_audio_dev.h:80
xt_audio_dev_config::evt_cb_user_data
void * evt_cb_user_data
定义
xt_audio_dev.h:88
xt_audio_dev_config::drv_name
const char * drv_name
定义
xt_audio_dev.h:79
xt_audio_dev_config::evt_cb
xt_audio_dev_evt_cb_t evt_cb
定义
xt_audio_dev.h:87
xt_audio_dev_config::read_wq_num
uint8_t read_wq_num
定义
xt_audio_dev.h:86
xt_audio_dev_config::channel_num
uint8_t channel_num
定义
xt_audio_dev.h:83
xt_audio_dev_config::frame_size
uint16_t frame_size
定义
xt_audio_dev.h:84
xt_audio_dev_config::sample_bits
uint8_t sample_bits
定义
xt_audio_dev.h:82
xt_audio_dev_drv
驱动描述符(注册时传入)
定义
xt_audio_dev_drv.h:110
xt_audio_dev_drv::name
const char * name
定义
xt_audio_dev_drv.h:111
xt_audio_dev_info
音频设备操作信息结构体
定义
xt_audio_dev.h:69
xt_audio_dev_info::level
uint8_t level
定义
xt_audio_dev.h:72
xt_audio_dev_info::user_cb
xt_audio_dev_evt_cb_t user_cb
定义
xt_audio_dev.h:70
xt_audio_dev_info::user_data
void * user_data
定义
xt_audio_dev.h:71
xt_audio_format
音频格式描述结构体
定义
xt_audio_types.h:84
xt_audio_dev_drv.h
音频设备驱动接口(移植开发者使用)
xt_audio_types.h
XTINY 音频公共类型定义
platforms
components
xtiny
xt_audio
xt_audio_dev.h
生成于
, 为 xt-sdk 文档使用
1.17.0