xt-sdk 文档
v1.0.3
xt-sdk 嵌入式 SDK API 参考
Toggle main menu visibility
载入中...
搜索中...
未找到
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
19
extern
"C"
{
20
#endif
21
28
29
/* ==================== [Defines] =========================================== */
30
31
/* ==================== [Typedefs] ========================================== */
32
36
enum
xt_audio_dev_sw_cmd
{
37
XT_AUDIO_DEV_SW_ON
,
38
XT_AUDIO_DEV_SW_OFF
,
39
};
40
44
struct
xt_audio_dev_sw_desc
{
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
56
enum
xt_audio_dev_drv_evt
{
57
XT_AUDIO_DEV_DRV_EVT_TX_IDLE
,
/* 写方向 ring buffer 排空 */
58
XT_AUDIO_DEV_DRV_EVT_RX_IDLE
,
/* 读方向(预留) */
59
};
60
64
typedef
void (*
xt_audio_dev_drv_cb_t
)(
int
evt,
void
*user_data);
65
69
union
xt_audio_dev_ctrl_arg
{
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
81
enum
xt_audio_dev_ctrl_cmd
{
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
99
struct
xt_audio_dev_ops
{
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
110
struct
xt_audio_dev_drv
{
111
const
char
*
name
;
112
struct
xt_audio_dev_ops
*
ops
;
113
void
*
ctx
;
114
};
115
116
/* ==================== [Global Prototypes] ================================= */
117
121
xt_err_t
xt_audio_dev_register_drv
(
struct
xt_audio_dev_drv
*drv);
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_audio_dev_register_drv
xt_err_t xt_audio_dev_register_drv(struct xt_audio_dev_drv *drv)
注册音频驱动(全局,启动阶段调用)
xt_audio_dev_sw_cmd
xt_audio_dev_sw_cmd
设备开关控制命令
定义
xt_audio_dev_drv.h:36
xt_audio_dev_ctrl_cmd
xt_audio_dev_ctrl_cmd
ctrl 命令
定义
xt_audio_dev_drv.h:81
xt_audio_dev_drv_evt
xt_audio_dev_drv_evt
驱动→dev 的回调事件
定义
xt_audio_dev_drv.h:56
xt_audio_dev_drv_cb_t
void(* xt_audio_dev_drv_cb_t)(int evt, void *user_data)
驱动→dev 的回调(如传输完成通知)
定义
xt_audio_dev_drv.h:64
XT_AUDIO_DEV_SW_OFF
@ XT_AUDIO_DEV_SW_OFF
定义
xt_audio_dev_drv.h:38
XT_AUDIO_DEV_SW_ON
@ XT_AUDIO_DEV_SW_ON
定义
xt_audio_dev_drv.h:37
XT_AUDIO_DEV_CTRL_SET_WRITE_LEVEL
@ XT_AUDIO_DEV_CTRL_SET_WRITE_LEVEL
定义
xt_audio_dev_drv.h:86
XT_AUDIO_DEV_CTRL_ACTIVE
@ XT_AUDIO_DEV_CTRL_ACTIVE
定义
xt_audio_dev_drv.h:82
XT_AUDIO_DEV_CTRL_SET_PARAM_LIST
@ XT_AUDIO_DEV_CTRL_SET_PARAM_LIST
定义
xt_audio_dev_drv.h:92
XT_AUDIO_DEV_CTRL_GET_READ_LEVEL
@ XT_AUDIO_DEV_CTRL_GET_READ_LEVEL
定义
xt_audio_dev_drv.h:89
XT_AUDIO_DEV_CTRL_IDLE
@ XT_AUDIO_DEV_CTRL_IDLE
定义
xt_audio_dev_drv.h:83
XT_AUDIO_DEV_CTRL_RESUME
@ XT_AUDIO_DEV_CTRL_RESUME
定义
xt_audio_dev_drv.h:85
XT_AUDIO_DEV_CTRL_SLEEP
@ XT_AUDIO_DEV_CTRL_SLEEP
定义
xt_audio_dev_drv.h:84
XT_AUDIO_DEV_CTRL_GET_WRITE_LEVEL
@ XT_AUDIO_DEV_CTRL_GET_WRITE_LEVEL
定义
xt_audio_dev_drv.h:88
XT_AUDIO_DEV_CTRL_SET_PARAM
@ XT_AUDIO_DEV_CTRL_SET_PARAM
定义
xt_audio_dev_drv.h:90
XT_AUDIO_DEV_CTRL_SET_READ_LEVEL
@ XT_AUDIO_DEV_CTRL_SET_READ_LEVEL
定义
xt_audio_dev_drv.h:87
XT_AUDIO_DEV_CTRL_GET_PARAM
@ XT_AUDIO_DEV_CTRL_GET_PARAM
定义
xt_audio_dev_drv.h:91
XT_AUDIO_DEV_CTRL_GET_PARAM_LIST
@ XT_AUDIO_DEV_CTRL_GET_PARAM_LIST
定义
xt_audio_dev_drv.h:93
XT_AUDIO_DEV_DRV_EVT_RX_IDLE
@ XT_AUDIO_DEV_DRV_EVT_RX_IDLE
定义
xt_audio_dev_drv.h:58
XT_AUDIO_DEV_DRV_EVT_TX_IDLE
@ XT_AUDIO_DEV_DRV_EVT_TX_IDLE
定义
xt_audio_dev_drv.h:57
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_drv
驱动描述符(注册时传入)
定义
xt_audio_dev_drv.h:110
xt_audio_dev_drv::name
const char * name
定义
xt_audio_dev_drv.h:111
xt_audio_dev_drv::ctx
void * ctx
定义
xt_audio_dev_drv.h:113
xt_audio_dev_drv::ops
struct xt_audio_dev_ops * ops
定义
xt_audio_dev_drv.h:112
xt_audio_dev_ops
驱动 ops(移植用户实现)
定义
xt_audio_dev_drv.h:99
xt_audio_dev_ops::write
int(* write)(void *ctx, uint8_t *data, uint32_t size)
定义
xt_audio_dev_drv.h:102
xt_audio_dev_ops::close
xt_err_t(* close)(void *ctx)
定义
xt_audio_dev_drv.h:101
xt_audio_dev_ops::open
xt_err_t(* open)(void *ctx, struct xt_audio_format *fmt, xt_audio_dev_drv_cb_t cb, void *cb_ctx)
定义
xt_audio_dev_drv.h:100
xt_audio_dev_ops::read
int(* read)(void *ctx, uint8_t *data, uint32_t size)
定义
xt_audio_dev_drv.h:103
xt_audio_dev_ops::ctrl
xt_err_t(* ctrl)(void *ctx, int cmd, union xt_audio_dev_ctrl_arg *arg)
定义
xt_audio_dev_drv.h:104
xt_audio_dev_sw_desc
设备开关描述(cb 优先;cb==NULL 时使用 IO 模式)
定义
xt_audio_dev_drv.h:44
xt_audio_dev_sw_desc::io
uint8_t io
定义
xt_audio_dev_drv.h:47
xt_audio_dev_sw_desc::on_delay_ms
uint16_t on_delay_ms
定义
xt_audio_dev_drv.h:49
xt_audio_dev_sw_desc::off_delay_ms
uint16_t off_delay_ms
定义
xt_audio_dev_drv.h:50
xt_audio_dev_sw_desc::cb
void(* cb)(enum xt_audio_dev_sw_cmd cmd, void *arg)
定义
xt_audio_dev_drv.h:45
xt_audio_dev_sw_desc::cb_arg
void * cb_arg
定义
xt_audio_dev_drv.h:46
xt_audio_dev_sw_desc::active_level
uint8_t active_level
定义
xt_audio_dev_drv.h:48
xt_audio_format
音频格式描述结构体
定义
xt_audio_types.h:84
xt_audio_dev_ctrl_arg
ctrl 命令参数联合体(每个成员 ≤ sizeof(uintptr_t))
定义
xt_audio_dev_drv.h:69
xt_audio_dev_ctrl_arg::list
uint16_t * list
定义
xt_audio_dev_drv.h:75
xt_audio_dev_ctrl_arg::val
uint8_t val
定义
xt_audio_dev_drv.h:70
xt_audio_dev_ctrl_arg::get_level
struct xt_audio_dev_ctrl_arg::@260201307340257115365207237020326231060133200200 get_level
xt_audio_dev_ctrl_arg::idle
struct xt_audio_dev_ctrl_arg::@154231005066157101142240023301254064314304111214 idle
xt_audio_dev_ctrl_arg::param
struct xt_audio_dev_ctrl_arg::@053204176165335341010005053117050272215014371160 param
xt_audio_dev_ctrl_arg::set_level
struct xt_audio_dev_ctrl_arg::@243061226042171155263274106216162273210174013361 set_level
xt_audio_dev_ctrl_arg::type
uint8_t type
定义
xt_audio_dev_drv.h:74
xt_audio_dev_ctrl_arg::active
struct xt_audio_dev_ctrl_arg::@032251375175131043017364254126224237353276300137 active
xt_audio_dev_ctrl_arg::param_list
struct xt_audio_dev_ctrl_arg::@107355337317011113035365173301235220214015244316 param_list
xt_audio_dev_ctrl_arg::mode
xt_audio_mode_t mode
定义
xt_audio_dev_drv.h:72
xt_audio_types.h
XTINY 音频公共类型定义
platforms
components
xtiny
xt_audio
xt_audio_dev_drv.h
生成于
, 为 xt-sdk 文档使用
1.17.0