xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_audio_dev_drv.h
浏览该文件的文档.
1
10
11#ifndef __XT_AUDIO_DEV_DRV_H__
12#define __XT_AUDIO_DEV_DRV_H__
13
14/* ==================== [Includes] ========================================== */
15
16#include "xt_audio_types.h"
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
28
29/* ==================== [Defines] =========================================== */
30
31/* ==================== [Typedefs] ========================================== */
32
40
45 void (*cb)(enum xt_audio_dev_sw_cmd cmd, void *arg);
46 void *cb_arg;
47 uint8_t io;
48 uint8_t active_level;
49 uint16_t on_delay_ms;
50 uint16_t off_delay_ms;
51};
52
57 XT_AUDIO_DEV_DRV_EVT_TX_IDLE, /* 写方向 ring buffer 排空 */
58 XT_AUDIO_DEV_DRV_EVT_RX_IDLE, /* 读方向(预留) */
59};
60
64typedef void (*xt_audio_dev_drv_cb_t)(int evt, void *user_data);
65
70 struct { uint8_t val; } set_level; /* SET_WRITE_LEVEL / SET_READ_LEVEL */
71 struct { uint8_t *val; } get_level; /* GET_WRITE_LEVEL / GET_READ_LEVEL */
72 struct { xt_audio_mode_t mode; } active; /* ACTIVE: 触发方向 */
73 struct { xt_audio_mode_t mode; } idle; /* IDLE: 触发方向 */
74 struct { uint8_t type; uint16_t val; } param; /* SET_PARAM / GET_PARAM */
75 struct { uint8_t type; uint16_t *list; } param_list; /* SET_PARAM_LIST / GET_PARAM_LIST */
76};
77
82 XT_AUDIO_DEV_CTRL_ACTIVE, /* idle→active */
83 XT_AUDIO_DEV_CTRL_IDLE, /* active→idle */
84 XT_AUDIO_DEV_CTRL_SLEEP, /* 深休眠 */
85 XT_AUDIO_DEV_CTRL_RESUME, /* 从深休眠恢复 */
86 XT_AUDIO_DEV_CTRL_SET_WRITE_LEVEL, /* 写方向 level */
87 XT_AUDIO_DEV_CTRL_SET_READ_LEVEL, /* 读方向 level */
88 XT_AUDIO_DEV_CTRL_GET_WRITE_LEVEL, /* 获取写方向默认 level */
89 XT_AUDIO_DEV_CTRL_GET_READ_LEVEL, /* 获取读方向默认 level */
90 XT_AUDIO_DEV_CTRL_SET_PARAM, /* 设置单个参数(调试用) */
91 XT_AUDIO_DEV_CTRL_GET_PARAM, /* 获取单个参数 */
92 XT_AUDIO_DEV_CTRL_SET_PARAM_LIST, /* 设置参数等级列表 */
93 XT_AUDIO_DEV_CTRL_GET_PARAM_LIST, /* 获取参数等级列表 */
94};
95
100 xt_err_t (*open)(void *ctx, struct xt_audio_format *fmt, xt_audio_dev_drv_cb_t cb, void *cb_ctx);
101 xt_err_t (*close)(void *ctx);
102 int (*write)(void *ctx, uint8_t *data, uint32_t size); /* 正数=实际写入量, 负数=错误码 */
103 int (*read)(void *ctx, uint8_t *data, uint32_t size); /* 正数=实际读取量, 负数=错误码 */
104 xt_err_t (*ctrl)(void *ctx, int cmd, union xt_audio_dev_ctrl_arg *arg);
105};
106
111 const char *name;
113 void *ctx;
114};
115
116/* ==================== [Global Prototypes] ================================= */
117
122
123/* ==================== [Macros] ============================================ */
124 /* xt_audio_dev_drv */
126
127#ifdef __cplusplus
128} /* extern "C" */
129#endif
130
131#endif /* __XT_AUDIO_DEV_DRV_H__ */
xt_err_t xt_audio_dev_register_drv(struct xt_audio_dev_drv *drv)
注册音频驱动(全局,启动阶段调用)
xt_audio_dev_sw_cmd
设备开关控制命令
xt_audio_dev_ctrl_cmd
ctrl 命令
xt_audio_dev_drv_evt
驱动→dev 的回调事件
void(* xt_audio_dev_drv_cb_t)(int evt, void *user_data)
驱动→dev 的回调(如传输完成通知)
@ XT_AUDIO_DEV_SW_OFF
@ XT_AUDIO_DEV_SW_ON
@ XT_AUDIO_DEV_CTRL_SET_WRITE_LEVEL
@ XT_AUDIO_DEV_CTRL_ACTIVE
@ XT_AUDIO_DEV_CTRL_SET_PARAM_LIST
@ XT_AUDIO_DEV_CTRL_GET_READ_LEVEL
@ XT_AUDIO_DEV_CTRL_IDLE
@ XT_AUDIO_DEV_CTRL_RESUME
@ XT_AUDIO_DEV_CTRL_SLEEP
@ XT_AUDIO_DEV_CTRL_GET_WRITE_LEVEL
@ XT_AUDIO_DEV_CTRL_SET_PARAM
@ XT_AUDIO_DEV_CTRL_SET_READ_LEVEL
@ XT_AUDIO_DEV_CTRL_GET_PARAM
@ XT_AUDIO_DEV_CTRL_GET_PARAM_LIST
@ XT_AUDIO_DEV_DRV_EVT_RX_IDLE
@ XT_AUDIO_DEV_DRV_EVT_TX_IDLE
uint8_t xt_audio_mode_t
音频模式类型
int32_t xt_err_t
错误码类型
驱动描述符(注册时传入)
struct xt_audio_dev_ops * ops
驱动 ops(移植用户实现)
int(* write)(void *ctx, uint8_t *data, uint32_t size)
xt_err_t(* close)(void *ctx)
xt_err_t(* open)(void *ctx, struct xt_audio_format *fmt, xt_audio_dev_drv_cb_t cb, void *cb_ctx)
int(* read)(void *ctx, uint8_t *data, uint32_t size)
xt_err_t(* ctrl)(void *ctx, int cmd, union xt_audio_dev_ctrl_arg *arg)
设备开关描述(cb 优先;cb==NULL 时使用 IO 模式)
void(* cb)(enum xt_audio_dev_sw_cmd cmd, void *arg)
音频格式描述结构体
ctrl 命令参数联合体(每个成员 ≤ sizeof(uintptr_t))
struct xt_audio_dev_ctrl_arg::@260201307340257115365207237020326231060133200200 get_level
struct xt_audio_dev_ctrl_arg::@154231005066157101142240023301254064314304111214 idle
struct xt_audio_dev_ctrl_arg::@053204176165335341010005053117050272215014371160 param
struct xt_audio_dev_ctrl_arg::@243061226042171155263274106216162273210174013361 set_level
struct xt_audio_dev_ctrl_arg::@032251375175131043017364254126224237353276300137 active
struct xt_audio_dev_ctrl_arg::@107355337317011113035365173301235220214015244316 param_list
XTINY 音频公共类型定义