10#ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_BASS_
11#define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_BASS_
15#if IS_ENABLED(CONFIG_BT_BASS)
16#define BT_BASS_MAX_METADATA_LEN CONFIG_BT_BASS_MAX_METADATA_LEN
17#define BT_BASS_MAX_SUBGROUPS CONFIG_BT_BASS_MAX_SUBGROUPS
19#define BT_BASS_MAX_METADATA_LEN 0
20#define BT_BASS_MAX_SUBGROUPS 0
23#define BT_BASS_BROADCAST_CODE_SIZE 16
25#define BT_BASS_PA_STATE_NOT_SYNCED 0x00
26#define BT_BASS_PA_STATE_INFO_REQ 0x01
27#define BT_BASS_PA_STATE_SYNCED 0x02
28#define BT_BASS_PA_STATE_FAILED 0x03
29#define BT_BASS_PA_STATE_NO_PAST 0x04
31#define BT_BASS_BIG_ENC_STATE_NO_ENC 0x00
32#define BT_BASS_BIG_ENC_STATE_BCODE_REQ 0x01
33#define BT_BASS_BIG_ENC_STATE_DEC 0x02
34#define BT_BASS_BIG_ENC_STATE_BAD_CODE 0x03
36#define BT_BASS_ERR_OPCODE_NOT_SUPPORTED 0x80
37#define BT_BASS_ERR_INVALID_SRC_ID 0x81
39#define BT_BASS_PA_INTERVAL_UNKNOWN 0xFFFF
41#define BT_BASS_BROADCAST_MAX_ID 0xFFFFFF
43#define BT_BASS_BIS_SYNC_NO_PREF 0xFFFFFFFF
void(* bt_bass_client_recv_state_cb)(struct bt_conn *conn, int err, const struct bt_bass_recv_state *state)
Callback function for when a receive state is read or updated.
Definition: bass.h:132
int bt_bass_client_add_src(struct bt_conn *conn, struct bt_bass_add_src_param *param)
Add a source on the server.
int bt_bass_client_discover(struct bt_conn *conn)
Discover Broadcast Audio Scan Service on the server.
#define BT_BASS_BROADCAST_CODE_SIZE
Definition: bass.h:23
void(* bt_bass_client_write_cb)(struct bt_conn *conn, int err)
Callback function for writes.
Definition: bass.h:151
int bt_bass_client_scan_start(struct bt_conn *conn, bool start_scan)
Scan start for BISes for a remote server.
void(* bt_bass_client_recv_state_rem_cb)(struct bt_conn *conn, int err, uint8_t src_id)
Callback function for when a receive state is removed.
Definition: bass.h:142
int bt_bass_client_read_recv_state(struct bt_conn *conn, uint8_t idx)
Read the specified receive state from the server.
int bt_bass_client_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_bass_register_cb(struct bt_bass_cb *cb)
Registers the callbacks used by BASS.
void(* bt_bass_client_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: bass.h:120
void bt_bass_client_register_cb(struct bt_bass_client_cb *cb)
Registers the callbacks used by Broadcast Audio Scan Service client.
#define BT_BASS_MAX_SUBGROUPS
Definition: bass.h:20
int bt_bass_client_rem_src(struct bt_conn *conn, uint8_t src_id)
Remove a source from the server.
int bt_bass_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.
int bt_bass_client_scan_stop(struct bt_conn *conn)
Stop remote scanning for BISes for a server.
int bt_bass_client_mod_src(struct bt_conn *conn, struct bt_bass_mod_src_param *param)
Modify a source on the server.
void(* bt_bass_client_discover_cb)(struct bt_conn *conn, int err, uint8_t recv_state_count)
Callback function for bt_bass_client_discover.
Definition: bass.h:108
#define BT_BASS_MAX_METADATA_LEN
Definition: bass.h:19
Bluetooth connection handling.
state
Definition: http_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
struct bt_bass_subgroup * subgroups
Definition: bass.h:229
uint32_t broadcast_id
Definition: bass.h:219
uint8_t adv_sid
Definition: bass.h:215
bt_addr_le_t addr
Definition: bass.h:213
uint8_t num_subgroups
Definition: bass.h:227
uint8_t pa_sync
Definition: bass.h:217
uint16_t pa_interval
Periodic advertising interval in milliseconds.
Definition: bass.h:225
void(* biginfo)(struct bt_bass_recv_state *recv_state, const struct bt_iso_biginfo *biginfo)
Definition: bass.h:74
void(* pa_term)(struct bt_bass_recv_state *recv_state, const struct bt_le_per_adv_sync_term_info *info)
Definition: bass.h:69
void(* pa_recv)(struct bt_bass_recv_state *recv_state, const struct bt_le_per_adv_sync_recv_info *info, struct net_buf_simple *buf)
Definition: bass.h:71
void(* pa_synced)(struct bt_bass_recv_state *recv_state, const struct bt_le_per_adv_sync_synced_info *info)
Definition: bass.h:67
bt_bass_client_discover_cb discover
Definition: bass.h:154
bt_bass_client_recv_state_cb recv_state
Definition: bass.h:156
bt_bass_client_write_cb mod_src
Definition: bass.h:162
bt_bass_client_write_cb rem_src
Definition: bass.h:164
bt_bass_client_write_cb scan_stop
Definition: bass.h:160
bt_bass_client_recv_state_rem_cb recv_state_removed
Definition: bass.h:157
bt_bass_client_write_cb scan_start
Definition: bass.h:159
bt_bass_client_write_cb add_src
Definition: bass.h:161
bt_bass_client_write_cb broadcast_code
Definition: bass.h:163
bt_bass_client_scan_cb scan
Definition: bass.h:155
uint8_t pa_sync
Definition: bass.h:248
uint16_t pa_interval
Periodic advertising interval.
Definition: bass.h:254
uint8_t src_id
Definition: bass.h:246
uint8_t num_subgroups
Definition: bass.h:256
struct bt_bass_subgroup * subgroups
Definition: bass.h:258
uint8_t num_subgroups
Definition: bass.h:62
uint8_t pa_sync_state
Definition: bass.h:58
uint8_t adv_sid
Definition: bass.h:56
uint8_t bad_code[16]
Definition: bass.h:61
bt_addr_le_t addr
Definition: bass.h:55
uint8_t req_pa_sync_value
Definition: bass.h:57
uint32_t broadcast_id
Definition: bass.h:60
struct bt_bass_subgroup subgroups[0]
Definition: bass.h:63
uint8_t src_id
Definition: bass.h:54
uint8_t encrypt_state
Definition: bass.h:59
uint32_t requested_bis_sync
Definition: bass.h:47
uint8_t metadata_len
Definition: bass.h:48
uint8_t metadata[0]
Definition: bass.h:49
uint32_t bis_sync
Definition: bass.h:46
Definition: bluetooth.h:1232
Definition: bluetooth.h:1189
Definition: bluetooth.h:1221
Definition: bluetooth.h:1756
Simple network buffer representation.
Definition: buf.h:82