WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
bt_audio_hal_interface.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2022. All rights reserved.
3 * Description: BT AUDIO HAL module.
4 */
5
12#ifndef BT_AUDIO_HAL_INTERFACE_H
13#define BT_AUDIO_HAL_INTERFACE_H
14#include <stdint.h>
15#include <td_type.h>
16#ifdef __cplusplus
17extern "C" {
18#endif
19
27#define BT_A2DP_CODECCAPS_MAX_LEN 0x10
28
36#define BT_AVRCP_EVENT_STATUS_MAX_LEN 0x08
37
45#define BTS_ERR_INVALID_TASKID 0xffffffff
46
60
68#define BT_AUDIO_CODEC_SBC 0x00
69
77#define BT_AUDIO_CODEC_MPEG12 0x01
85#define BT_AUDIO_CODEC_MPEG24 0x02
86
94#define BT_AUDIO_CODEC_UNKNOWN 0xFF
95
103enum {
104 /* sampling_freq, do not need to shift again, already in macro */
107 BT_AUDIO_A2DP_SBC_SF_44100 = 0x20, /* SRC must support 44.1 or 48, SNK must support both */
116
124enum {
125 BT_AUDIO_A2DP_SBC_BLOCK_4 = 0x80, /* block_len, do not need to shift */
130 BT_AUDIO_A2DP_SBC_SUBBAND_4 = 0x08, /* subbands, do not need to shift */
133 BT_AUDIO_A2DP_SBC_SNR = 0x02, /* allocation_method, do not need to shift */
134 BT_AUDIO_A2DP_SBC_LOUDNESS = 0x01, /* Default, most headphone only support Loudness */
137
138#define BT_AUDIO_A2DP_SBC_MINBITPOOL 0x02
139#define BT_AUDIO_A2DP_SBC_MAXBITPOOL 0x44
140
141/* MPEG12 capabilitis */
142/* chnl_mode */
143#define BT_AUDIO_A2DP_MPEG12_JOINTSTEREO 0x01
144#define BT_AUDIO_A2DP_MPEG12_STEREO 0x02
145#define BT_AUDIO_A2DP_MPEG12_DUAL 0x04
146#define BT_AUDIO_A2DP_MPEG12_MONO 0x08
147/* crc */
148#define BT_AUDIO_A2DP_MPEG12_CRCSUPPORT 0x01
149/* layer */
150#define BT_AUDIO_A2DP_MPEG12_LAYER1 0x04
151#define BT_AUDIO_A2DP_MPEG12_LAYER2 0x02
152#define BT_AUDIO_A2DP_MPEG12_LAYER3 0x01
153/* sample_frequency */
154#define BT_AUDIO_A2DP_MPEG12_FS48000 0x01
155#define BT_AUDIO_A2DP_MPEG12_FS44100 0x02
156#define BT_AUDIO_A2DP_MPEG12_FS32000 0x04
157#define BT_AUDIO_A2DP_MPEG12_FS24000 0x08
158#define BT_AUDIO_A2DP_MPEG12_FS22050 0x10
159#define BT_AUDIO_A2DP_MPEG12_FS16000 0x20
160
168#define BT_AUDIO_A2DP_MPEG12_MPF2SUPPORT 0x01
169/* bitrate */
170#define BT_AUDIO_A2DP_MPEG12_BITRATE0000 0x0001 /* free */
171#define BT_AUDIO_A2DP_MPEG12_BITRATE0001 0x0002 /* 32Kbps for MPEG-1 layer 3 */
172#define BT_AUDIO_A2DP_MPEG12_BITRATE0010 0x0004 /* 40Kbps for MPEG-1 layer 3 */
173#define BT_AUDIO_A2DP_MPEG12_BITRATE0011 0x0008 /* 48Kbps for MPEG-1 layer 3 */
174#define BT_AUDIO_A2DP_MPEG12_BITRATE0100 0x0010 /* 56Kbps for MPEG-1 layer 3 */
175#define BT_AUDIO_A2DP_MPEG12_BITRATE0101 0x0020 /* 64Kbps for MPEG-1 layer 3 */
176#define BT_AUDIO_A2DP_MPEG12_BITRATE0110 0x0040 /* 80Kbps for MPEG-1 layer 3 */
177#define BT_AUDIO_A2DP_MPEG12_BITRATE0111 0x0080 /* 96Kbps for MPEG-1 layer 3 */
178#define BT_AUDIO_A2DP_MPEG12_BITRATE1000 0x0100 /* 112Kbps for MPEG-1 layer 3 */
179#define BT_AUDIO_A2DP_MPEG12_BITRATE1001 0x0200 /* 128Kbps for MPEG-1 layer 3 */
180#define BT_AUDIO_A2DP_MPEG12_BITRATE1010 0x0400 /* 160Kbps for MPEG-1 layer 3 */
181#define BT_AUDIO_A2DP_MPEG12_BITRATE1011 0x0800 /* 192Kbps for MPEG-1 layer 3 */
182#define BT_AUDIO_A2DP_MPEG12_BITRATE1100 0x1000 /* 224Kbps for MPEG-1 layer 3 */
183#define BT_AUDIO_A2DP_MPEG12_BITRATE1101 0x2000 /* 256Kbps for MPEG-1 layer 3 */
184#define BT_AUDIO_A2DP_MPEG12_BITRATE1110 0x4000 /* 320Kbps for MPEG-1 layer 3 */
185/* vbr */
186#define BT_AUDIO_A2DP_MPEG12_VBRSUPPORT 0x01
187
188/* MPEG24(AAC) capabilitis */
189#define BT_AUDIO_A2DP_AAC_SF8000 0x0800
190#define BT_AUDIO_A2DP_AAC_SF11025 0x0400
191#define BT_AUDIO_A2DP_AAC_SF12000 0x0200
192#define BT_AUDIO_A2DP_AAC_SF16000 0x0100
193#define BT_AUDIO_A2DP_AAC_SF22050 0x0080
194#define BT_AUDIO_A2DP_AAC_SF24000 0x0040
195#define BT_AUDIO_A2DP_AAC_SF32000 0x0020
196#define BT_AUDIO_A2DP_AAC_SF44100 0x0010
197#define BT_AUDIO_A2DP_AAC_SF48000 0x0008
198#define BT_AUDIO_A2DP_AAC_SF64000 0x0004
199#define BT_AUDIO_A2DP_AAC_SF88200 0x0002
200#define BT_AUDIO_A2DP_AAC_SF96000 0x0001
201#define BT_AUDIO_A2DP_AAC_SFSEPALL 0x0FFF
202
203/* MPEG AAC Sampling Frequency */
204#define BT_AUDIO_A2DP_SMAPLE_RATE8000 8000
205#define BT_AUDIO_A2DP_SMAPLE_RATE11025 11025
206#define BT_AUDIO_A2DP_SMAPLE_RATE12000 12000
207#define BT_AUDIO_A2DP_SMAPLE_RATE16000 16000
208#define BT_AUDIO_A2DP_SMAPLE_RATE22050 22050
209#define BT_AUDIO_A2DP_SMAPLE_RATE24000 24000
210#define BT_AUDIO_A2DP_SMAPLE_RATE32000 32000
211#define BT_AUDIO_A2DP_SMAPLE_RATE44100 44100
212#define BT_AUDIO_A2DP_SMAPLE_RATE48000 48000
213#define BT_AUDIO_A2DP_SMAPLE_RATE64000 64000
214#define BT_AUDIO_A2DP_SMAPLE_RATE88200 88200
215#define BT_AUDIO_A2DP_SMAPLE_RATE96000 96000
216
224#define BT_AUDIO_A2DP_AAC_MPEG2_LC 0x80
225
233#define BT_AUDIO_A2DP_AAC_MPEG4_LC 0x40
234
242#define BT_AUDIO_A2DP_AAC_MPEG4_LTP 0x20
243
251#define BT_AUDIO_A2DP_AAC_MPEG4_SCALABLE 0x10
252
260#define BT_AUDIO_A2DP_AAC_OBJECT_SEPALL 0xF0
261
269#define BT_AUDIO_A2DP_AAC_CH_1 0x02
270
278#define BT_AUDIO_A2DP_AAC_CH_2 0x01
279
287#define BT_AUDIO_A2DP_AAC_VBR 0x01
288
296#define BT_AUDIO_A2DP_AAC_NOVBR 0x00
297
316
317/* SBC codec 信息 */
340
356
364typedef enum {
365 BT_AUDIO_A2DP_STREAM_CREATE, /* A2DP流创建,数据为流handle,长度为sizeof(td_pvoid) */
366 BT_AUDIO_A2DP_STREAM_OPENED, /* A2DP流打开,数据为 bt_audio_a2dp_stream_open_data,长度为sizeof(td_pvoid) */
367 BT_AUDIO_A2DP_STREAM_STRAT, /* A2DP流开始,数据为流handle,长度为sizeof(td_pvoid) */
368 BT_AUDIO_A2DP_STREAM_SUSPENDED, /* A2DP流暂停,数据为流handle,长度为sizeof(td_pvoid) */
369 BT_AUDIO_A2DP_STREAM_CLOSED, /* A2DP流关闭,数据为流handle,长度为sizeof(td_pvoid) */
370 BT_AUDIO_A2DP_STREAM_CONFIG_CHANGE, /* A2DP流参数变更,数据结构为 bt_audio_a2dp_config_chg_data */
371 BT_AUDIO_SCO_CONN_ESTABLISHED, /* SCO连接建立,数据为流handle,长度为sizeof(td_pvoid) */
372 BT_AUDIO_SCO_CONN_RELEASED, /* SCO连接释放,数据为流handle,长度为sizeof(td_pvoid) */
374
390
402
416
432
461typedef td_void (*bt_audio_listener_cb)(bt_audio_event_type type, const td_void *data, int32_t size, td_void *context);
462
483
504
525
546
567
590
613
654
682
687#ifdef __cplusplus
688}
689#endif
690#endif /* BT_AUDIO_HAL_INTERFACE_H */
td_u32 bt_attach_audio_port(td_pvoid stream_hdl, bt_audio_port_params *param)
为蓝牙音频通道绑定音频端口。
td_void(* bt_audio_listener_cb)(bt_audio_event_type type, const td_void *data, int32_t size, td_void *context)
A2dp 状态事件改变回调函数。
Definition bt_audio_hal_interface.h:461
bt_audio_event_type
蓝牙音频通道事件类型定义。
Definition bt_audio_hal_interface.h:364
td_u32 bt_deregister_audio_listener(bt_audio_listener_cb cb)
取消注册音频监听回调。
td_u32 bt_detach_audio_port(td_pvoid stream_hdl, bt_audio_port_params *param)
为蓝牙音频通道取消绑定音频端口。
td_u32 bt_pause_audio_stream(td_pvoid stream_hdl)
暂停蓝牙音频通道数据传输。
bt_audio_param_type
蓝牙通道参数类型定义。
Definition bt_audio_hal_interface.h:54
td_u32 bt_get_audio_parameter(td_pvoid stream_hdl, bt_audio_param_type type, td_void *params, int32_t len)
获取指定蓝牙音频通道的参数。
td_u32 bt_stop_audio_stream(td_pvoid stream_hdl)
停止蓝牙音频通道数据传输。
td_u32 bt_register_audio_listener(bt_audio_listener_cb cb, td_void *context)
注册音频监听回调。
#define BT_A2DP_CODECCAPS_MAX_LEN
A2DP编码格式能力最大长度。
Definition bt_audio_hal_interface.h:27
td_u32 bt_start_audio_stream(td_pvoid stream_hdl)
启动蓝牙音频通道数据传输。
bt_audio_port_type
音频端口类型定义。
Definition bt_audio_hal_interface.h:410
td_u32 bt_set_audio_parameter(td_pvoid stream_hdl, bt_audio_param_type type, td_void *params, int32_t len)
设置指定蓝牙音频通道的参数。
@ BT_AUDIO_SCO_CONN_ESTABLISHED
Definition bt_audio_hal_interface.h:371
@ BT_AUDIO_A2DP_STREAM_CONFIG_CHANGE
Definition bt_audio_hal_interface.h:370
@ BT_AUDIO_A2DP_STREAM_OPENED
Definition bt_audio_hal_interface.h:366
@ BT_AUDIO_A2DP_STREAM_SUSPENDED
Definition bt_audio_hal_interface.h:368
@ BT_AUDIO_A2DP_STREAM_CREATE
Definition bt_audio_hal_interface.h:365
@ BT_AUDIO_A2DP_STREAM_CLOSED
Definition bt_audio_hal_interface.h:369
@ BT_AUDIO_SCO_CONN_RELEASED
Definition bt_audio_hal_interface.h:372
@ BT_AUDIO_A2DP_STREAM_STRAT
Definition bt_audio_hal_interface.h:367
@ BT_AUDIO_A2DP_SBC_SUBBAND_ALL
Definition bt_audio_hal_interface.h:132
@ BT_AUDIO_A2DP_SBC_ALLOCATION_ALL
Definition bt_audio_hal_interface.h:135
@ BT_AUDIO_A2DP_SBC_SUBBAND_8
Definition bt_audio_hal_interface.h:131
@ BT_AUDIO_A2DP_SBC_BLOCK_4
Definition bt_audio_hal_interface.h:125
@ BT_AUDIO_A2DP_SBC_BLOCK_16
Definition bt_audio_hal_interface.h:128
@ BT_AUDIO_A2DP_SBC_BLOCK_12
Definition bt_audio_hal_interface.h:127
@ BT_AUDIO_A2DP_SBC_BLOCK_ALL
Definition bt_audio_hal_interface.h:129
@ BT_AUDIO_A2DP_SBC_SNR
Definition bt_audio_hal_interface.h:133
@ BT_AUDIO_A2DP_SBC_SUBBAND_4
Definition bt_audio_hal_interface.h:130
@ BT_AUDIO_A2DP_SBC_LOUDNESS
Definition bt_audio_hal_interface.h:134
@ BT_AUDIO_A2DP_SBC_BLOCK_8
Definition bt_audio_hal_interface.h:126
@ BT_AUDIO_PARAM_A2DP_CODEC
Definition bt_audio_hal_interface.h:55
@ BT_AUDIO_PARAM_AVRCP_VOLUME
Definition bt_audio_hal_interface.h:57
@ BT_AUDIO_A2DP_SBC_CHMODE_JOINT_STEREO
Definition bt_audio_hal_interface.h:113
@ BT_AUDIO_A2DP_SBC_SF_48000
Definition bt_audio_hal_interface.h:108
@ BT_AUDIO_A2DP_SBC_SF_44100
Definition bt_audio_hal_interface.h:107
@ BT_AUDIO_A2DP_SBC_SF_32000
Definition bt_audio_hal_interface.h:106
@ BT_AUDIO_A2DP_SBC_CHMODE_MONO
Definition bt_audio_hal_interface.h:110
@ BT_AUDIO_A2DP_SBC_SF_16000
Definition bt_audio_hal_interface.h:105
@ BT_AUDIO_A2DP_SBC_CHMODE_STEREO
Definition bt_audio_hal_interface.h:112
@ BT_AUDIO_A2DP_SBC_CHMODE_DUAL_CHANNEL
Definition bt_audio_hal_interface.h:111
@ BT_AUDIO_A2DP_SBC_CHMODE_ALL
Definition bt_audio_hal_interface.h:114
@ BT_AUDIO_A2DP_SBC_SF_ALL
Definition bt_audio_hal_interface.h:109
@ BT_AUDIO_PORT_MAX
Definition bt_audio_hal_interface.h:414
@ A2DP
Definition bt_audio_hal_interface.h:411
@ SCO_IN
Definition bt_audio_hal_interface.h:412
@ SCO_OUT
Definition bt_audio_hal_interface.h:413
osal_u8 type
Definition oal_net.h:0
A2DP 编码格式参数定义。
Definition bt_audio_hal_interface.h:305
td_u8 codec_type
Definition bt_audio_hal_interface.h:306
td_u16 payload
Definition bt_audio_hal_interface.h:310
td_u8 cap_len
Definition bt_audio_hal_interface.h:308
MPEG4 AAC ISO 14496-3编码格式信息。
Definition bt_audio_hal_interface.h:348
td_u8 rfa
Definition bt_audio_hal_interface.h:353
td_u32 bit_rate
Definition bt_audio_hal_interface.h:350
td_u32 sample_frequency
Definition bt_audio_hal_interface.h:349
td_u8 channels
Definition bt_audio_hal_interface.h:351
td_u8 object_type
Definition bt_audio_hal_interface.h:352
td_u8 vbr
Definition bt_audio_hal_interface.h:354
SBC编码格式信息。
Definition bt_audio_hal_interface.h:324
td_u32 sample_frequency
Definition bt_audio_hal_interface.h:325
td_u8 subband
Definition bt_audio_hal_interface.h:331
td_u8 min_bitpool
Definition bt_audio_hal_interface.h:335
td_u8 block_length
Definition bt_audio_hal_interface.h:329
td_u8 alloc_method
Definition bt_audio_hal_interface.h:333
td_u8 chnl_mode
Definition bt_audio_hal_interface.h:327
td_u8 max_bitpool
Definition bt_audio_hal_interface.h:337
A2DP流参数变更事件数据。
Definition bt_audio_hal_interface.h:398
td_pvoid stream_hdl
Definition bt_audio_hal_interface.h:399
bt_a2dp_codec_param codec
Definition bt_audio_hal_interface.h:400
A2DP流打开事件数据。
Definition bt_audio_hal_interface.h:382
td_u16 frame_size
Definition bt_audio_hal_interface.h:385
td_u8 num_frame
Definition bt_audio_hal_interface.h:386
td_u16 stream_mtu
Definition bt_audio_hal_interface.h:384
td_u16 pad1
Definition bt_audio_hal_interface.h:388
td_pvoid stream_hdl
Definition bt_audio_hal_interface.h:383
td_u8 pad
Definition bt_audio_hal_interface.h:387
音频端口参数。
Definition bt_audio_hal_interface.h:424
td_u32 share_mem_id
Definition bt_audio_hal_interface.h:428
bt_audio_port_type port_type
Definition bt_audio_hal_interface.h:425
void * td_pvoid
Definition td_type.h:54
unsigned short td_u16
Definition td_type.h:37
unsigned char td_u8
Definition td_type.h:36
void td_void
Definition td_type.h:49
unsigned int td_u32
Definition td_type.h:38
Definition hal_uart_v151_regs_def.h:38