Zephyr Project API 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_H_
12#define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_BAP_H_
13
26
27#include <stdbool.h>
28#include <stddef.h>
29#include <stdint.h>
30
31#include <zephyr/autoconf.h>
42#include <zephyr/net_buf.h>
43#include <zephyr/sys/slist.h>
45
46#ifdef __cplusplus
47extern "C" {
48#endif
49
51#define BT_BAP_BASS_MAX_SUBGROUPS \
52 COND_CODE_1(CONFIG_BT_AUDIO, (CONFIG_BT_BAP_BASS_MAX_SUBGROUPS), (0))
53
55#define BT_BASE_MAX_SIZE (UINT8_MAX - 1 /* type */ - BT_UUID_SIZE_16)
56
58#define BT_BAP_INVALID_BROADCAST_ID 0xFFFFFFFFU
59
61#define BT_BAP_PD_UNSET 0xFFFFFFFFU
62
71#define BT_BAP_ADV_PARAM_CONN_QUICK \
72 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONN | BT_LE_ADV_OPT_EXT_ADV, BT_GAP_MS_TO_ADV_INTERVAL(20), \
73 BT_GAP_MS_TO_ADV_INTERVAL(30), NULL)
74
80#define BT_BAP_ADV_PARAM_CONN_REDUCED \
81 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONN | BT_LE_ADV_OPT_EXT_ADV, \
82 BT_GAP_MS_TO_ADV_INTERVAL(150), BT_GAP_MS_TO_ADV_INTERVAL(150), NULL)
83
92#define BT_BAP_CONN_PARAM_SHORT_7_5 \
93 BT_LE_CONN_PARAM(BT_GAP_US_TO_CONN_INTERVAL(7500), BT_GAP_MS_TO_CONN_INTERVAL(30), 0, \
94 BT_GAP_MS_TO_CONN_TIMEOUT(4000))
95
104#define BT_BAP_CONN_PARAM_SHORT_10 \
105 BT_LE_CONN_PARAM(BT_GAP_MS_TO_CONN_INTERVAL(10), BT_GAP_MS_TO_CONN_INTERVAL(30), 0, \
106 BT_GAP_MS_TO_CONN_TIMEOUT(4000))
107
113#define BT_BAP_CONN_PARAM_RELAXED \
114 BT_LE_CONN_PARAM(BT_GAP_MS_TO_CONN_INTERVAL(50), BT_GAP_MS_TO_CONN_INTERVAL(70), 0, \
115 BT_GAP_MS_TO_CONN_TIMEOUT(4000))
116
123#define BT_BAP_ADV_PARAM_BROADCAST_FAST \
124 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV, BT_GAP_MS_TO_ADV_INTERVAL(60), \
125 BT_GAP_MS_TO_ADV_INTERVAL(60), NULL)
126
133#define BT_BAP_ADV_PARAM_BROADCAST_SLOW \
134 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV, BT_GAP_MS_TO_ADV_INTERVAL(150), \
135 BT_GAP_MS_TO_ADV_INTERVAL(150), NULL)
136
143#define BT_BAP_PER_ADV_PARAM_BROADCAST_FAST \
144 BT_LE_PER_ADV_PARAM(BT_GAP_MS_TO_PER_ADV_INTERVAL(60), BT_GAP_MS_TO_PER_ADV_INTERVAL(60), \
145 BT_LE_PER_ADV_OPT_NONE)
146
153#define BT_BAP_PER_ADV_PARAM_BROADCAST_SLOW \
154 BT_LE_PER_ADV_PARAM(BT_GAP_MS_TO_PER_ADV_INTERVAL(150), \
155 BT_GAP_MS_TO_PER_ADV_INTERVAL(150), BT_LE_PER_ADV_OPT_NONE)
156
165#define BT_BAP_BASS_VALID_BIT_BITFIELD(_bis_bitfield) \
166 ((_bis_bitfield) == 0U || (_bis_bitfield) == BT_BAP_BIS_SYNC_NO_PREF || \
167 BT_ISO_VALID_BIS_BITFIELD(_bis_bitfield))
168
180#define BT_BAP_QOS_CFG(_interval, _framing, _phy, _sdu, _rtn, _latency, _pd) \
181 ((struct bt_bap_qos_cfg){ \
182 .interval = _interval, \
183 .framing = _framing, \
184 .phy = _phy, \
185 .sdu = _sdu, \
186 .rtn = _rtn, \
187 IF_ENABLED(UTIL_OR(IS_ENABLED(CONFIG_BT_BAP_BROADCAST_SOURCE), \
188 IS_ENABLED(CONFIG_BT_BAP_UNICAST)), \
189 (.latency = _latency,)) \
190 .pd = _pd, \
191 })
192
200
202enum {
209};
210
220#define BT_BAP_QOS_CFG_UNFRAMED(_interval, _sdu, _rtn, _latency, _pd) \
221 BT_BAP_QOS_CFG(_interval, BT_BAP_QOS_CFG_FRAMING_UNFRAMED, BT_BAP_QOS_CFG_2M, _sdu, _rtn, \
222 _latency, _pd)
223
233#define BT_BAP_QOS_CFG_FRAMED(_interval, _sdu, _rtn, _latency, _pd) \
234 BT_BAP_QOS_CFG(_interval, BT_BAP_QOS_CFG_FRAMING_FRAMED, BT_BAP_QOS_CFG_2M, _sdu, _rtn, \
235 _latency, _pd)
236
250
258 struct {
261
269
277
284
285#if defined(CONFIG_BT_BAP_BROADCAST_SOURCE) || defined(CONFIG_BT_BAP_UNICAST) || \
286 defined(__DOXYGEN__)
293#endif /* CONFIG_BT_BAP_BROADCAST_SOURCE || CONFIG_BT_BAP_UNICAST */
294
301
302#if defined(CONFIG_BT_ISO_TEST_PARAMS) || defined(__DOXYGEN__)
315
322
331#endif /* CONFIG_BT_ISO_TEST_PARAMS */
332 };
333};
334
352
367
376
378#define BT_BAP_PA_INTERVAL_UNKNOWN 0xFFFFU
379
386#define BT_BAP_BIS_SYNC_NO_PREF 0xFFFFFFFFU
388#define BT_BAP_BIS_SYNC_FAILED 0xFFFFFFFFU
389
413
419
425
431
436struct bt_bap_ep;
437
442
445
446#if defined(CONFIG_BT_AUDIO_CODEC_CFG_MAX_METADATA_SIZE) || defined(__DOXYGEN__)
448 uint8_t metadata[CONFIG_BT_AUDIO_CODEC_CFG_MAX_METADATA_SIZE];
449#endif /* CONFIG_BT_AUDIO_CODEC_CFG_MAX_METADATA_SIZE */
450};
451
489
503 void (*recv_state_updated)(struct bt_conn *conn,
504 const struct bt_bap_scan_delegator_recv_state *recv_state);
505
522 int (*pa_sync_req)(struct bt_conn *conn,
523 const struct bt_bap_scan_delegator_recv_state *recv_state,
524 bool past_avail, uint16_t pa_interval);
525
539 int (*pa_sync_term_req)(struct bt_conn *conn,
540 const struct bt_bap_scan_delegator_recv_state *recv_state);
541
553 void (*broadcast_code)(struct bt_conn *conn,
554 const struct bt_bap_scan_delegator_recv_state *recv_state,
579 int (*bis_sync_req)(struct bt_conn *conn,
580 const struct bt_bap_scan_delegator_recv_state *recv_state,
591 void (*scanning_state)(struct bt_conn *conn, bool is_scanning);
605 int (*add_source)(struct bt_conn *conn,
606 const struct bt_bap_scan_delegator_recv_state *recv_state);
607
621 int (*modify_source)(struct bt_conn *conn,
622 const struct bt_bap_scan_delegator_recv_state *recv_state);
623
637 int (*remove_source)(struct bt_conn *conn, uint8_t src_id);
638};
639
644
647
650
653
656
659
664
667};
668
678int bt_bap_ep_get_info(const struct bt_bap_ep *ep, struct bt_bap_ep_info *info);
679
694struct bt_conn *bt_bap_ep_get_conn(const struct bt_bap_ep *ep);
695
706 struct bt_conn *conn;
707
709 struct bt_bap_ep *ep;
710
717
723 const struct bt_bap_qos_cfg *qos;
724
727
730
737
739 void *group;
740
741#if defined(CONFIG_BT_BAP_DEBUG_STREAM_SEQ_NUM) || defined(__DOXYGEN__)
743 uint16_t _prev_seq_num;
744#endif /* CONFIG_BT_BAP_DEBUG_STREAM_SEQ_NUM */
745
748 sys_snode_t _node;
750};
751
754#if defined(CONFIG_BT_BAP_UNICAST) || defined(__DOXYGEN__)
764 void (*codec_configured)(struct bt_bap_stream *stream,
765 const struct bt_bap_qos_cfg_pref *pref);
766
775 void (*qos_configured)(struct bt_bap_stream *stream);
776
784 void (*enabled)(struct bt_bap_stream *stream);
785
794 void (*metadata_updated)(struct bt_bap_stream *stream);
795
803 void (*disabled)(struct bt_bap_stream *stream);
804
813 void (*released)(struct bt_bap_stream *stream);
814#endif /* CONFIG_BT_BAP_UNICAST */
815
824 void (*started)(struct bt_bap_stream *stream);
825
834 void (*stopped)(struct bt_bap_stream *stream, uint8_t reason);
835
836#if defined(CONFIG_BT_AUDIO_RX) || defined(__DOXYGEN__)
848 void (*recv)(struct bt_bap_stream *stream, const struct bt_iso_recv_info *info,
849 struct net_buf *buf);
850#endif /* CONFIG_BT_AUDIO_RX */
851
852#if defined(CONFIG_BT_AUDIO_TX) || defined(__DOXYGEN__)
865 void (*sent)(struct bt_bap_stream *stream);
866#endif /* CONFIG_BT_AUDIO_TX */
867
880 void (*connected)(struct bt_bap_stream *stream);
881
894 void (*disconnected)(struct bt_bap_stream *stream, uint8_t reason);
895};
896
912
922
936int bt_bap_stream_config(struct bt_conn *conn, struct bt_bap_stream *stream, struct bt_bap_ep *ep,
937 const struct bt_audio_codec_cfg *codec_cfg);
938
953 const struct bt_audio_codec_cfg *codec_cfg);
954
968
983int bt_bap_stream_enable(struct bt_bap_stream *stream, const uint8_t meta[], size_t meta_len);
984
996int bt_bap_stream_metadata(struct bt_bap_stream *stream, const uint8_t meta[], size_t meta_len);
997
1011
1036
1060
1085
1104
1119int bt_bap_stream_send(struct bt_bap_stream *stream, struct net_buf *buf, uint16_t seq_num);
1120
1137int bt_bap_stream_send_ts(struct bt_bap_stream *stream, struct net_buf *buf, uint16_t seq_num,
1138 uint32_t ts);
1139
1159
1165
1186 int (*config)(struct bt_conn *conn, const struct bt_bap_ep *ep, enum bt_audio_dir dir,
1187 const struct bt_audio_codec_cfg *codec_cfg, struct bt_bap_stream **stream,
1188 struct bt_bap_qos_cfg_pref *const pref, struct bt_bap_ascs_rsp *rsp);
1189
1206 int (*reconfig)(struct bt_bap_stream *stream, enum bt_audio_dir dir,
1207 const struct bt_audio_codec_cfg *codec_cfg,
1208 struct bt_bap_qos_cfg_pref *const pref, struct bt_bap_ascs_rsp *rsp);
1209
1223 int (*qos)(struct bt_bap_stream *stream, const struct bt_bap_qos_cfg *qos,
1224 struct bt_bap_ascs_rsp *rsp);
1225
1239 int (*enable)(struct bt_bap_stream *stream, const uint8_t meta[], size_t meta_len,
1240 struct bt_bap_ascs_rsp *rsp);
1241
1253 int (*start)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp);
1254
1268 int (*metadata)(struct bt_bap_stream *stream, const uint8_t meta[], size_t meta_len,
1269 struct bt_bap_ascs_rsp *rsp);
1270
1282 int (*disable)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp);
1283
1295 int (*stop)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp);
1296
1309 int (*release)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp);
1310};
1311
1323
1339
1351
1363
1374typedef bool (*bt_bap_ep_func_t)(struct bt_bap_ep *ep, void *user_data);
1375
1387int bt_bap_unicast_server_foreach_ep(struct bt_conn *conn, bt_bap_ep_func_t func, void *user_data);
1388
1400 const struct bt_audio_codec_cfg *codec_cfg,
1401 const struct bt_bap_qos_cfg_pref *qos_pref);
1402 /* End of group bt_bap_unicast_server */
1404
1410
1419
1433
1438
1441
1450
1451#if defined(CONFIG_BT_ISO_TEST_PARAMS) || defined(__DOXYGEN__)
1461
1471
1480#endif /* CONFIG_BT_ISO_TEST_PARAMS */
1481};
1482
1497 struct bt_bap_unicast_group **unicast_group);
1498
1515 const struct bt_bap_unicast_group_param *param);
1516
1538 size_t num_param);
1539
1551
1561 void *user_data);
1562
1576 void *user_data);
1577
1588
1597
1604
1611
1618
1625
1628
1635
1643
1644#if defined(CONFIG_BT_ISO_TEST_PARAMS) || defined(__DOXYGEN__)
1651
1658
1661#endif /* CONFIG_BT_ISO_TEST_PARAMS */
1662};
1663
1674 struct bt_bap_unicast_group_info *info);
1675
1688 void (*location)(struct bt_conn *conn, enum bt_audio_dir dir, enum bt_audio_location loc);
1689
1700 void (*supported_contexts)(struct bt_conn *conn, enum bt_audio_context snk_ctx,
1701 enum bt_audio_context src_ctx);
1702
1713 void (*available_contexts)(struct bt_conn *conn, enum bt_audio_context snk_ctx,
1714 enum bt_audio_context src_ctx);
1715
1725 void (*config)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1726 enum bt_bap_ascs_reason reason);
1727
1740 void (*qos)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1741 enum bt_bap_ascs_reason reason);
1742
1753 void (*enable)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1754 enum bt_bap_ascs_reason reason);
1755
1768 void (*start)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1769 enum bt_bap_ascs_reason reason);
1770
1783 void (*stop)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1784 enum bt_bap_ascs_reason reason);
1785
1796 void (*disable)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1797 enum bt_bap_ascs_reason reason);
1798
1809 void (*metadata)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1810 enum bt_bap_ascs_reason reason);
1811
1822 void (*release)(struct bt_bap_stream *stream, enum bt_bap_ascs_rsp_code rsp_code,
1823 enum bt_bap_ascs_reason reason);
1824
1839 void (*pac_record)(struct bt_conn *conn, enum bt_audio_dir dir,
1840 const struct bt_audio_codec_cap *codec_cap);
1841
1853 void (*endpoint)(struct bt_conn *conn, enum bt_audio_dir dir, struct bt_bap_ep *ep);
1854
1867 void (*discover)(struct bt_conn *conn, int err, enum bt_audio_dir dir);
1868
1871 sys_snode_t _node;
1873};
1874
1885
1895
1915
1930 struct bt_bap_qos_cfg *qos);
1931
1942bool bt_bap_qos_cfg_eq(const struct bt_bap_qos_cfg *a, const struct bt_bap_qos_cfg *b);
1943 /* End of group bt_bap_unicast_client */
1951
1953struct bt_bap_base_subgroup;
1955struct bt_bap_base;
1956
1966
1976
1985const struct bt_bap_base *bt_bap_base_get_base_from_ad(const struct bt_data *ad);
1986
1995int bt_bap_base_get_size(const struct bt_bap_base *base);
1996
2005int bt_bap_base_get_pres_delay(const struct bt_bap_base *base);
2006
2015int bt_bap_base_get_subgroup_count(const struct bt_bap_base *base);
2016
2026int bt_bap_base_get_bis_indexes(const struct bt_bap_base *base, uint32_t *bis_indexes);
2027
2039int bt_bap_base_foreach_subgroup(const struct bt_bap_base *base,
2040 bool (*func)(const struct bt_bap_base_subgroup *subgroup,
2041 void *user_data),
2042 void *user_data);
2043
2053int bt_bap_base_get_subgroup_codec_id(const struct bt_bap_base_subgroup *subgroup,
2054 struct bt_bap_base_codec_id *codec_id);
2055
2065int bt_bap_base_get_subgroup_codec_data(const struct bt_bap_base_subgroup *subgroup,
2066 uint8_t **data);
2067
2077int bt_bap_base_get_subgroup_codec_meta(const struct bt_bap_base_subgroup *subgroup,
2078 uint8_t **meta);
2079
2090int bt_bap_base_subgroup_codec_to_codec_cfg(const struct bt_bap_base_subgroup *subgroup,
2091 struct bt_audio_codec_cfg *codec_cfg);
2092
2101int bt_bap_base_get_subgroup_bis_count(const struct bt_bap_base_subgroup *subgroup);
2102
2112int bt_bap_base_subgroup_get_bis_indexes(const struct bt_bap_base_subgroup *subgroup,
2113 uint32_t *bis_indexes);
2114
2126int bt_bap_base_subgroup_foreach_bis(const struct bt_bap_base_subgroup *subgroup,
2127 bool (*func)(const struct bt_bap_base_subgroup_bis *bis,
2128 void *user_data),
2129 void *user_data);
2130
2145 struct bt_audio_codec_cfg *codec_cfg);
2146 /* End of group bt_bap_broadcast */
2148
2155
2167 void (*started)(struct bt_bap_broadcast_source *source);
2168
2175 void (*stopped)(struct bt_bap_broadcast_source *source, uint8_t reason);
2176
2179 sys_snode_t _node;
2181};
2182
2193
2204
2209
2210#if CONFIG_BT_AUDIO_CODEC_CFG_MAX_DATA_SIZE > 0 || defined(__DOXYGEN__)
2216 size_t data_len;
2217
2220#endif /* CONFIG_BT_AUDIO_CODEC_CFG_MAX_DATA_SIZE > 0 */
2221};
2222
2234
2239
2242
2244 const struct bt_bap_qos_cfg *qos;
2245
2254
2257
2269
2270#if defined(CONFIG_BT_ISO_TEST_PARAMS) || defined(__DOXYGEN__)
2279
2288
2297#endif /* CONFIG_BT_ISO_TEST_PARAMS */
2298};
2299
2317 struct bt_bap_broadcast_source **source);
2318
2339 struct bt_bap_broadcast_source_param *param);
2340
2354 const uint8_t meta[], size_t meta_len);
2355
2368 struct bt_le_ext_adv *adv);
2369
2381
2393
2409 struct net_buf_simple *base_buf);
2410
2421 void *user_data);
2422
2436 void *user_data); /* End of bt_bap_broadcast_source */
2438
2445
2458 void (*base_recv)(struct bt_bap_broadcast_sink *sink, const struct bt_bap_base *base,
2459 size_t base_size);
2460
2473 void (*syncable)(struct bt_bap_broadcast_sink *sink, const struct bt_iso_biginfo *biginfo);
2474
2481 void (*started)(struct bt_bap_broadcast_sink *sink);
2482
2489 void (*stopped)(struct bt_bap_broadcast_sink *sink, uint8_t reason);
2490
2493 sys_snode_t _node;
2495};
2496
2511
2531 struct bt_bap_broadcast_sink **sink);
2532
2553 struct bt_bap_stream *streams[],
2554 const uint8_t broadcast_code[BT_ISO_BROADCAST_CODE_SIZE]);
2555
2567
2580 /* End of group bt_bap_broadcast_sink */
2582
2597
2609
2622 enum bt_bap_pa_state pa_state);
2623
2634
2663
2683
2701
2716
2731
2743 const struct bt_bap_scan_delegator_recv_state *recv_state, void *user_data);
2744
2752 void *user_data);
2753
2763 bt_bap_scan_delegator_state_func_t func, void *user_data);
2764
2765/******************************** CLIENT API ********************************/
2766
2774 int err);
2775
2791 void (*discover)(struct bt_conn *conn, int err,
2792 uint8_t recv_state_count);
2793
2803 void (*scan)(const struct bt_le_scan_recv_info *info,
2804 uint32_t broadcast_id);
2805
2815 void (*recv_state)(struct bt_conn *conn, int err,
2817
2824 void (*recv_state_removed)(struct bt_conn *conn, uint8_t src_id);
2825
2832 void (*scan_start)(struct bt_conn *conn, int err);
2833
2840 void (*scan_stop)(struct bt_conn *conn, int err);
2841
2848 void (*add_src)(struct bt_conn *conn, int err);
2849
2856 void (*mod_src)(struct bt_conn *conn, int err);
2857
2864 void (*broadcast_code)(struct bt_conn *conn, int err);
2865
2872 void (*rem_src)(struct bt_conn *conn, int err);
2873
2876 sys_snode_t _node;
2878};
2879
2897
2923 bool start_scan);
2924
2939
2950
2961
2962
2994
3009 struct bt_conn *conn, const struct bt_bap_broadcast_assistant_add_src_param *param);
3010
3032
3047 struct bt_conn *conn, const struct bt_bap_broadcast_assistant_mod_src_param *param);
3048
3064 struct bt_conn *conn, uint8_t src_id,
3065 const uint8_t broadcast_code[BT_ISO_BROADCAST_CODE_SIZE]);
3066
3081
3097 /* end of bt_bap */
3099
3100#ifdef __cplusplus
3101}
3102#endif
3103
3104#endif /* ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_BAP_H_ */
Bluetooth device address definitions and utilities.
Bluetooth Audio Stream Control Service (ASCS) APIs.
Bluetooth Assigned Numbers, codes and identifiers.
Bluetooth Audio handling.
Bluetooth subsystem core APIs.
Bluetooth UUID handling.
Bluetooth connection handling.
Bluetooth data types and helpers.
Bluetooth Generic Access Profile defines and Assigned Numbers.
bt_bap_ascs_reason
Response Reasons.
Definition ascs.h:90
bt_bap_ascs_rsp_code
Response Status Code.
Definition ascs.h:50
bt_audio_location
Location values for BT Audio.
Definition assigned_numbers.h:1389
bt_audio_context
Audio Context Type for Generic Audio.
Definition assigned_numbers.h:1179
bt_audio_dir
Audio direction from the perspective of the BAP Unicast Server / BAP Broadcast Sink.
Definition audio.h:320
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[BT_ISO_BROADCAST_CODE_SIZE])
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:2420
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.
bool bt_bap_qos_cfg_eq(const struct bt_bap_qos_cfg *a, const struct bt_bap_qos_cfg *b)
Compare two bt_bap_qos_cfg and return whether they are equal.
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_qos_from_group(const struct bt_bap_stream *stream, struct bt_bap_qos_cfg *qos)
Get a copy of the QoS configured for the group of the stream.
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:1560
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:1374
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:369
bt_bap_qos_cfg_framing
QoS Framing.
Definition bap.h:194
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:51
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:2773
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:354
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_set_bis_sync_state(uint8_t src_id, uint32_t bis_synced[COND_CODE_1(CONFIG_BT_AUDIO,(CONFIG_BT_BAP_BASS_MAX_SUBGROUPS),(0))])
Set the sync state of a receive state in the server.
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.
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.
int bt_bap_broadcast_assistant_set_broadcast_code(struct bt_conn *conn, uint8_t src_id, const uint8_t broadcast_code[BT_ISO_BROADCAST_CODE_SIZE])
Set a broadcast code to the specified receive state.
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_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:336
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:391
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:2742
@ BT_BAP_QOS_CFG_CODED
LE Coded PHY.
Definition bap.h:208
@ BT_BAP_QOS_CFG_2M
LE 2M PHY.
Definition bap.h:206
@ BT_BAP_QOS_CFG_1M
LE 1M PHY.
Definition bap.h:204
@ BT_BAP_BASS_ERR_OPCODE_NOT_SUPPORTED
Opcode not supported.
Definition bap.h:371
@ BT_BAP_BASS_ERR_INVALID_SRC_ID
Invalid source ID supplied.
Definition bap.h:374
@ BT_BAP_QOS_CFG_FRAMING_FRAMED
Packets are always framed.
Definition bap.h:198
@ BT_BAP_QOS_CFG_FRAMING_UNFRAMED
Packets may be framed or unframed.
Definition bap.h:196
@ BT_BAP_BIG_ENC_STATE_BCODE_REQ
The Broadcast Isochronous Group broadcast code requested.
Definition bap.h:359
@ BT_BAP_BIG_ENC_STATE_NO_ENC
The Broadcast Isochronous Group not encrypted.
Definition bap.h:356
@ BT_BAP_BIG_ENC_STATE_BAD_CODE
The Broadcast Isochronous Group bad broadcast code.
Definition bap.h:365
@ BT_BAP_BIG_ENC_STATE_DEC
The Broadcast Isochronous Group decrypted.
Definition bap.h:362
@ BT_BAP_PA_STATE_NOT_SYNCED
The periodic advertising has not been synchronized.
Definition bap.h:338
@ BT_BAP_PA_STATE_FAILED
Failed to synchronized to periodic advertising.
Definition bap.h:347
@ BT_BAP_PA_STATE_SYNCED
Synchronized to periodic advertising.
Definition bap.h:344
@ BT_BAP_PA_STATE_INFO_REQ
Waiting for SyncInfo from Broadcast Assistant.
Definition bap.h:341
@ BT_BAP_PA_STATE_NO_PAST
No periodic advertising sync transfer receiver from Broadcast Assistant.
Definition bap.h:350
@ BT_BAP_EP_STATE_ENABLING
Audio Stream Endpoint Enabling state.
Definition bap.h:402
@ BT_BAP_EP_STATE_IDLE
Audio Stream Endpoint Idle state.
Definition bap.h:393
@ BT_BAP_EP_STATE_CODEC_CONFIGURED
Audio Stream Endpoint Codec Configured state.
Definition bap.h:396
@ BT_BAP_EP_STATE_RELEASING
Audio Stream Endpoint Releasing state.
Definition bap.h:411
@ BT_BAP_EP_STATE_QOS_CONFIGURED
Audio Stream Endpoint QoS Configured state.
Definition bap.h:399
@ BT_BAP_EP_STATE_DISABLING
Audio Stream Endpoint Disabling state.
Definition bap.h:408
@ BT_BAP_EP_STATE_STREAMING
Audio Stream Endpoint Streaming state.
Definition bap.h:405
#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:44
#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
Header file for the single-linked list API.
#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:51
Codec capability structure.
Definition audio.h:163
Codec specific configuration structure.
Definition audio.h:230
Structure storing values of fields of ASE Control Point notification.
Definition ascs.h:116
Codec ID structure for a Broadcast Audio Source Endpoint (BASE).
Definition bap.h:1958
uint16_t cid
Codec Company ID.
Definition bap.h:1962
uint16_t vid
Codec Company Vendor ID.
Definition bap.h:1964
uint8_t id
Codec ID.
Definition bap.h:1960
BIS structure for each BIS in a Broadcast Audio Source Endpoint (BASE) subgroup.
Definition bap.h:1968
uint8_t * data
Codec Specific Data.
Definition bap.h:1974
uint8_t data_len
Codec Specific Data length.
Definition bap.h:1972
uint8_t index
Unique index of the BIS.
Definition bap.h:1970
Struct to hold subgroup specific information for the receive state.
Definition bap.h:439
uint8_t metadata[CONFIG_BT_AUDIO_CODEC_CFG_MAX_METADATA_SIZE]
The metadata.
Definition bap.h:448
uint32_t bis_sync
BIS synced bitfield.
Definition bap.h:441
uint8_t metadata_len
Length of the metadata.
Definition bap.h:444
Parameters for adding a source to a Broadcast Audio Scan Service server.
Definition bap.h:2964
uint8_t num_subgroups
Number of subgroups.
Definition bap.h:2985
bt_addr_le_t addr
Address of the advertiser.
Definition bap.h:2966
uint8_t adv_sid
SID of the advertising set.
Definition bap.h:2969
struct bt_bap_bass_subgroup * subgroups
Pointer to array of subgroups.
Definition bap.h:2992
uint16_t pa_interval
Periodic advertising interval in milliseconds.
Definition bap.h:2982
bool pa_sync
Whether to sync to periodic advertisements.
Definition bap.h:2972
uint32_t broadcast_id
24-bit broadcast ID
Definition bap.h:2975
Struct to hold the Basic Audio Profile Broadcast Assistant callbacks.
Definition bap.h:2781
void(* discover)(struct bt_conn *conn, int err, uint8_t recv_state_count)
Callback function for bt_bap_broadcast_assistant_discover.
Definition bap.h:2791
void(* broadcast_code)(struct bt_conn *conn, int err)
Callback function for bt_bap_broadcast_assistant_set_broadcast_code().
Definition bap.h:2864
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:2815
void(* scan_stop)(struct bt_conn *conn, int err)
Callback function for bt_bap_broadcast_assistant_scan_stop().
Definition bap.h:2840
void(* mod_src)(struct bt_conn *conn, int err)
Callback function for bt_bap_broadcast_assistant_mod_src().
Definition bap.h:2856
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:2803
void(* scan_start)(struct bt_conn *conn, int err)
Callback function for bt_bap_broadcast_assistant_scan_start().
Definition bap.h:2832
void(* add_src)(struct bt_conn *conn, int err)
Callback function for bt_bap_broadcast_assistant_add_src().
Definition bap.h:2848
void(* rem_src)(struct bt_conn *conn, int err)
Callback function for bt_bap_broadcast_assistant_rem_src().
Definition bap.h:2872
void(* recv_state_removed)(struct bt_conn *conn, uint8_t src_id)
Callback function for when a receive state is removed.
Definition bap.h:2824
Parameters for modifying a source.
Definition bap.h:3012
struct bt_bap_bass_subgroup * subgroups
Pointer to array of subgroups.
Definition bap.h:3030
uint8_t num_subgroups
Number of subgroups.
Definition bap.h:3027
uint8_t src_id
Source ID of the receive state.
Definition bap.h:3014
bool pa_sync
Whether to sync to periodic advertisements.
Definition bap.h:3017
uint16_t pa_interval
Periodic advertising interval.
Definition bap.h:3024
Broadcast Audio Sink callback structure.
Definition bap.h:2447
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:2458
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:2489
void(* syncable)(struct bt_bap_broadcast_sink *sink, const struct bt_iso_biginfo *biginfo)
Broadcast sink is syncable.
Definition bap.h:2473
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:2481
Abstract Audio Broadcast Sink structure.
Struct to hold the Broadcast Source callbacks.
Definition bap.h:2161
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:2167
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:2175
Broadcast Source create parameters.
Definition bap.h:2236
uint16_t iso_interval
ISO interval.
Definition bap.h:2296
uint8_t packing
Broadcast Source packing mode.
Definition bap.h:2253
uint8_t pto
Pre-transmission offset.
Definition bap.h:2287
size_t params_count
The number of parameters in subgroup_params.
Definition bap.h:2238
struct bt_bap_broadcast_source_subgroup_param * params
Array of stream parameters.
Definition bap.h:2241
uint8_t broadcast_code[BT_ISO_BROADCAST_CODE_SIZE]
Broadcast code.
Definition bap.h:2268
const struct bt_bap_qos_cfg * qos
Quality of Service configuration.
Definition bap.h:2244
bool encryption
Whether or not to encrypt the streams.
Definition bap.h:2256
uint8_t irc
Immediate Repetition Count.
Definition bap.h:2278
Broadcast Source stream parameters.
Definition bap.h:2206
struct bt_bap_stream * stream
Audio stream.
Definition bap.h:2208
const uint8_t * data
BIS Codec Specific Configuration.
Definition bap.h:2219
size_t data_len
The number of elements in the data array.
Definition bap.h:2216
Broadcast Source subgroup parameters.
Definition bap.h:2224
const struct bt_audio_codec_cfg * codec_cfg
Subgroup Codec configuration.
Definition bap.h:2232
size_t params_count
The number of parameters in stream_params.
Definition bap.h:2226
struct bt_bap_broadcast_source_stream_param * params
Array of stream parameters.
Definition bap.h:2229
Abstract Audio Broadcast Source structure.
Structure holding information of audio stream endpoint.
Definition bap.h:641
uint8_t id
The ID of the endpoint.
Definition bap.h:643
bool can_recv
True if the stream associated with the endpoint is able to receive data.
Definition bap.h:658
struct bt_iso_chan * iso_chan
The isochronous channel associated with the endpoint.
Definition bap.h:652
enum bt_bap_ep_state state
The state of the endpoint.
Definition bap.h:646
struct bt_bap_ep * paired_ep
Pointer to paired endpoint if the endpoint is part of a bidirectional CIS, otherwise NULL.
Definition bap.h:663
enum bt_audio_dir dir
Capabilities type.
Definition bap.h:649
bool can_send
True if the stream associated with the endpoint is able to send data.
Definition bap.h:655
const struct bt_bap_qos_cfg_pref * qos_pref
Pointer to the preferred QoS settings associated with the endpoint.
Definition bap.h:666
Abstract Audio Endpoint structure.
Audio Stream Quality of Service Preference structure.
Definition ascs.h:181
QoS configuration structure.
Definition bap.h:238
uint16_t sdu
Maximum SDU size.
Definition bap.h:283
uint8_t burst_number
Burst number.
Definition bap.h:321
enum bt_bap_qos_cfg_framing framing
QoS Framing.
Definition bap.h:260
uint16_t latency
Maximum Transport Latency.
Definition bap.h:292
uint8_t num_subevents
Number of subevents.
Definition bap.h:330
uint8_t rtn
Retransmission Number.
Definition bap.h:276
uint32_t interval
SDU Interval.
Definition bap.h:300
uint8_t phy
PHY.
Definition bap.h:268
uint16_t max_pdu
Maximum PDU size.
Definition bap.h:314
uint32_t pd
Presentation Delay in microseconds.
Definition bap.h:249
Parameters for bt_bap_scan_delegator_add_src().
Definition bap.h:2636
enum bt_bap_pa_state pa_state
Periodic Advertising sync state.
Definition bap.h:2649
uint8_t num_subgroups
Number of subgroups.
Definition bap.h:2658
enum bt_bap_big_enc_state encrypt_state
The broadcast isochronous group encryption state.
Definition bap.h:2652
bt_addr_le_t addr
Periodic Advertiser Address.
Definition bap.h:2638
uint8_t sid
Advertiser SID.
Definition bap.h:2641
uint32_t broadcast_id
The 24-bit broadcast ID.
Definition bap.h:2655
struct bt_bap_bass_subgroup subgroups[COND_CODE_1(CONFIG_BT_AUDIO,(CONFIG_BT_BAP_BASS_MAX_SUBGROUPS),(0))]
Subgroup specific information.
Definition bap.h:2661
Struct to hold the Basic Audio Profile Scan Delegator callbacks.
Definition bap.h:495
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:522
int(* add_source)(struct bt_conn *conn, const struct bt_bap_scan_delegator_recv_state *recv_state)
Add Source operation callback.
Definition bap.h:605
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:539
void(* recv_state_updated)(struct bt_conn *conn, const struct bt_bap_scan_delegator_recv_state *recv_state)
Receive state updated.
Definition bap.h:503
void(* broadcast_code)(struct bt_conn *conn, const struct bt_bap_scan_delegator_recv_state *recv_state, const uint8_t broadcast_code[BT_ISO_BROADCAST_CODE_SIZE])
Broadcast code received.
Definition bap.h:553
int(* remove_source)(struct bt_conn *conn, uint8_t src_id)
Remove Source operation callback.
Definition bap.h:637
int(* bis_sync_req)(struct bt_conn *conn, const struct bt_bap_scan_delegator_recv_state *recv_state, const uint32_t bis_sync_req[COND_CODE_1(CONFIG_BT_AUDIO,(CONFIG_BT_BAP_BASS_MAX_SUBGROUPS),(0))])
Broadcast Isochronous Stream synchronize request.
Definition bap.h:579
void(* scanning_state)(struct bt_conn *conn, bool is_scanning)
Broadcast Assistant scanning state callback.
Definition bap.h:591
int(* modify_source)(struct bt_conn *conn, const struct bt_bap_scan_delegator_recv_state *recv_state)
Modify Source operation callback.
Definition bap.h:621
Parameters for bt_bap_scan_delegator_mod_src().
Definition bap.h:2685
uint32_t broadcast_id
The 24-bit broadcast ID.
Definition bap.h:2693
struct bt_bap_bass_subgroup subgroups[COND_CODE_1(CONFIG_BT_AUDIO,(CONFIG_BT_BAP_BASS_MAX_SUBGROUPS),(0))]
Subgroup specific information.
Definition bap.h:2699
uint8_t num_subgroups
Number of subgroups.
Definition bap.h:2696
uint8_t src_id
The periodic adverting sync.
Definition bap.h:2687
enum bt_bap_big_enc_state encrypt_state
The broadcast isochronous group encryption state.
Definition bap.h:2690
Represents the Broadcast Audio Scan Service receive state.
Definition bap.h:453
uint8_t src_id
The source ID.
Definition bap.h:455
uint8_t bad_code[BT_ISO_BROADCAST_CODE_SIZE]
The bad broadcast code.
Definition bap.h:477
enum bt_bap_pa_state pa_sync_state
The periodic adverting sync state.
Definition bap.h:464
bt_addr_le_t addr
The Bluetooth address.
Definition bap.h:458
struct bt_bap_bass_subgroup subgroups[COND_CODE_1(CONFIG_BT_AUDIO,(CONFIG_BT_BAP_BASS_MAX_SUBGROUPS),(0))]
Subgroup specific information.
Definition bap.h:487
uint8_t adv_sid
The advertising set ID.
Definition bap.h:461
uint8_t num_subgroups
Number of subgroups.
Definition bap.h:480
uint32_t broadcast_id
The 24-bit broadcast ID.
Definition bap.h:470
enum bt_bap_big_enc_state encrypt_state
The broadcast isochronous group encryption state.
Definition bap.h:467
Stream operation.
Definition bap.h:753
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:848
void(* enabled)(struct bt_bap_stream *stream)
Stream enabled callback.
Definition bap.h:784
void(* qos_configured)(struct bt_bap_stream *stream)
Stream QoS configured callback.
Definition bap.h:775
void(* sent)(struct bt_bap_stream *stream)
Stream audio HCI sent callback.
Definition bap.h:865
void(* released)(struct bt_bap_stream *stream)
Stream released callback.
Definition bap.h:813
void(* disabled)(struct bt_bap_stream *stream)
Stream disabled callback.
Definition bap.h:803
void(* connected)(struct bt_bap_stream *stream)
Isochronous channel connected callback.
Definition bap.h:880
void(* metadata_updated)(struct bt_bap_stream *stream)
Stream metadata updated callback.
Definition bap.h:794
void(* started)(struct bt_bap_stream *stream)
Stream started callback.
Definition bap.h:824
void(* disconnected)(struct bt_bap_stream *stream, uint8_t reason)
Isochronous channel disconnected callback.
Definition bap.h:894
void(* stopped)(struct bt_bap_stream *stream, uint8_t reason)
Stream stopped callback.
Definition bap.h:834
void(* codec_configured)(struct bt_bap_stream *stream, const struct bt_bap_qos_cfg_pref *pref)
Stream codec configured callback.
Definition bap.h:764
Basic Audio Profile stream structure.
Definition bap.h:704
void * group
Unicast or Broadcast group - Used internally.
Definition bap.h:739
const struct bt_audio_codec_cfg * codec_cfg
Codec Configuration.
Definition bap.h:716
struct bt_bap_stream_ops * ops
Audio stream operations.
Definition bap.h:726
const struct bt_bap_qos_cfg * qos
QoS Configuration.
Definition bap.h:723
struct bt_iso_chan * iso
ISO channel reference.
Definition bap.h:736
struct bt_conn * conn
Connection reference.
Definition bap.h:706
struct bt_bap_ep * ep
Endpoint reference.
Definition bap.h:709
void * user_data
Stream user data.
Definition bap.h:729
Unicast Client callback structure.
Definition bap.h:1677
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:1753
void(* discover)(struct bt_conn *conn, int err, enum bt_audio_dir dir)
BAP discovery callback function.
Definition bap.h:1867
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:1740
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:1839
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:1796
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:1768
void(* location)(struct bt_conn *conn, enum bt_audio_dir dir, enum bt_audio_location loc)
Remote Unicast Server Audio Locations.
Definition bap.h:1688
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:1809
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:1822
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:1700
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:1783
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:1713
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:1853
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:1725
Structure holding information of a unicast group.
Definition bap.h:1579
uint32_t source_pd
Presentation delay for source ASEs (peripheral to central audio direction).
Definition bap.h:1596
enum bt_bap_qos_cfg_framing framing
The framing of the streams in the group.
Definition bap.h:1627
uint8_t p_to_c_ft
Peripheral to Central flush timeout in multiples of the ISO interval.
Definition bap.h:1657
bool has_been_connected
Whether any stream in the group has been connected.
Definition bap.h:1642
uint8_t c_to_p_ft
Central to Peripheral flush timeout in multiples of the ISO interval.
Definition bap.h:1650
uint16_t p_to_c_latency
Peripheral to Central maximum transport latency in milliseconds.
Definition bap.h:1624
uint32_t p_to_c_interval
Peripheral to Central SDU interval in microseconds.
Definition bap.h:1610
uint32_t sink_pd
Presentation delay for sink ASEs (central to peripheral audio direction).
Definition bap.h:1587
uint16_t c_to_p_latency
Central to Peripheral maximum transport latency in milliseconds.
Definition bap.h:1617
uint32_t c_to_p_interval
Central to Peripheral SDU interval in microseconds.
Definition bap.h:1603
uint8_t packing
The packing of the group.
Definition bap.h:1634
uint16_t iso_interval
ISO interval in 1.25 ms units.
Definition bap.h:1660
Parameters for the creating unicast groups with bt_bap_unicast_group_create().
Definition bap.h:1435
uint16_t iso_interval
ISO interval.
Definition bap.h:1479
uint8_t packing
Unicast Group packing mode.
Definition bap.h:1449
uint8_t p_to_c_ft
Peripheral to Central flush timeout.
Definition bap.h:1470
uint8_t c_to_p_ft
Central to Peripheral flush timeout.
Definition bap.h:1460
size_t params_count
The number of parameters in params.
Definition bap.h:1437
struct bt_bap_unicast_group_stream_pair_param * params
Array of stream parameters.
Definition bap.h:1440
Parameter struct for the unicast group functions.
Definition bap.h:1426
struct bt_bap_unicast_group_stream_param * rx_param
Pointer to a receiving stream parameters.
Definition bap.h:1428
struct bt_bap_unicast_group_stream_param * tx_param
Pointer to a transmitting stream parameters.
Definition bap.h:1431
Parameter struct for each stream in the unicast group.
Definition bap.h:1412
const struct bt_bap_qos_cfg * qos
The QoS settings for the stream object.
Definition bap.h:1417
struct bt_bap_stream * stream
Pointer to a stream object.
Definition bap.h:1414
Abstract Audio Unicast Group structure.
Unicast Server callback structure.
Definition bap.h:1167
int(* disable)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp)
Stream Disable request callback.
Definition bap.h:1282
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:1223
int(* start)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp)
Stream Start request callback.
Definition bap.h:1253
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:1268
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:1239
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:1206
int(* stop)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp)
Stream Stop callback.
Definition bap.h:1295
int(* release)(struct bt_bap_stream *stream, struct bt_bap_ascs_rsp *rsp)
Stream release callback.
Definition bap.h:1309
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:1186
Structure for registering Unicast Server.
Definition bap.h:898
uint8_t snk_cnt
Sink Count to register.
Definition bap.h:904
uint8_t src_cnt
Source Count to register.
Definition bap.h:910
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:2551
Group structure.
Definition grp.h:18
Simple network buffer representation.
Definition net_buf.h:89
Network buffer representation.
Definition net_buf.h:1054
Macro utilities.