Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
bap.h
Go to the documentation of this file.
1
10
11#ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_BAP_
12#define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_BAP_
13
26
27#include <stdbool.h>
28#include <stddef.h>
29#include <stdint.h>
30
31#include <zephyr/autoconf.h>
40#include <zephyr/net_buf.h>
41#include <zephyr/sys/slist.h>
43
44#ifdef __cplusplus
45extern "C" {
46#endif
47
49#define BT_BAP_BASS_MAX_SUBGROUPS \
50 COND_CODE_1(CONFIG_BT_AUDIO, (CONFIG_BT_BAP_BASS_MAX_SUBGROUPS), (0))
51
53#define BT_BASE_MAX_SIZE (UINT8_MAX - 1 /* type */ - BT_UUID_SIZE_16)
54
56#define BT_BAP_INVALID_BROADCAST_ID 0xFFFFFFFFU
57
59#define BT_BAP_PD_UNSET 0xFFFFFFFFU
60
69#define BT_BAP_ADV_PARAM_CONN_QUICK \
70 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONN | BT_LE_ADV_OPT_EXT_ADV, BT_GAP_MS_TO_ADV_INTERVAL(20), \
71 BT_GAP_MS_TO_ADV_INTERVAL(30), NULL)
72
78#define BT_BAP_ADV_PARAM_CONN_REDUCED \
79 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONN | BT_LE_ADV_OPT_EXT_ADV, \
80 BT_GAP_MS_TO_ADV_INTERVAL(150), BT_GAP_MS_TO_ADV_INTERVAL(150), NULL)
81
90#define BT_BAP_CONN_PARAM_SHORT_7_5 \
91 BT_LE_CONN_PARAM(BT_GAP_US_TO_CONN_INTERVAL(7500), BT_GAP_MS_TO_CONN_INTERVAL(30), 0, \
92 BT_GAP_MS_TO_CONN_TIMEOUT(4000))
93
102#define BT_BAP_CONN_PARAM_SHORT_10 \
103 BT_LE_CONN_PARAM(BT_GAP_MS_TO_CONN_INTERVAL(10), BT_GAP_MS_TO_CONN_INTERVAL(30), 0, \
104 BT_GAP_MS_TO_CONN_TIMEOUT(4000))
105
111#define BT_BAP_CONN_PARAM_RELAXED \
112 BT_LE_CONN_PARAM(BT_GAP_MS_TO_CONN_INTERVAL(50), BT_GAP_MS_TO_CONN_INTERVAL(70), 0, \
113 BT_GAP_MS_TO_CONN_TIMEOUT(4000))
114
121#define BT_BAP_ADV_PARAM_BROADCAST_FAST \
122 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV, BT_GAP_MS_TO_ADV_INTERVAL(60), \
123 BT_GAP_MS_TO_ADV_INTERVAL(60), NULL)
124
131#define BT_BAP_ADV_PARAM_BROADCAST_SLOW \
132 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV, BT_GAP_MS_TO_ADV_INTERVAL(150), \
133 BT_GAP_MS_TO_ADV_INTERVAL(150), NULL)
134
141#define BT_BAP_PER_ADV_PARAM_BROADCAST_FAST \
142 BT_LE_PER_ADV_PARAM(BT_GAP_MS_TO_PER_ADV_INTERVAL(60), BT_GAP_MS_TO_PER_ADV_INTERVAL(60), \
143 BT_LE_PER_ADV_OPT_NONE)
144
151#define BT_BAP_PER_ADV_PARAM_BROADCAST_SLOW \
152 BT_LE_PER_ADV_PARAM(BT_GAP_MS_TO_PER_ADV_INTERVAL(150), \
153 BT_GAP_MS_TO_PER_ADV_INTERVAL(150), BT_LE_PER_ADV_OPT_NONE)
154
163#define BT_BAP_BASS_VALID_BIT_BITFIELD(_bis_bitfield) \
164 ((_bis_bitfield) == 0U || (_bis_bitfield) == BT_BAP_BIS_SYNC_NO_PREF || \
165 BT_ISO_VALID_BIS_BITFIELD(_bis_bitfield))
166
178#define BT_BAP_QOS_CFG(_interval, _framing, _phy, _sdu, _rtn, _latency, _pd) \
179 ((struct bt_bap_qos_cfg){ \
180 .interval = _interval, \
181 .framing = _framing, \
182 .phy = _phy, \
183 .sdu = _sdu, \
184 .rtn = _rtn, \
185 IF_ENABLED(UTIL_OR(IS_ENABLED(CONFIG_BT_BAP_BROADCAST_SOURCE), \
186 IS_ENABLED(CONFIG_BT_BAP_UNICAST)), \
187 (.latency = _latency,)) \
188 .pd = _pd, \
189 })
190
198
200enum {
207};
208
218#define BT_BAP_QOS_CFG_UNFRAMED(_interval, _sdu, _rtn, _latency, _pd) \
219 BT_BAP_QOS_CFG(_interval, BT_BAP_QOS_CFG_FRAMING_UNFRAMED, BT_BAP_QOS_CFG_2M, _sdu, _rtn, \
220 _latency, _pd)
221
231#define BT_BAP_QOS_CFG_FRAMED(_interval, _sdu, _rtn, _latency, _pd) \
232 BT_BAP_QOS_CFG(_interval, BT_BAP_QOS_CFG_FRAMING_FRAMED, BT_BAP_QOS_CFG_2M, _sdu, _rtn, \
233 _latency, _pd)
234
248
256 struct {
259
267
275
282
283#if defined(CONFIG_BT_BAP_BROADCAST_SOURCE) || defined(CONFIG_BT_BAP_UNICAST) || \
284 defined(__DOXYGEN__)
291#endif /* CONFIG_BT_BAP_BROADCAST_SOURCE || CONFIG_BT_BAP_UNICAST */
292
299
300#if defined(CONFIG_BT_ISO_TEST_PARAMS) || defined(__DOXYGEN__)
313
320
329#endif /* CONFIG_BT_ISO_TEST_PARAMS */
330 };
331};
332
345#define BT_BAP_QOS_CFG_PREF(_unframed_supported, _phy, _rtn, _latency, _pd_min, _pd_max, \
346 _pref_pd_min, _pref_pd_max) \
347 { \
348 .unframed_supported = _unframed_supported, .phy = _phy, .rtn = _rtn, \
349 .latency = _latency, .pd_min = _pd_min, .pd_max = _pd_max, \
350 .pref_pd_min = _pref_pd_min, .pref_pd_max = _pref_pd_max, \
351 }
352
420
438
453
462
464#define BT_BAP_PA_INTERVAL_UNKNOWN 0xFFFF
465
472#define BT_BAP_BIS_SYNC_NO_PREF 0xFFFFFFFF
474#define BT_BAP_BIS_SYNC_FAILED 0xFFFFFFFF
475
499
538
570
622
630#define BT_BAP_ASCS_RSP(c, r) (struct bt_bap_ascs_rsp) { .code = c, .reason = r }
631
637
643
649
654struct bt_bap_ep;
655
660
663
664#if defined(CONFIG_BT_AUDIO_CODEC_CFG_MAX_METADATA_SIZE) || defined(__DOXYGEN__)
666 uint8_t metadata[CONFIG_BT_AUDIO_CODEC_CFG_MAX_METADATA_SIZE];
667#endif /* CONFIG_BT_AUDIO_CODEC_CFG_MAX_METADATA_SIZE */
668};
669
707
723 void (*recv_state_updated)(struct bt_conn *conn,
724 const struct bt_bap_scan_delegator_recv_state *recv_state);
725
742 int (*pa_sync_req)(struct bt_conn *conn,
743 const struct bt_bap_scan_delegator_recv_state *recv_state,
744 bool past_avail, uint16_t pa_interval);
745
759 int (*pa_sync_term_req)(struct bt_conn *conn,
760 const struct bt_bap_scan_delegator_recv_state *recv_state);
761
773 void (*broadcast_code)(struct bt_conn *conn,
774 const struct bt_bap_scan_delegator_recv_state *recv_state,
797 int (*bis_sync_req)(struct bt_conn *conn,
798 const struct bt_bap_scan_delegator_recv_state *recv_state,
809 void (*scanning_state)(struct bt_conn *conn, bool is_scanning);
823 int (*add_source)(struct bt_conn *conn,
824 const struct bt_bap_scan_delegator_recv_state *recv_state);
825
839 int (*modify_source)(struct bt_conn *conn,
840 const struct bt_bap_scan_delegator_recv_state *recv_state);
841
855 int (*remove_source)(struct bt_conn *conn, uint8_t src_id);
856};
857
862
865
868
871
874
877
882
885};
886
896int bt_bap_ep_get_info(const struct bt_bap_ep *ep, struct bt_bap_ep_info *info);
897
912struct bt_conn *bt_bap_ep_get_conn(const struct bt_bap_ep *ep);
913
924 struct bt_conn *conn;
925
927 struct bt_bap_ep *ep;
928
935
938
941
944
951
953 void *group;
954
955#if defined(CONFIG_BT_BAP_DEBUG_STREAM_SEQ_NUM) || defined(__DOXYGEN__)
957 uint16_t _prev_seq_num;
958#endif /* CONFIG_BT_BAP_DEBUG_STREAM_SEQ_NUM */
959
962 sys_snode_t _node;
964};
965
968#if defined(CONFIG_BT_BAP_UNICAST) || defined(__DOXYGEN__)
977 void (*configured)(struct bt_bap_stream *stream, const struct bt_bap_qos_cfg_pref *pref);
978
987 void (*qos_set)(struct bt_bap_stream *stream);
988
996 void (*enabled)(struct bt_bap_stream *stream);
997
1006 void (*metadata_updated)(struct bt_bap_stream *stream);
1007
1015 void (*disabled)(struct bt_bap_stream *stream);
1016
1025 void (*released)(struct bt_bap_stream *stream);
1026#endif /* CONFIG_BT_BAP_UNICAST */
1027
1036 void (*started)(struct bt_bap_stream *stream);
1037
1046 void (*stopped)(struct bt_bap_stream *stream, uint8_t reason);
1047
1048#if defined(CONFIG_BT_AUDIO_RX) || defined(__DOXYGEN__)
1060 void (*recv)(struct bt_bap_stream *stream, const struct bt_iso_recv_info *info,
1061 struct net_buf *buf);
1062#endif /* CONFIG_BT_AUDIO_RX */
1063
1064#if defined(CONFIG_BT_AUDIO_TX) || defined(__DOXYGEN__)
1077 void (*sent)(struct bt_bap_stream *stream);
1078#endif /* CONFIG_BT_AUDIO_TX */
1079
1092 void (*connected)(struct bt_bap_stream *stream);
1093
1106 void (*disconnected)(struct bt_bap_stream *stream, uint8_t reason);
1107};
1108
1124
1134
1148int bt_bap_stream_config(struct bt_conn *conn, struct bt_bap_stream *stream, struct bt_bap_ep *ep,
1149 const struct bt_audio_codec_cfg *codec_cfg);
1150
1165 const struct bt_audio_codec_cfg *codec_cfg);
1166
1180
1195int bt_bap_stream_enable(struct bt_bap_stream *stream, const uint8_t meta[], size_t meta_len);
1196
1208int bt_bap_stream_metadata(struct bt_bap_stream *stream, const uint8_t meta[], size_t meta_len);
1209
1223
1248
1272
1297
1312
1327int bt_bap_stream_send(struct bt_bap_stream *stream, struct net_buf *buf, uint16_t seq_num);
1328
1345int bt_bap_stream_send_ts(struct bt_bap_stream *stream, struct net_buf *buf, uint16_t seq_num,
1346 uint32_t ts);
1347
1367
1373
1394 int (*config)(struct bt_conn *conn, const struct bt_bap_ep *ep, enum bt_audio_dir dir,
1395 const struct bt_audio_codec_cfg *codec_cfg, struct bt_bap_stream **stream,
1396 struct bt_bap_qos_cfg_pref *const pref, struct bt_bap_ascs_rsp *rsp);
1397
1414 int (*reconfig)(struct bt_bap_stream *stream, enum bt_audio_dir dir,
1415 const struct bt_audio_codec_cfg *codec_cfg,
1416 struct bt_bap_qos_cfg_pref *const pref, struct bt_bap_ascs_rsp *rsp);
1417
1431 int (*qos)(struct bt_bap_stream *stream, const struct bt_bap_qos_cfg *qos,
1432 struct bt_bap_ascs_rsp *rsp);
1433
1447 int (*enable)(struct bt_bap_stream *stream, const uint8_t meta[], size_t meta_len,
1448 struct bt_bap_ascs_rsp *rsp);
1449
1461 int (*start)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp);
1462
1476 int (*metadata)(struct bt_bap_stream *stream, const uint8_t meta[], size_t meta_len,
1477 struct bt_bap_ascs_rsp *rsp);
1478
1490 int (*disable)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp);
1491
1503 int (*stop)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp);
1504
1517 int (*release)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp);
1518};
1519
1531
1547
1561
1576
1587typedef bool (*bt_bap_ep_func_t)(struct bt_bap_ep *ep, void *user_data);
1588
1600int bt_bap_unicast_server_foreach_ep(struct bt_conn *conn, bt_bap_ep_func_t func, void *user_data);
1601
1613 const struct bt_audio_codec_cfg *codec_cfg,
1614 const struct bt_bap_qos_cfg_pref *qos_pref);
1615 /* End of group bt_bap_unicast_server */
1617
1623
1632
1646
1651
1654
1663
1664#if defined(CONFIG_BT_ISO_TEST_PARAMS) || defined(__DOXYGEN__)
1674
1684
1693#endif /* CONFIG_BT_ISO_TEST_PARAMS */
1694};
1695
1710 struct bt_bap_unicast_group **unicast_group);
1711
1728 const struct bt_bap_unicast_group_param *param);
1729
1751 size_t num_param);
1752
1764
1774 void *user_data);
1775
1789 void *user_data);
1790
1805
1816 struct bt_bap_unicast_group_info *info);
1817
1830 void (*location)(struct bt_conn *conn, enum bt_audio_dir dir, enum bt_audio_location loc);
1831
1842 void (*supported_contexts)(struct bt_conn *conn, enum bt_audio_context snk_ctx,
1843 enum bt_audio_context src_ctx);
1844
1855 void (*available_contexts)(struct bt_conn *conn, enum bt_audio_context snk_ctx,
1856 enum bt_audio_context src_ctx);
1857
1867 void (*config)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1868 enum bt_bap_ascs_reason reason);
1869
1882 void (*qos)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1883 enum bt_bap_ascs_reason reason);
1884
1895 void (*enable)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1896 enum bt_bap_ascs_reason reason);
1897
1910 void (*start)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1911 enum bt_bap_ascs_reason reason);
1912
1925 void (*stop)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1926 enum bt_bap_ascs_reason reason);
1927
1938 void (*disable)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1939 enum bt_bap_ascs_reason reason);
1940
1951 void (*metadata)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1952 enum bt_bap_ascs_reason reason);
1953
1964 void (*release)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1965 enum bt_bap_ascs_reason reason);
1966
1981 void (*pac_record)(struct bt_conn *conn, enum bt_audio_dir dir,
1982 const struct bt_audio_codec_cap *codec_cap);
1983
1995 void (*endpoint)(struct bt_conn *conn, enum bt_audio_dir dir, struct bt_bap_ep *ep);
1996
2009 void (*discover)(struct bt_conn *conn, int err, enum bt_audio_dir dir);
2010
2013 sys_snode_t _node;
2015};
2016
2027
2037
2048 /* End of group bt_bap_unicast_client */
2056
2058struct bt_bap_base_subgroup;
2060struct bt_bap_base;
2061
2071
2081
2090const struct bt_bap_base *bt_bap_base_get_base_from_ad(const struct bt_data *ad);
2091
2100int bt_bap_base_get_size(const struct bt_bap_base *base);
2101
2110int bt_bap_base_get_pres_delay(const struct bt_bap_base *base);
2111
2120int bt_bap_base_get_subgroup_count(const struct bt_bap_base *base);
2121
2131int bt_bap_base_get_bis_indexes(const struct bt_bap_base *base, uint32_t *bis_indexes);
2132
2144int bt_bap_base_foreach_subgroup(const struct bt_bap_base *base,
2145 bool (*func)(const struct bt_bap_base_subgroup *subgroup,
2146 void *user_data),
2147 void *user_data);
2148
2158int bt_bap_base_get_subgroup_codec_id(const struct bt_bap_base_subgroup *subgroup,
2159 struct bt_bap_base_codec_id *codec_id);
2160
2170int bt_bap_base_get_subgroup_codec_data(const struct bt_bap_base_subgroup *subgroup,
2171 uint8_t **data);
2172
2182int bt_bap_base_get_subgroup_codec_meta(const struct bt_bap_base_subgroup *subgroup,
2183 uint8_t **meta);
2184
2195int bt_bap_base_subgroup_codec_to_codec_cfg(const struct bt_bap_base_subgroup *subgroup,
2196 struct bt_audio_codec_cfg *codec_cfg);
2197
2206int bt_bap_base_get_subgroup_bis_count(const struct bt_bap_base_subgroup *subgroup);
2207
2217int bt_bap_base_subgroup_get_bis_indexes(const struct bt_bap_base_subgroup *subgroup,
2218 uint32_t *bis_indexes);
2219
2231int bt_bap_base_subgroup_foreach_bis(const struct bt_bap_base_subgroup *subgroup,
2232 bool (*func)(const struct bt_bap_base_subgroup_bis *bis,
2233 void *user_data),
2234 void *user_data);
2235
2250 struct bt_audio_codec_cfg *codec_cfg);
2251 /* End of group bt_bap_broadcast */
2253
2260
2272 void (*started)(struct bt_bap_broadcast_source *source);
2273
2280 void (*stopped)(struct bt_bap_broadcast_source *source, uint8_t reason);
2281
2284 sys_snode_t _node;
2286};
2287
2298
2309
2314
2315#if CONFIG_BT_AUDIO_CODEC_CFG_MAX_DATA_SIZE > 0 || defined(__DOXYGEN__)
2321 size_t data_len;
2322
2325#endif /* CONFIG_BT_AUDIO_CODEC_CFG_MAX_DATA_SIZE > 0 */
2326};
2327
2339
2344
2347
2350
2359
2362
2374
2375#if defined(CONFIG_BT_ISO_TEST_PARAMS) || defined(__DOXYGEN__)
2384
2393
2402#endif /* CONFIG_BT_ISO_TEST_PARAMS */
2403};
2404
2422 struct bt_bap_broadcast_source **source);
2423
2444 struct bt_bap_broadcast_source_param *param);
2445
2459 const uint8_t meta[], size_t meta_len);
2460
2473 struct bt_le_ext_adv *adv);
2474
2486
2498
2514 struct net_buf_simple *base_buf);
2515
2526 void *user_data);
2527
2541 void *user_data); /* End of bt_bap_broadcast_source */
2543
2550
2563 void (*base_recv)(struct bt_bap_broadcast_sink *sink, const struct bt_bap_base *base,
2564 size_t base_size);
2565
2578 void (*syncable)(struct bt_bap_broadcast_sink *sink, const struct bt_iso_biginfo *biginfo);
2579
2586 void (*started)(struct bt_bap_broadcast_sink *sink);
2587
2594 void (*stopped)(struct bt_bap_broadcast_sink *sink, uint8_t reason);
2595
2598 sys_snode_t _node;
2600};
2601
2616
2636 struct bt_bap_broadcast_sink **sink);
2637
2658 struct bt_bap_stream *streams[],
2659 const uint8_t broadcast_code[BT_ISO_BROADCAST_CODE_SIZE]);
2660
2672
2685 /* End of group bt_bap_broadcast_sink */
2687
2702
2712
2725 enum bt_bap_pa_state pa_state);
2726
2737
2766
2781
2804
2819
2834
2846 const struct bt_bap_scan_delegator_recv_state *recv_state, void *user_data);
2847
2855 void *user_data);
2856
2866 bt_bap_scan_delegator_state_func_t func, void *user_data);
2867
2868/******************************** CLIENT API ********************************/
2869
2877 int err);
2878
2894 void (*discover)(struct bt_conn *conn, int err,
2895 uint8_t recv_state_count);
2896
2906 void (*scan)(const struct bt_le_scan_recv_info *info,
2907 uint32_t broadcast_id);
2908
2918 void (*recv_state)(struct bt_conn *conn, int err,
2920
2927 void (*recv_state_removed)(struct bt_conn *conn, uint8_t src_id);
2928
2935 void (*scan_start)(struct bt_conn *conn, int err);
2936
2943 void (*scan_stop)(struct bt_conn *conn, int err);
2944
2951 void (*add_src)(struct bt_conn *conn, int err);
2952
2959 void (*mod_src)(struct bt_conn *conn, int err);
2960
2967 void (*broadcast_code)(struct bt_conn *conn, int err);
2968
2975 void (*rem_src)(struct bt_conn *conn, int err);
2976
2979 sys_snode_t _node;
2981};
2982
2999
3025 bool start_scan);
3026
3041
3052
3063
3064
3096
3111 struct bt_conn *conn, const struct bt_bap_broadcast_assistant_add_src_param *param);
3112
3134
3149 struct bt_conn *conn, const struct bt_bap_broadcast_assistant_mod_src_param *param);
3150
3166 struct bt_conn *conn, uint8_t src_id,
3167 const uint8_t broadcast_code[BT_ISO_BROADCAST_CODE_SIZE]);
3168
3183
3199 /* end of bt_bap */
3201
3202#ifdef __cplusplus
3203}
3204#endif
3205
3206#endif /* ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_BAP_ */
Bluetooth device address definitions and utilities.
Bluetooth Assigned Numbers, codes and identifiers.
Bluetooth Audio handling.
Bluetooth subsystem core APIs.
Bluetooth UUID handling.
Bluetooth connection handling.
Bluetooth Generic Access Profile defines and Assigned Numbers.
bt_audio_location
Location values for BT Audio.
Definition assigned_numbers.h:1361
bt_audio_metadata_type
Codec metadata type IDs.
Definition assigned_numbers.h:1280
bt_audio_context
Audio Context Type for Generic Audio.
Definition assigned_numbers.h:1151
bt_audio_dir
Audio direction from the perspective of the BAP Unicast Server / BAP Broadcast Sink.
Definition audio.h:317
int bt_bap_broadcast_sink_create(struct bt_le_per_adv_sync *pa_sync, uint32_t broadcast_id, struct bt_bap_broadcast_sink **sink)
Create a Broadcast Sink from a periodic advertising sync.
int bt_bap_broadcast_sink_stop(struct bt_bap_broadcast_sink *sink)
Stop audio broadcast sink.
int bt_bap_broadcast_sink_register_cb(struct bt_bap_broadcast_sink_cb *cb)
Register Broadcast sink callbacks.
int bt_bap_broadcast_sink_delete(struct bt_bap_broadcast_sink *sink)
Release a broadcast sink.
int bt_bap_broadcast_sink_sync(struct bt_bap_broadcast_sink *sink, uint32_t indexes_bitfield, struct bt_bap_stream *streams[], const uint8_t broadcast_code[0x10])
Sync to a broadcaster's audio.
int bt_bap_broadcast_source_delete(struct bt_bap_broadcast_source *source)
Delete audio broadcast source.
bool(* bt_bap_broadcast_source_foreach_stream_func_t)(struct bt_bap_stream *stream, void *user_data)
Callback function for bt_bap_broadcast_source_foreach_stream().
Definition bap.h:2525
int bt_bap_broadcast_source_stop(struct bt_bap_broadcast_source *source)
Stop audio broadcast source.
int bt_bap_broadcast_source_foreach_stream(struct bt_bap_broadcast_source *source, bt_bap_broadcast_source_foreach_stream_func_t func, void *user_data)
Iterate through all streams in a broadcast source.
int bt_bap_broadcast_source_reconfig(struct bt_bap_broadcast_source *source, struct bt_bap_broadcast_source_param *param)
Reconfigure audio broadcast source.
int bt_bap_broadcast_source_start(struct bt_bap_broadcast_source *source, struct bt_le_ext_adv *adv)
Start audio broadcast source.
int bt_bap_broadcast_source_register_cb(struct bt_bap_broadcast_source_cb *cb)
Registers callbacks for Broadcast Sources.
int bt_bap_broadcast_source_unregister_cb(struct bt_bap_broadcast_source_cb *cb)
Unregisters callbacks for Broadcast Sources.
int bt_bap_broadcast_source_create(struct bt_bap_broadcast_source_param *param, struct bt_bap_broadcast_source **source)
Create audio broadcast source.
int bt_bap_broadcast_source_get_base(struct bt_bap_broadcast_source *source, struct net_buf_simple *base_buf)
Get the Broadcast Audio Stream Endpoint of a broadcast source.
int bt_bap_broadcast_source_update_metadata(struct bt_bap_broadcast_source *source, const uint8_t meta[], size_t meta_len)
Modify the metadata of an audio broadcast source.
int bt_bap_base_get_subgroup_bis_count(const struct bt_bap_base_subgroup *subgroup)
Get the BIS count of a subgroup.
int bt_bap_base_get_subgroup_codec_data(const struct bt_bap_base_subgroup *subgroup, uint8_t **data)
Get the codec configuration data of a subgroup.
const struct bt_bap_base * bt_bap_base_get_base_from_ad(const struct bt_data *ad)
Generate a pointer to a BASE from periodic advertising data.
int bt_bap_base_subgroup_get_bis_indexes(const struct bt_bap_base_subgroup *subgroup, uint32_t *bis_indexes)
Get all BIS indexes of a subgroup.
int bt_bap_base_subgroup_foreach_bis(const struct bt_bap_base_subgroup *subgroup, bool(*func)(const struct bt_bap_base_subgroup_bis *bis, void *user_data), void *user_data)
Iterate on all BIS in the subgroup.
int bt_bap_base_get_size(const struct bt_bap_base *base)
Get the size of a BASE.
int bt_bap_base_foreach_subgroup(const struct bt_bap_base *base, bool(*func)(const struct bt_bap_base_subgroup *subgroup, void *user_data), void *user_data)
Iterate on all subgroups in the BASE.
int bt_bap_base_get_bis_indexes(const struct bt_bap_base *base, uint32_t *bis_indexes)
Get all BIS indexes of a BASE.
int bt_bap_base_subgroup_codec_to_codec_cfg(const struct bt_bap_base_subgroup *subgroup, struct bt_audio_codec_cfg *codec_cfg)
Store subgroup codec data in a Codec config parsing APIs.
int bt_bap_base_subgroup_bis_codec_to_codec_cfg(const struct bt_bap_base_subgroup_bis *bis, struct bt_audio_codec_cfg *codec_cfg)
Store BIS codec configuration data in a Codec config parsing APIs.
int bt_bap_base_get_subgroup_count(const struct bt_bap_base *base)
Get the subgroup count of a BASE.
int bt_bap_base_get_subgroup_codec_id(const struct bt_bap_base_subgroup *subgroup, struct bt_bap_base_codec_id *codec_id)
Get the codec ID of a subgroup.
int bt_bap_base_get_pres_delay(const struct bt_bap_base *base)
Get the presentation delay value of a BASE.
int bt_bap_base_get_subgroup_codec_meta(const struct bt_bap_base_subgroup *subgroup, uint8_t **meta)
Get the codec metadata of a subgroup.
int bt_bap_unicast_group_delete(struct bt_bap_unicast_group *unicast_group)
Delete audio unicast group.
int bt_bap_unicast_group_get_info(const struct bt_bap_unicast_group *unicast_group, struct bt_bap_unicast_group_info *info)
Return structure holding information of unicast group.
int bt_bap_unicast_group_add_streams(struct bt_bap_unicast_group *unicast_group, struct bt_bap_unicast_group_stream_pair_param params[], size_t num_param)
Add streams to a unicast group as a unicast client.
int bt_bap_unicast_group_create(struct bt_bap_unicast_group_param *param, struct bt_bap_unicast_group **unicast_group)
Create unicast group.
int bt_bap_unicast_group_reconfig(struct bt_bap_unicast_group *unicast_group, const struct bt_bap_unicast_group_param *param)
Reconfigure unicast group.
int bt_bap_unicast_client_discover(struct bt_conn *conn, enum bt_audio_dir dir)
Discover remote capabilities and endpoints.
int bt_bap_unicast_group_foreach_stream(struct bt_bap_unicast_group *unicast_group, bt_bap_unicast_group_foreach_stream_func_t func, void *user_data)
Iterate through all streams in a unicast group.
int bt_bap_unicast_client_register_cb(struct bt_bap_unicast_client_cb *cb)
Register unicast client callbacks.
int bt_bap_unicast_client_unregister_cb(struct bt_bap_unicast_client_cb *cb)
Unregister unicast client callbacks.
bool(* bt_bap_unicast_group_foreach_stream_func_t)(struct bt_bap_stream *stream, void *user_data)
Callback function for bt_bap_unicast_group_foreach_stream().
Definition bap.h:1773
int bt_bap_unicast_server_unregister(void)
Unregister the Unicast Server.
int bt_bap_unicast_server_register_cb(const struct bt_bap_unicast_server_cb *cb)
Register unicast server callbacks.
int bt_bap_unicast_server_config_ase(struct bt_conn *conn, struct bt_bap_stream *stream, const struct bt_audio_codec_cfg *codec_cfg, const struct bt_bap_qos_cfg_pref *qos_pref)
Initialize and configure a new ASE.
int bt_bap_unicast_server_register(const struct bt_bap_unicast_server_register_param *param)
Register the Unicast Server.
bool(* bt_bap_ep_func_t)(struct bt_bap_ep *ep, void *user_data)
The callback function called for each endpoint.
Definition bap.h:1587
int bt_bap_unicast_server_unregister_cb(const struct bt_bap_unicast_server_cb *cb)
Unregister unicast server callbacks.
int bt_bap_unicast_server_foreach_ep(struct bt_conn *conn, bt_bap_ep_func_t func, void *user_data)
Iterate through all endpoints of the given connection.
int bt_bap_broadcast_assistant_rem_src(struct bt_conn *conn, uint8_t src_id)
Remove a source from the server.
int bt_bap_stream_metadata(struct bt_bap_stream *stream, const uint8_t meta[], size_t meta_len)
Change Audio Stream Metadata.
int bt_bap_stream_disable(struct bt_bap_stream *stream)
Disable Audio Stream.
int bt_bap_stream_enable(struct bt_bap_stream *stream, const uint8_t meta[], size_t meta_len)
Enable Audio Stream.
bt_bap_bass_att_err
Broadcast Audio Scan Service (BASS) specific ATT error codes.
Definition bap.h:455
bt_bap_qos_cfg_framing
QoS Framing.
Definition bap.h:192
int bt_bap_scan_delegator_set_pa_state(uint8_t src_id, enum bt_bap_pa_state pa_state)
Set the periodic advertising sync state to syncing.
#define BT_BAP_BASS_MAX_SUBGROUPS
Maximum number of subgroups supported in the BAP Scan Delegator API.
Definition bap.h:49
int bt_bap_stream_get_tx_sync(struct bt_bap_stream *stream, struct bt_iso_tx_info *info)
Get ISO transmission timing info for a Basic Audio Profile stream.
void(* bt_bap_broadcast_assistant_write_cb)(struct bt_conn *conn, int err)
Callback function for writes.
Definition bap.h:2876
struct bt_conn * bt_bap_ep_get_conn(const struct bt_bap_ep *ep)
Get the pointer to the ACL connection of an endpoint.
bt_bap_big_enc_state
Broadcast Isochronous Group encryption state reported by the Scan Delegator.
Definition bap.h:440
int bt_bap_stream_send(struct bt_bap_stream *stream, struct net_buf *buf, uint16_t seq_num)
Send data to Audio stream without timestamp.
int bt_bap_broadcast_assistant_unregister_cb(struct bt_bap_broadcast_assistant_cb *cb)
Unregisters the callbacks used by the Broadcast Audio Scan Service client.
int bt_bap_scan_delegator_rem_src(uint8_t src_id)
Remove a receive state source.
int bt_bap_scan_delegator_add_src(const struct bt_bap_scan_delegator_add_src_param *param)
Add a receive state source locally.
int bt_bap_scan_delegator_unregister(void)
unregister the Basic Audio Profile Scan Delegator and BASS.
int bt_bap_scan_delegator_register(struct bt_bap_scan_delegator_cb *cb)
Register the Basic Audio Profile Scan Delegator and BASS.
int bt_bap_broadcast_assistant_scan_stop(struct bt_conn *conn)
Stop remote scanning for BISes for a server.
int bt_bap_stream_start(struct bt_bap_stream *stream)
Start Audio Stream.
int bt_bap_broadcast_assistant_read_recv_state(struct bt_conn *conn, uint8_t idx)
Read the specified receive state from the server.
int bt_bap_broadcast_assistant_scan_start(struct bt_conn *conn, bool start_scan)
Scan start for BISes for a remote server.
bt_bap_ascs_reason
Response Reasons.
Definition bap.h:546
bt_bap_ascs_rsp_code
Response Status Code.
Definition bap.h:506
int bt_bap_stream_send_ts(struct bt_bap_stream *stream, struct net_buf *buf, uint16_t seq_num, uint32_t ts)
Send data to Audio stream with timestamp.
int bt_bap_stream_connect(struct bt_bap_stream *stream)
Connect unicast audio stream.
int bt_bap_stream_reconfig(struct bt_bap_stream *stream, const struct bt_audio_codec_cfg *codec_cfg)
Reconfigure Audio Stream.
int bt_bap_broadcast_assistant_mod_src(struct bt_conn *conn, const struct bt_bap_broadcast_assistant_mod_src_param *param)
Modify a source on the server.
int bt_bap_stream_config(struct bt_conn *conn, struct bt_bap_stream *stream, struct bt_bap_ep *ep, const struct bt_audio_codec_cfg *codec_cfg)
Configure Audio Stream.
int bt_bap_stream_release(struct bt_bap_stream *stream)
Release Audio Stream.
void bt_bap_stream_cb_register(struct bt_bap_stream *stream, struct bt_bap_stream_ops *ops)
Register Audio callbacks for a stream.
int bt_bap_broadcast_assistant_discover(struct bt_conn *conn)
Discover Broadcast Audio Scan Service on the server.
void bt_bap_scan_delegator_foreach_state(bt_bap_scan_delegator_state_func_t func, void *user_data)
Iterate through all existing receive states.
int bt_bap_broadcast_assistant_register_cb(struct bt_bap_broadcast_assistant_cb *cb)
Registers the callbacks used by Broadcast Audio Scan Service client.
const struct bt_bap_scan_delegator_recv_state * bt_bap_scan_delegator_find_state(bt_bap_scan_delegator_state_func_t func, void *user_data)
Find and return a receive state based on a compare function.
int bt_bap_broadcast_assistant_set_broadcast_code(struct bt_conn *conn, uint8_t src_id, const uint8_t broadcast_code[0x10])
Set a broadcast code to the specified receive state.
int bt_bap_scan_delegator_mod_src(const struct bt_bap_scan_delegator_mod_src_param *param)
Add a receive state source locally.
bt_bap_pa_state
Periodic advertising state reported by the Scan Delegator.
Definition bap.h:422
int bt_bap_stream_qos(struct bt_conn *conn, struct bt_bap_unicast_group *group)
Configure Audio Stream QoS.
int bt_bap_broadcast_assistant_add_src(struct bt_conn *conn, const struct bt_bap_broadcast_assistant_add_src_param *param)
Add a source on the server.
int bt_bap_stream_stop(struct bt_bap_stream *stream)
Stop Audio Stream.
int bt_bap_ep_get_info(const struct bt_bap_ep *ep, struct bt_bap_ep_info *info)
Return structure holding information of audio stream endpoint.
bt_bap_ep_state
Endpoint states.
Definition bap.h:477
bool(* bt_bap_scan_delegator_state_func_t)(const struct bt_bap_scan_delegator_recv_state *recv_state, void *user_data)
Callback function for Scan Delegator receive state search functions.
Definition bap.h:2845
int bt_bap_scan_delegator_set_bis_sync_state(uint8_t src_id, uint32_t bis_synced[0])
Set the sync state of a receive state in the server.
@ BT_BAP_BASS_ERR_OPCODE_NOT_SUPPORTED
Opcode not supported.
Definition bap.h:457
@ BT_BAP_BASS_ERR_INVALID_SRC_ID
Invalid source ID supplied.
Definition bap.h:460
@ BT_BAP_QOS_CFG_FRAMING_FRAMED
Packets are always framed.
Definition bap.h:196
@ BT_BAP_QOS_CFG_FRAMING_UNFRAMED
Packets may be framed or unframed.
Definition bap.h:194
@ BT_BAP_BIG_ENC_STATE_BCODE_REQ
The Broadcast Isochronous Group broadcast code requested.
Definition bap.h:445
@ BT_BAP_BIG_ENC_STATE_NO_ENC
The Broadcast Isochronous Group not encrypted.
Definition bap.h:442
@ BT_BAP_BIG_ENC_STATE_BAD_CODE
The Broadcast Isochronous Group bad broadcast code.
Definition bap.h:451
@ BT_BAP_BIG_ENC_STATE_DEC
The Broadcast Isochronous Group decrypted.
Definition bap.h:448
@ BT_BAP_QOS_CFG_CODED
LE Coded PHY.
Definition bap.h:206
@ BT_BAP_QOS_CFG_2M
LE 2M PHY.
Definition bap.h:204
@ BT_BAP_QOS_CFG_1M
LE 1M PHY.
Definition bap.h:202
@ BT_BAP_ASCS_REASON_NONE
No reason.
Definition bap.h:548
@ BT_BAP_ASCS_REASON_PD
Presendation delay.
Definition bap.h:566
@ BT_BAP_ASCS_REASON_FRAMING
Framing.
Definition bap.h:556
@ BT_BAP_ASCS_REASON_CODEC_DATA
Codec configuration.
Definition bap.h:552
@ BT_BAP_ASCS_REASON_SDU
Maximum SDU size.
Definition bap.h:560
@ BT_BAP_ASCS_REASON_CODEC
Codec ID.
Definition bap.h:550
@ BT_BAP_ASCS_REASON_PHY
PHY.
Definition bap.h:558
@ BT_BAP_ASCS_REASON_LATENCY
Max transport latency.
Definition bap.h:564
@ BT_BAP_ASCS_REASON_CIS
Invalid CIS mapping.
Definition bap.h:568
@ BT_BAP_ASCS_REASON_RTN
RTN.
Definition bap.h:562
@ BT_BAP_ASCS_REASON_INTERVAL
SDU interval.
Definition bap.h:554
@ BT_BAP_ASCS_RSP_CODE_INVALID_ASE_STATE
Invalid ASE state.
Definition bap.h:516
@ BT_BAP_ASCS_RSP_CODE_METADATA_INVALID
Invalid metadata.
Definition bap.h:532
@ BT_BAP_ASCS_RSP_CODE_NOT_SUPPORTED
Server did not support operation by client.
Definition bap.h:510
@ BT_BAP_ASCS_RSP_CODE_CONF_UNSUPPORTED
Configuration parameters not supported by server.
Definition bap.h:522
@ BT_BAP_ASCS_RSP_CODE_INVALID_ASE
Invalid ASE ID.
Definition bap.h:514
@ BT_BAP_ASCS_RSP_CODE_INVALID_DIR
Invalid operation for direction.
Definition bap.h:518
@ BT_BAP_ASCS_RSP_CODE_CONF_INVALID
Invalid Configuration parameters.
Definition bap.h:526
@ BT_BAP_ASCS_RSP_CODE_CAP_UNSUPPORTED
Capabilities not supported by server.
Definition bap.h:520
@ BT_BAP_ASCS_RSP_CODE_NO_MEM
Server has insufficient resources.
Definition bap.h:534
@ BT_BAP_ASCS_RSP_CODE_METADATA_REJECTED
Metadata rejected by server.
Definition bap.h:530
@ BT_BAP_ASCS_RSP_CODE_UNSPECIFIED
Unspecified error.
Definition bap.h:536
@ BT_BAP_ASCS_RSP_CODE_INVALID_LENGTH
Server rejected due to invalid operation length.
Definition bap.h:512
@ BT_BAP_ASCS_RSP_CODE_METADATA_UNSUPPORTED
Unsupported metadata.
Definition bap.h:528
@ BT_BAP_ASCS_RSP_CODE_SUCCESS
Server completed operation successfully.
Definition bap.h:508
@ BT_BAP_ASCS_RSP_CODE_CONF_REJECTED
Configuration parameters rejected by server.
Definition bap.h:524
@ BT_BAP_PA_STATE_NOT_SYNCED
The periodic advertising has not been synchronized.
Definition bap.h:424
@ BT_BAP_PA_STATE_FAILED
Failed to synchronized to periodic advertising.
Definition bap.h:433
@ BT_BAP_PA_STATE_SYNCED
Synchronized to periodic advertising.
Definition bap.h:430
@ BT_BAP_PA_STATE_INFO_REQ
Waiting for SyncInfo from Broadcast Assistant.
Definition bap.h:427
@ BT_BAP_PA_STATE_NO_PAST
No periodic advertising sync transfer receiver from Broadcast Assistant.
Definition bap.h:436
@ BT_BAP_EP_STATE_ENABLING
Audio Stream Endpoint Enabling state.
Definition bap.h:488
@ BT_BAP_EP_STATE_IDLE
Audio Stream Endpoint Idle state.
Definition bap.h:479
@ BT_BAP_EP_STATE_CODEC_CONFIGURED
Audio Stream Endpoint Codec Configured state.
Definition bap.h:482
@ BT_BAP_EP_STATE_RELEASING
Audio Stream Endpoint Streaming state.
Definition bap.h:497
@ BT_BAP_EP_STATE_QOS_CONFIGURED
Audio Stream Endpoint QoS Configured state.
Definition bap.h:485
@ BT_BAP_EP_STATE_DISABLING
Audio Stream Endpoint Disabling state.
Definition bap.h:494
@ BT_BAP_EP_STATE_STREAMING
Audio Stream Endpoint Streaming state.
Definition bap.h:491
#define BT_ISO_BROADCAST_CODE_SIZE
Broadcast code size (16 octets).
Definition iso.h:144
struct _snode sys_snode_t
Single-linked list node structure.
Definition slist.h:39
#define BIT(n)
Unsigned integer with bit position n set (signed in assembly language).
Definition util_macro.h:44
Bluetooth ISO handling.
Buffer management.
state
Definition parser_state.h:29
#define bool
Definition stdbool.h:13
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
Bluetooth LE Device Address.
Definition addr.h:49
Codec capability structure.
Definition audio.h:160
Codec specific configuration structure.
Definition audio.h:227
Structure storing values of fields of ASE Control Point notification.
Definition bap.h:572
enum bt_bap_ascs_reason reason
Response reason.
Definition bap.h:609
enum bt_audio_metadata_type metadata_type
Response metadata type.
Definition bap.h:619
enum bt_bap_ascs_rsp_code code
Value of the Response Code field.
Definition bap.h:586
Codec ID structure for a Broadcast Audio Source Endpoint (BASE).
Definition bap.h:2063
uint16_t cid
Codec Company ID.
Definition bap.h:2067
uint16_t vid
Codec Company Vendor ID.
Definition bap.h:2069
uint8_t id
Codec ID.
Definition bap.h:2065
BIS structure for each BIS in a Broadcast Audio Source Endpoint (BASE) subgroup.
Definition bap.h:2073
uint8_t * data
Codec Specific Data.
Definition bap.h:2079
uint8_t data_len
Codec Specific Data length.
Definition bap.h:2077
uint8_t index
Unique index of the BIS.
Definition bap.h:2075
Struct to hold subgroup specific information for the receive state.
Definition bap.h:657
uint8_t metadata[CONFIG_BT_AUDIO_CODEC_CFG_MAX_METADATA_SIZE]
The metadata.
Definition bap.h:666
uint32_t bis_sync
BIS synced bitfield.
Definition bap.h:659
uint8_t metadata_len
Length of the metadata.
Definition bap.h:662
Parameters for adding a source to a Broadcast Audio Scan Service server.
Definition bap.h:3066
uint8_t num_subgroups
Number of subgroups.
Definition bap.h:3087
bt_addr_le_t addr
Address of the advertiser.
Definition bap.h:3068
uint8_t adv_sid
SID of the advertising set.
Definition bap.h:3071
struct bt_bap_bass_subgroup * subgroups
Pointer to array of subgroups.
Definition bap.h:3094
uint16_t pa_interval
Periodic advertising interval in milliseconds.
Definition bap.h:3084
bool pa_sync
Whether to sync to periodic advertisements.
Definition bap.h:3074
uint32_t broadcast_id
24-bit broadcast ID
Definition bap.h:3077
Struct to hold the Basic Audio Profile Broadcast Assistant callbacks.
Definition bap.h:2884
void(* discover)(struct bt_conn *conn, int err, uint8_t recv_state_count)
Callback function for bt_bap_broadcast_assistant_discover.
Definition bap.h:2894
void(* broadcast_code)(struct bt_conn *conn, int err)
Callback function for bt_bap_broadcast_assistant_set_broadcast_code().
Definition bap.h:2967
void(* recv_state)(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:2918
void(* scan_stop)(struct bt_conn *conn, int err)
Callback function for bt_bap_broadcast_assistant_scan_stop().
Definition bap.h:2943
void(* mod_src)(struct bt_conn *conn, int err)
Callback function for bt_bap_broadcast_assistant_mod_src().
Definition bap.h:2959
void(* scan)(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:2906
void(* scan_start)(struct bt_conn *conn, int err)
Callback function for bt_bap_broadcast_assistant_scan_start().
Definition bap.h:2935
void(* add_src)(struct bt_conn *conn, int err)
Callback function for bt_bap_broadcast_assistant_add_src().
Definition bap.h:2951
void(* rem_src)(struct bt_conn *conn, int err)
Callback function for bt_bap_broadcast_assistant_rem_src().
Definition bap.h:2975
void(* recv_state_removed)(struct bt_conn *conn, uint8_t src_id)
Callback function for when a receive state is removed.
Definition bap.h:2927
Parameters for modifying a source.
Definition bap.h:3114
struct bt_bap_bass_subgroup * subgroups
Pointer to array of subgroups.
Definition bap.h:3132
uint8_t num_subgroups
Number of subgroups.
Definition bap.h:3129
uint8_t src_id
Source ID of the receive state.
Definition bap.h:3116
bool pa_sync
Whether to sync to periodic advertisements.
Definition bap.h:3119
uint16_t pa_interval
Periodic advertising interval.
Definition bap.h:3126
Broadcast Audio Sink callback structure.
Definition bap.h:2552
void(* base_recv)(struct bt_bap_broadcast_sink *sink, const struct bt_bap_base *base, size_t base_size)
Broadcast Audio Source Endpoint (BASE) received.
Definition bap.h:2563
void(* stopped)(struct bt_bap_broadcast_sink *sink, uint8_t reason)
The Broadcast Sink has stopped and none of the streams will receive audio data.
Definition bap.h:2594
void(* syncable)(struct bt_bap_broadcast_sink *sink, const struct bt_iso_biginfo *biginfo)
Broadcast sink is syncable.
Definition bap.h:2578
void(* started)(struct bt_bap_broadcast_sink *sink)
The Broadcast Sink has started and audio data may be received from all of the streams.
Definition bap.h:2586
Abstract Audio Broadcast Sink structure.
Struct to hold the Broadcast Source callbacks.
Definition bap.h:2266
void(* started)(struct bt_bap_broadcast_source *source)
The Broadcast Source has started and all of the streams are ready for audio data.
Definition bap.h:2272
void(* stopped)(struct bt_bap_broadcast_source *source, uint8_t reason)
The Broadcast Source has stopped and none of the streams are ready for audio data.
Definition bap.h:2280
Broadcast Source create parameters.
Definition bap.h:2341
uint16_t iso_interval
ISO interval.
Definition bap.h:2401
uint8_t packing
Broadcast Source packing mode.
Definition bap.h:2358
uint8_t broadcast_code[0x10]
Broadcast code.
Definition bap.h:2373
uint8_t pto
Pre-transmission offset.
Definition bap.h:2392
size_t params_count
The number of parameters in subgroup_params.
Definition bap.h:2343
struct bt_bap_broadcast_source_subgroup_param * params
Array of stream parameters.
Definition bap.h:2346
bool encryption
Whether or not to encrypt the streams.
Definition bap.h:2361
uint8_t irc
Immediate Repetition Count.
Definition bap.h:2383
struct bt_bap_qos_cfg * qos
Quality of Service configuration.
Definition bap.h:2349
Broadcast Source stream parameters.
Definition bap.h:2311
struct bt_bap_stream * stream
Audio stream.
Definition bap.h:2313
const uint8_t * data
BIS Codec Specific Configuration.
Definition bap.h:2324
size_t data_len
The number of elements in the data array.
Definition bap.h:2321
Broadcast Source subgroup parameters.
Definition bap.h:2329
const struct bt_audio_codec_cfg * codec_cfg
Subgroup Codec configuration.
Definition bap.h:2337
size_t params_count
The number of parameters in stream_params.
Definition bap.h:2331
struct bt_bap_broadcast_source_stream_param * params
Array of stream parameters.
Definition bap.h:2334
Abstract Audio Broadcast Source structure.
Structure holding information of audio stream endpoint.
Definition bap.h:859
uint8_t id
The ID of the endpoint.
Definition bap.h:861
bool can_recv
True if the stream associated with the endpoint is able to receive data.
Definition bap.h:876
struct bt_iso_chan * iso_chan
The isochronous channel associated with the endpoint.
Definition bap.h:870
enum bt_bap_ep_state state
The state of the endpoint.
Definition bap.h:864
struct bt_bap_ep * paired_ep
Pointer to paired endpoint if the endpoint is part of a bidirectional CIS, otherwise NULL.
Definition bap.h:881
enum bt_audio_dir dir
Capabilities type.
Definition bap.h:867
bool can_send
True if the stream associated with the endpoint is able to send data.
Definition bap.h:873
const struct bt_bap_qos_cfg_pref * qos_pref
Pointer to the preferred QoS settings associated with the endpoint.
Definition bap.h:884
Abstract Audio Endpoint structure.
Audio Stream Quality of Service Preference structure.
Definition bap.h:354
uint32_t pref_pd_min
Preferred minimum Presentation Delay in microseconds.
Definition bap.h:409
uint8_t rtn
Preferred Retransmission Number.
Definition bap.h:376
bool unframed_supported
Unframed PDUs supported.
Definition bap.h:361
uint32_t pd_min
Minimum Presentation Delay in microseconds.
Definition bap.h:392
uint32_t pd_max
Maximum Presentation Delay in microseconds.
Definition bap.h:401
uint8_t phy
Preferred PHY bitfield.
Definition bap.h:369
uint32_t pref_pd_max
Preferred maximum Presentation Delay in microseconds.
Definition bap.h:418
uint16_t latency
Preferred Transport Latency.
Definition bap.h:383
QoS configuration structure.
Definition bap.h:236
uint16_t sdu
Maximum SDU size.
Definition bap.h:281
uint8_t burst_number
Burst number.
Definition bap.h:319
enum bt_bap_qos_cfg_framing framing
QoS Framing.
Definition bap.h:258
uint16_t latency
Maximum Transport Latency.
Definition bap.h:290
uint8_t num_subevents
Number of subevents.
Definition bap.h:328
uint8_t rtn
Retransmission Number.
Definition bap.h:274
uint32_t interval
SDU Interval.
Definition bap.h:298
uint8_t phy
PHY.
Definition bap.h:266
uint16_t max_pdu
Maximum PDU size.
Definition bap.h:312
uint32_t pd
Presentation Delay in microseconds.
Definition bap.h:247
Parameters for bt_bap_scan_delegator_add_src().
Definition bap.h:2739
enum bt_bap_pa_state pa_state
Periodic Advertising sync state.
Definition bap.h:2752
uint8_t num_subgroups
Number of subgroups.
Definition bap.h:2761
enum bt_bap_big_enc_state encrypt_state
The broadcast isochronous group encryption state.
Definition bap.h:2755
bt_addr_le_t addr
Periodic Advertiser Address.
Definition bap.h:2741
uint8_t sid
Advertiser SID.
Definition bap.h:2744
uint32_t broadcast_id
The 24-bit broadcast ID.
Definition bap.h:2758
struct bt_bap_bass_subgroup subgroups[0]
Subgroup specific information.
Definition bap.h:2764
Struct to hold the Basic Audio Profile Scan Delegator callbacks.
Definition bap.h:713
int(* pa_sync_req)(struct bt_conn *conn, const struct bt_bap_scan_delegator_recv_state *recv_state, bool past_avail, uint16_t pa_interval)
Periodic advertising sync request.
Definition bap.h:742
int(* add_source)(struct bt_conn *conn, const struct bt_bap_scan_delegator_recv_state *recv_state)
Add Source operation callback.
Definition bap.h:823
int(* pa_sync_term_req)(struct bt_conn *conn, const struct bt_bap_scan_delegator_recv_state *recv_state)
Periodic advertising sync termination request.
Definition bap.h:759
void(* recv_state_updated)(struct bt_conn *conn, const struct bt_bap_scan_delegator_recv_state *recv_state)
Receive state updated.
Definition bap.h:723
int(* remove_source)(struct bt_conn *conn, uint8_t src_id)
Remove Source operation callback.
Definition bap.h:855
int(* bis_sync_req)(struct bt_conn *conn, const struct bt_bap_scan_delegator_recv_state *recv_state, const uint32_t bis_sync_req[0])
Broadcast Isochronous Stream synchronize request.
Definition bap.h:797
void(* broadcast_code)(struct bt_conn *conn, const struct bt_bap_scan_delegator_recv_state *recv_state, const uint8_t broadcast_code[0x10])
Broadcast code received.
Definition bap.h:773
void(* scanning_state)(struct bt_conn *conn, bool is_scanning)
Broadcast Assistant scanning state callback.
Definition bap.h:809
int(* modify_source)(struct bt_conn *conn, const struct bt_bap_scan_delegator_recv_state *recv_state)
Modify Source operation callback.
Definition bap.h:839
Parameters for bt_bap_scan_delegator_mod_src().
Definition bap.h:2783
uint32_t broadcast_id
The 24-bit broadcast ID.
Definition bap.h:2791
uint8_t num_subgroups
Number of subgroups.
Definition bap.h:2794
struct bt_bap_bass_subgroup subgroups[0]
Subgroup specific information.
Definition bap.h:2802
uint8_t src_id
The periodic adverting sync.
Definition bap.h:2785
enum bt_bap_big_enc_state encrypt_state
The broadcast isochronous group encryption state.
Definition bap.h:2788
Represents the Broadcast Audio Scan Service receive state.
Definition bap.h:671
uint8_t src_id
The source ID.
Definition bap.h:673
enum bt_bap_pa_state pa_sync_state
The periodic adverting sync state.
Definition bap.h:682
struct bt_bap_bass_subgroup subgroups[0]
Subgroup specific information.
Definition bap.h:705
bt_addr_le_t addr
The Bluetooth address.
Definition bap.h:676
uint8_t adv_sid
The advertising set ID.
Definition bap.h:679
uint8_t num_subgroups
Number of subgroups.
Definition bap.h:698
uint32_t broadcast_id
The 24-bit broadcast ID.
Definition bap.h:688
enum bt_bap_big_enc_state encrypt_state
The broadcast isochronous group encryption state.
Definition bap.h:685
uint8_t bad_code[0x10]
The bad broadcast code.
Definition bap.h:695
Stream operation.
Definition bap.h:967
void(* recv)(struct bt_bap_stream *stream, const struct bt_iso_recv_info *info, struct net_buf *buf)
Stream audio HCI receive callback.
Definition bap.h:1060
void(* enabled)(struct bt_bap_stream *stream)
Stream enabled callback.
Definition bap.h:996
void(* sent)(struct bt_bap_stream *stream)
Stream audio HCI sent callback.
Definition bap.h:1077
void(* released)(struct bt_bap_stream *stream)
Stream released callback.
Definition bap.h:1025
void(* disabled)(struct bt_bap_stream *stream)
Stream disabled callback.
Definition bap.h:1015
void(* configured)(struct bt_bap_stream *stream, const struct bt_bap_qos_cfg_pref *pref)
Stream configured callback.
Definition bap.h:977
void(* connected)(struct bt_bap_stream *stream)
Isochronous channel connected callback.
Definition bap.h:1092
void(* metadata_updated)(struct bt_bap_stream *stream)
Stream metadata updated callback.
Definition bap.h:1006
void(* started)(struct bt_bap_stream *stream)
Stream started callback.
Definition bap.h:1036
void(* disconnected)(struct bt_bap_stream *stream, uint8_t reason)
Isochronous channel disconnected callback.
Definition bap.h:1106
void(* stopped)(struct bt_bap_stream *stream, uint8_t reason)
Stream stopped callback.
Definition bap.h:1046
void(* qos_set)(struct bt_bap_stream *stream)
Stream QoS set callback.
Definition bap.h:987
Basic Audio Profile stream structure.
Definition bap.h:922
void * group
Unicast or Broadcast group - Used internally.
Definition bap.h:953
const struct bt_audio_codec_cfg * codec_cfg
Codec Configuration.
Definition bap.h:934
struct bt_bap_qos_cfg * qos
QoS Configuration.
Definition bap.h:937
struct bt_bap_stream_ops * ops
Audio stream operations.
Definition bap.h:940
struct bt_iso_chan * iso
ISO channel reference.
Definition bap.h:950
struct bt_conn * conn
Connection reference.
Definition bap.h:924
struct bt_bap_ep * ep
Endpoint reference.
Definition bap.h:927
void * user_data
Stream user data.
Definition bap.h:943
Unicast Client callback structure.
Definition bap.h:1819
void(* enable)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code, enum bt_bap_ascs_reason reason)
Callback function for bt_bap_stream_enable().
Definition bap.h:1895
void(* discover)(struct bt_conn *conn, int err, enum bt_audio_dir dir)
BAP discovery callback function.
Definition bap.h:2009
void(* qos)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code, enum bt_bap_ascs_reason reason)
Callback function for bt_bap_stream_qos().
Definition bap.h:1882
void(* pac_record)(struct bt_conn *conn, enum bt_audio_dir dir, const struct bt_audio_codec_cap *codec_cap)
Remote Published Audio Capability (PAC) record discovered.
Definition bap.h:1981
void(* disable)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code, enum bt_bap_ascs_reason reason)
Callback function for bt_bap_stream_disable().
Definition bap.h:1938
void(* start)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code, enum bt_bap_ascs_reason reason)
Callback function for bt_bap_stream_start().
Definition bap.h:1910
void(* location)(struct bt_conn *conn, enum bt_audio_dir dir, enum bt_audio_location loc)
Remote Unicast Server Audio Locations.
Definition bap.h:1830
void(* metadata)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code, enum bt_bap_ascs_reason reason)
Callback function for bt_bap_stream_metadata().
Definition bap.h:1951
void(* release)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code, enum bt_bap_ascs_reason reason)
Callback function for bt_bap_stream_release().
Definition bap.h:1964
void(* supported_contexts)(struct bt_conn *conn, enum bt_audio_context snk_ctx, enum bt_audio_context src_ctx)
Remote Unicast Server Supported Contexts.
Definition bap.h:1842
void(* stop)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code, enum bt_bap_ascs_reason reason)
Callback function for bt_bap_stream_stop().
Definition bap.h:1925
void(* available_contexts)(struct bt_conn *conn, enum bt_audio_context snk_ctx, enum bt_audio_context src_ctx)
Remote Unicast Server Available Contexts.
Definition bap.h:1855
void(* endpoint)(struct bt_conn *conn, enum bt_audio_dir dir, struct bt_bap_ep *ep)
Remote Audio Stream Endpoint (ASE) discovered.
Definition bap.h:1995
void(* config)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code, enum bt_bap_ascs_reason reason)
Callback function for bt_bap_stream_config() and bt_bap_stream_reconfig().
Definition bap.h:1867
Structure holding information of audio stream endpoint.
Definition bap.h:1792
uint32_t source_pd
Presentation delay for source ASEs.
Definition bap.h:1803
uint32_t sink_pd
Presentation delay for sink ASEs.
Definition bap.h:1797
Parameters for the creating unicast groups with bt_bap_unicast_group_create().
Definition bap.h:1648
uint16_t iso_interval
ISO interval.
Definition bap.h:1692
uint8_t packing
Unicast Group packing mode.
Definition bap.h:1662
uint8_t p_to_c_ft
Peripheral to Central flush timeout.
Definition bap.h:1683
uint8_t c_to_p_ft
Central to Peripheral flush timeout.
Definition bap.h:1673
size_t params_count
The number of parameters in params.
Definition bap.h:1650
struct bt_bap_unicast_group_stream_pair_param * params
Array of stream parameters.
Definition bap.h:1653
Parameter struct for the unicast group functions.
Definition bap.h:1639
struct bt_bap_unicast_group_stream_param * rx_param
Pointer to a receiving stream parameters.
Definition bap.h:1641
struct bt_bap_unicast_group_stream_param * tx_param
Pointer to a transmitting stream parameters.
Definition bap.h:1644
Parameter struct for each stream in the unicast group.
Definition bap.h:1625
struct bt_bap_qos_cfg * qos
The QoS settings for the stream object.
Definition bap.h:1630
struct bt_bap_stream * stream
Pointer to a stream object.
Definition bap.h:1627
Abstract Audio Unicast Group structure.
Unicast Server callback structure.
Definition bap.h:1375
int(* disable)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp)
Stream Disable request callback.
Definition bap.h:1490
int(* qos)(struct bt_bap_stream *stream, const struct bt_bap_qos_cfg *qos, struct bt_bap_ascs_rsp *rsp)
Stream QoS request callback.
Definition bap.h:1431
int(* start)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp)
Stream Start request callback.
Definition bap.h:1461
int(* metadata)(struct bt_bap_stream *stream, const uint8_t meta[], size_t meta_len, struct bt_bap_ascs_rsp *rsp)
Stream Metadata update request callback.
Definition bap.h:1476
int(* enable)(struct bt_bap_stream *stream, const uint8_t meta[], size_t meta_len, struct bt_bap_ascs_rsp *rsp)
Stream Enable request callback.
Definition bap.h:1447
int(* reconfig)(struct bt_bap_stream *stream, enum bt_audio_dir dir, const struct bt_audio_codec_cfg *codec_cfg, struct bt_bap_qos_cfg_pref *const pref, struct bt_bap_ascs_rsp *rsp)
Stream reconfig request callback.
Definition bap.h:1414
int(* stop)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp)
Stream Stop callback.
Definition bap.h:1503
int(* release)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp)
Stream release callback.
Definition bap.h:1517
int(* config)(struct bt_conn *conn, const struct bt_bap_ep *ep, enum bt_audio_dir dir, const struct bt_audio_codec_cfg *codec_cfg, struct bt_bap_stream **stream, struct bt_bap_qos_cfg_pref *const pref, struct bt_bap_ascs_rsp *rsp)
Endpoint config request callback.
Definition bap.h:1394
Structure for registering Unicast Server.
Definition bap.h:1110
uint8_t snk_cnt
Sink Count to register.
Definition bap.h:1116
uint8_t src_cnt
Source Count to register.
Definition bap.h:1122
Opaque type representing a connection to a remote device.
Bluetooth data.
Definition data.h:40
Broadcast Isochronous Group (BIG) information.
Definition iso.h:648
ISO Channel structure.
Definition iso.h:205
ISO Meta Data structure for received ISO packets.
Definition iso.h:352
ISO Meta Data structure for transmitted ISO packets.
Definition iso.h:368
Opaque type representing an advertiser.
Opaque type representing a periodic advertising sync.
LE advertisement and scan response packet information.
Definition bluetooth.h:2351
Group structure.
Definition grp.h:18
Simple network buffer representation.
Definition net_buf.h:89
Network buffer representation.
Definition net_buf.h:1015
Macro utilities.