Zephyr Project API  3.3.0
A Scalable Open Source RTOS
bap.h
Go to the documentation of this file.
1
10#ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_BAP_
11#define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_BAP_
12#include <zephyr/types.h>
14
15#if defined(CONFIG_BT_BAP_SCAN_DELEGATOR)
16#define BT_BAP_SCAN_DELEGATOR_MAX_METADATA_LEN CONFIG_BT_BAP_SCAN_DELEGATOR_MAX_METADATA_LEN
17#define BT_BAP_SCAN_DELEGATOR_MAX_SUBGROUPS CONFIG_BT_BAP_SCAN_DELEGATOR_MAX_SUBGROUPS
18#else
19#define BT_BAP_SCAN_DELEGATOR_MAX_METADATA_LEN 0
20#define BT_BAP_SCAN_DELEGATOR_MAX_SUBGROUPS 0
21#endif
22
23#define BT_BAP_BROADCAST_CODE_SIZE 16
24
25#define BT_BAP_PA_STATE_NOT_SYNCED 0x00
26#define BT_BAP_PA_STATE_INFO_REQ 0x01
27#define BT_BAP_PA_STATE_SYNCED 0x02
28#define BT_BAP_PA_STATE_FAILED 0x03
29#define BT_BAP_PA_STATE_NO_PAST 0x04
30
31#define BT_BAP_BIG_ENC_STATE_NO_ENC 0x00
32#define BT_BAP_BIG_ENC_STATE_BCODE_REQ 0x01
33#define BT_BAP_BIG_ENC_STATE_DEC 0x02
34#define BT_BAP_BIG_ENC_STATE_BAD_CODE 0x03
35
36#define BT_BAP_BASS_ERR_OPCODE_NOT_SUPPORTED 0x80
37#define BT_BAP_BASS_ERR_INVALID_SRC_ID 0x81
38
39#define BT_BAP_PA_INTERVAL_UNKNOWN 0xFFFF
40
41#define BT_BAP_BROADCAST_MAX_ID 0xFFFFFF
42
43#define BT_BAP_BIS_SYNC_NO_PREF 0xFFFFFFFF
44
45/* TODO: Replace with struct bt_audio_base_subgroup */
51};
52
53/* TODO: Only expose this as an opaque type */
61 uint32_t broadcast_id; /* 24 bits */
65};
66
68 void (*pa_synced)(struct bt_bap_scan_delegator_recv_state *recv_state,
69 const struct bt_le_per_adv_sync_synced_info *info);
70 void (*pa_term)(struct bt_bap_scan_delegator_recv_state *recv_state,
71 const struct bt_le_per_adv_sync_term_info *info);
72 void (*pa_recv)(struct bt_bap_scan_delegator_recv_state *recv_state,
73 const struct bt_le_per_adv_sync_recv_info *info,
74 struct net_buf_simple *buf);
75 void (*biginfo)(struct bt_bap_scan_delegator_recv_state *recv_state,
76 const struct bt_iso_biginfo *biginfo);
77};
78
85
98 uint8_t encrypted);
99
100/******************************** CLIENT API ********************************/
101
111typedef void (*bt_bap_broadcast_assistant_discover_cb)(struct bt_conn *conn,
112 int err,
113 uint8_t recv_state_count);
114
125 uint32_t broadcast_id);
126
137 struct bt_conn *conn, int err,
139
147typedef void (*bt_bap_broadcast_assistant_recv_state_rem_cb)(struct bt_conn *conn,
148 int err,
149 uint8_t src_id);
150
157typedef void (*bt_bap_broadcast_assistant_write_cb)(struct bt_conn *conn,
158 int err);
159
165
172};
173
183int bt_bap_broadcast_assistant_discover(struct bt_conn *conn);
184
203 bool start_scan);
204
211int bt_bap_broadcast_assistant_scan_stop(struct bt_conn *conn);
212
217
238};
239
248int bt_bap_broadcast_assistant_add_src(struct bt_conn *conn,
250
267};
268
276int bt_bap_broadcast_assistant_mod_src(struct bt_conn *conn,
278
288 struct bt_conn *conn, uint8_t src_id,
289 uint8_t broadcast_code[BT_BAP_BROADCAST_CODE_SIZE]);
290
298int bt_bap_broadcast_assistant_rem_src(struct bt_conn *conn, uint8_t src_id);
299
309 uint8_t idx);
310#endif /* ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_BAP_ */
int bt_bap_broadcast_assistant_rem_src(struct bt_conn *conn, uint8_t src_id)
Remove a source from the server.
#define BT_BAP_SCAN_DELEGATOR_MAX_SUBGROUPS
Definition: bap.h:20
int bt_bap_broadcast_assistant_mod_src(struct bt_conn *conn, struct bt_bap_broadcast_assistant_mod_src_param *param)
Modify a source on the server.
void(* bt_bap_broadcast_assistant_discover_cb)(struct bt_conn *conn, int err, uint8_t recv_state_count)
Callback function for bt_bap_broadcast_assistant_discover.
Definition: bap.h:111
int bt_bap_broadcast_assistant_add_src(struct bt_conn *conn, struct bt_bap_broadcast_assistant_add_src_param *param)
Add a source on the server.
void(* bt_bap_broadcast_assistant_recv_state_rem_cb)(struct bt_conn *conn, int err, uint8_t src_id)
Callback function for when a receive state is removed.
Definition: bap.h:147
void(* bt_bap_broadcast_assistant_write_cb)(struct bt_conn *conn, int err)
Callback function for writes.
Definition: bap.h:157
int bt_bap_broadcast_assistant_set_broadcast_code(struct bt_conn *conn, uint8_t src_id, uint8_t broadcast_code[16])
Set a broadcast code to the specified receive state.
void bt_bap_scan_delegator_register_cb(struct bt_bap_scan_delegator_cb *cb)
Register the callbacks for the Basic Audio Profile Scan Delegator.
#define BT_BAP_BROADCAST_CODE_SIZE
Definition: bap.h:23
int bt_bap_broadcast_assistant_scan_stop(struct bt_conn *conn)
Stop remote scanning for BISes for a server.
void(* bt_bap_broadcast_assistant_scan_cb)(const struct bt_le_scan_recv_info *info, uint32_t broadcast_id)
Callback function for Broadcast Audio Scan Service client scan results.
Definition: bap.h:124
int bt_bap_broadcast_assistant_read_recv_state(struct bt_conn *conn, uint8_t idx)
Read the specified receive state from the server.
#define BT_BAP_SCAN_DELEGATOR_MAX_METADATA_LEN
Definition: bap.h:19
int bt_bap_broadcast_assistant_scan_start(struct bt_conn *conn, bool start_scan)
Scan start for BISes for a remote server.
int bt_bap_broadcast_assistant_discover(struct bt_conn *conn)
Discover Broadcast Audio Scan Service on the server.
int bt_bap_scan_delegator_set_sync_state(uint8_t src_id, uint8_t pa_sync_state, uint32_t bis_synced[0], uint8_t encrypted)
Set the sync state of a receive state in the server.
void(* bt_bap_broadcast_assistant_recv_state_cb)(struct bt_conn *conn, int err, const struct bt_bap_scan_delegator_recv_state *state)
Callback function for when a receive state is read or updated.
Definition: bap.h:136
void bt_bap_broadcast_assistant_register_cb(struct bt_bap_broadcast_assistant_cb *cb)
Registers the callbacks used by Broadcast Audio Scan Service client.
Bluetooth connection handling.
state
Definition: parser_state.h:29
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
Definition: addr.h:48
uint8_t num_subgroups
Definition: bap.h:235
uint8_t pa_sync
Definition: bap.h:225
bt_addr_le_t addr
Definition: bap.h:221
uint8_t adv_sid
Definition: bap.h:223
uint16_t pa_interval
Periodic advertising interval in milliseconds.
Definition: bap.h:233
struct bt_bap_scan_delegator_subgroup * subgroups
Definition: bap.h:237
uint32_t broadcast_id
Definition: bap.h:227
Definition: bap.h:160
bt_bap_broadcast_assistant_scan_cb scan
Definition: bap.h:162
bt_bap_broadcast_assistant_write_cb mod_src
Definition: bap.h:169
bt_bap_broadcast_assistant_write_cb rem_src
Definition: bap.h:171
bt_bap_broadcast_assistant_write_cb add_src
Definition: bap.h:168
bt_bap_broadcast_assistant_write_cb scan_stop
Definition: bap.h:167
bt_bap_broadcast_assistant_recv_state_cb recv_state
Definition: bap.h:163
bt_bap_broadcast_assistant_write_cb broadcast_code
Definition: bap.h:170
bt_bap_broadcast_assistant_write_cb scan_start
Definition: bap.h:166
bt_bap_broadcast_assistant_recv_state_rem_cb recv_state_removed
Definition: bap.h:164
bt_bap_broadcast_assistant_discover_cb discover
Definition: bap.h:161
uint8_t num_subgroups
Definition: bap.h:264
uint8_t pa_sync
Definition: bap.h:256
uint8_t src_id
Definition: bap.h:254
struct bt_bap_scan_delegator_subgroup * subgroups
Definition: bap.h:266
uint16_t pa_interval
Periodic advertising interval.
Definition: bap.h:262
Definition: bap.h:67
void(* biginfo)(struct bt_bap_scan_delegator_recv_state *recv_state, const struct bt_iso_biginfo *biginfo)
Definition: bap.h:75
void(* pa_recv)(struct bt_bap_scan_delegator_recv_state *recv_state, const struct bt_le_per_adv_sync_recv_info *info, struct net_buf_simple *buf)
Definition: bap.h:72
void(* pa_term)(struct bt_bap_scan_delegator_recv_state *recv_state, const struct bt_le_per_adv_sync_term_info *info)
Definition: bap.h:70
void(* pa_synced)(struct bt_bap_scan_delegator_recv_state *recv_state, const struct bt_le_per_adv_sync_synced_info *info)
Definition: bap.h:68
uint8_t src_id
Definition: bap.h:55
uint8_t bad_code[16]
Definition: bap.h:62
bt_addr_le_t addr
Definition: bap.h:56
uint8_t req_pa_sync_value
Definition: bap.h:58
uint8_t adv_sid
Definition: bap.h:57
uint8_t encrypt_state
Definition: bap.h:60
uint8_t num_subgroups
Definition: bap.h:63
uint32_t broadcast_id
Definition: bap.h:61
struct bt_bap_scan_delegator_subgroup subgroups[0]
Definition: bap.h:64
uint8_t pa_sync_state
Definition: bap.h:59
Definition: bap.h:46
uint8_t metadata_len
Definition: bap.h:49
uint8_t metadata[0]
Definition: bap.h:50
uint32_t bis_sync
Definition: bap.h:47
uint32_t requested_bis_sync
Definition: bap.h:48
Definition: iso.h:417
Definition: bluetooth.h:1235
Definition: bluetooth.h:1192
Definition: bluetooth.h:1224
Definition: bluetooth.h:1789
Simple network buffer representation.
Definition: buf.h:82