12#ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_AUDIO_H_
13#define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_AUDIO_H_
26#include <zephyr/autoconf.h>
45#define BT_AUDIO_BROADCAST_ID_SIZE 3U
47#define BT_AUDIO_BROADCAST_ID_MAX 0xFFFFFFU
49#define BT_AUDIO_PD_PREF_NONE 0x000000U
51#define BT_AUDIO_PD_MAX 0xFFFFFFU
53#define BT_AUDIO_RTN_PREF_NONE 0xFFU
56#define BT_AUDIO_LANG_SIZE 3U
68#define BT_AUDIO_CODEC_CAP_CHAN_COUNT_SUPPORT(...) \
69 ((enum bt_audio_codec_cap_chan_count)((FOR_EACH(BIT, (|), __VA_ARGS__)) >> 1))
84#define BT_AUDIO_METADATA_TYPE_IS_KNOWN(_type) \
85 (IN_RANGE((_type), BT_AUDIO_METADATA_TYPE_PREF_CONTEXT, \
86 BT_AUDIO_METADATA_TYPE_BROADCAST_IMMEDIATE) || \
87 (_type) == BT_AUDIO_METADATA_TYPE_EXTENDED || (_type) == BT_AUDIO_METADATA_TYPE_VENDOR)
94#define BT_AUDIO_UNICAST_ANNOUNCEMENT_GENERAL 0x00U
96#define BT_AUDIO_UNICAST_ANNOUNCEMENT_TARGETED 0x01U
107#define BT_AUDIO_CODEC_DATA(_type, _bytes...) \
108 (sizeof((uint8_t)_type) + sizeof((uint8_t[]){_bytes})), (_type), _bytes
119#define BT_AUDIO_CODEC_CFG(_id, _cid, _vid, _data, _meta) \
120 ((struct bt_audio_codec_cfg){ \
122 .path_id = BT_ISO_DATA_PATH_HCI, \
123 .ctlr_transcode = false, \
124 COND_CODE_1(IS_ENABLED(CONFIG_BT_BAP_UNICAST), \
125 (.target_latency = BT_AUDIO_CODEC_CFG_TARGET_LATENCY_BALANCED, \
126 .target_phy = BT_AUDIO_CODEC_CFG_TARGET_PHY_2M,), \
131 .data_len = sizeof((uint8_t[])_data), \
133 .meta_len = sizeof((uint8_t[])_meta), \
146#define BT_AUDIO_CODEC_CAP(_id, _cid, _vid, _data, _meta) \
147 ((struct bt_audio_codec_cap){ \
149 .path_id = BT_ISO_DATA_PATH_HCI, \
150 .ctlr_transcode = false, \
154 .data_len = sizeof((uint8_t[])_data), \
156 .meta_len = sizeof((uint8_t[])_meta), \
180#if CONFIG_BT_AUDIO_CODEC_CAP_MAX_DATA_SIZE > 0 || defined(__DOXYGEN__)
186#if defined(CONFIG_BT_AUDIO_CODEC_CAP_MAX_METADATA_SIZE) || defined(__DOXYGEN__)
241#if defined(CONFIG_BT_BAP_UNICAST)
259#if CONFIG_BT_AUDIO_CODEC_CFG_MAX_DATA_SIZE > 0 || defined(__DOXYGEN__)
265#if CONFIG_BT_AUDIO_CODEC_CFG_MAX_METADATA_SIZE > 0 || defined(__DOXYGEN__)
288 bool (*func)(
struct bt_data *data,
void *user_data),
void *user_data);
456 bool fallback_to_default);
526 bool fallback_to_default);
645 bool fallback_to_default);
714 const uint8_t *program_info,
size_t program_info_len);
772 const uint8_t *ccid_list,
size_t ccid_list_len);
814 const uint8_t **program_info_uri);
828 const uint8_t *program_info_uri,
829 size_t program_info_uri_len);
926 const uint8_t **broadcast_name);
945 size_t broadcast_name_len);
960 const uint8_t **extended_meta);
974 const uint8_t *extended_meta,
size_t extended_meta_len);
1003 const uint8_t *vendor_meta,
size_t vendor_meta_len);
1124 bool fallback_to_default);
1181 bool fallback_to_default);
1194 uint8_t codec_frames_per_sdu);
1307 const uint8_t **program_info);
1321 const uint8_t *program_info,
size_t program_info_len);
1379 const uint8_t *ccid_list,
size_t ccid_list_len);
1421 const uint8_t **program_info_uri);
1435 const uint8_t *program_info_uri,
1436 size_t program_info_uri_len);
1532 const uint8_t **broadcast_name);
1550 const uint8_t *broadcast_name,
1551 size_t broadcast_name_len);
1565 const uint8_t **extended_meta);
1579 const uint8_t *extended_meta,
size_t extended_meta_len);
1608 const uint8_t *vendor_meta,
size_t vendor_meta_len);
1636 return "Unspecified";
1638 return "Conversational";
1644 return "Instructional";
1646 return "Voice assistant";
1650 return "Sound effects";
1652 return "Notifications";
1658 return "Emergency alarm";
1660 return "Unknown context";
1673 switch (parental_rating) {
1679 return "Age 5 or above";
1681 return "Age 6 or above";
1683 return "Age 7 or above";
1685 return "Age 8 or above";
1687 return "Age 9 or above";
1689 return "Age 10 or above";
1691 return "Age 11 or above";
1693 return "Age 12 or above";
1695 return "Age 13 or above";
1697 return "Age 14 or above";
1699 return "Age 15 or above";
1701 return "Age 16 or above";
1703 return "Age 17 or above";
1705 return "Age 18 or above";
1707 return "Unknown rating";
1726 return "Unknown active state";
1769 return "Unknown supported frequency";
1785 switch (frame_dur) {
1791 return "7.5 ms preferred";
1793 return "10 ms preferred";
1795 return "Unknown frame duration";
1811 switch (chan_count) {
1815 return "2 channels";
1817 return "3 channels";
1819 return "4 channels";
1821 return "5 channels";
1823 return "6 channels";
1825 return "7 channels";
1827 return "8 channels";
1829 return "Unknown channel count";
1848 return "Front left";
1850 return "Front right";
1852 return "Front center";
1854 return "Low frequency effects 1";
1858 return "Back right";
1860 return "Front left of center";
1862 return "Front right of center";
1864 return "Back center";
1866 return "Low frequency effects 2";
1870 return "Side right";
1872 return "Top front left";
1874 return "Top front right";
1876 return "Top front center";
1878 return "Top center";
1880 return "Top back left";
1882 return "Top back right";
1884 return "Top side left";
1886 return "Top side right";
1888 return "Top back center";
1890 return "Bottom front center";
1892 return "Bottom front left";
1894 return "Bottom front right";
1896 return "Front left wide";
1898 return "Front right wde";
1900 return "Left surround";
1902 return "Right surround";
1904 return "Unknown location";
Bluetooth Assigned Numbers, codes and identifiers.
Header file for the Atomic operations API.
Bluetooth subsystem core APIs.
Bluetooth data buffer API.
Bluetooth connection handling.
Bluetooth data types and helpers.
Generic Attribute Profile handling.
bt_audio_active_state
Audio Active State defined by the Generic Audio assigned numbers (bluetooth.com).
Definition assigned_numbers.h:1290
bt_audio_assisted_listening_stream
Assisted Listening Stream defined by the Generic Audio assigned numbers (bluetooth....
Definition assigned_numbers.h:1298
bt_audio_location
Location values for BT Audio.
Definition assigned_numbers.h:1389
bt_audio_parental_rating
Parental rating defined by the Generic Audio assigned numbers (bluetooth.com).
Definition assigned_numbers.h:1254
bt_audio_codec_cfg_frame_dur
Codec configuration frame duration.
Definition assigned_numbers.h:1166
bt_audio_codec_cfg_freq
Codec configuration sampling frequency.
Definition assigned_numbers.h:1124
bt_audio_codec_cfg_type
Codec configuration types.
Definition assigned_numbers.h:1106
bt_audio_codec_cap_freq
Supported frequencies bitfield.
Definition assigned_numbers.h:972
bt_audio_metadata_type
Codec metadata type IDs.
Definition assigned_numbers.h:1308
bt_audio_codec_cap_chan_count
Supported audio capabilities channel count bitfield.
Definition assigned_numbers.h:1053
bt_audio_codec_cap_frame_dur
Supported frame durations bitfield.
Definition assigned_numbers.h:1024
bt_audio_codec_cap_type
Codec capability types.
Definition assigned_numbers.h:954
bt_audio_context
Audio Context Type for Generic Audio.
Definition assigned_numbers.h:1179
@ BT_AUDIO_ACTIVE_STATE_ENABLED
Audio data is being transmitted.
Definition assigned_numbers.h:1294
@ BT_AUDIO_ACTIVE_STATE_DISABLED
No audio data is being transmitted.
Definition assigned_numbers.h:1292
@ BT_AUDIO_LOCATION_FRONT_CENTER
Front Center.
Definition assigned_numbers.h:1397
@ BT_AUDIO_LOCATION_TOP_BACK_LEFT
Top Back Left.
Definition assigned_numbers.h:1425
@ BT_AUDIO_LOCATION_LOW_FREQ_EFFECTS_2
Low Frequency Effects 2.
Definition assigned_numbers.h:1411
@ BT_AUDIO_LOCATION_TOP_SIDE_RIGHT
Top Side Right.
Definition assigned_numbers.h:1431
@ BT_AUDIO_LOCATION_FRONT_RIGHT
Front Right.
Definition assigned_numbers.h:1395
@ BT_AUDIO_LOCATION_BOTTOM_FRONT_RIGHT
Bottom Front Right.
Definition assigned_numbers.h:1439
@ BT_AUDIO_LOCATION_BACK_RIGHT
Back Right.
Definition assigned_numbers.h:1403
@ BT_AUDIO_LOCATION_TOP_CENTER
Top Center.
Definition assigned_numbers.h:1423
@ BT_AUDIO_LOCATION_LEFT_SURROUND
Left Surround.
Definition assigned_numbers.h:1445
@ BT_AUDIO_LOCATION_TOP_FRONT_RIGHT
Top Front Right.
Definition assigned_numbers.h:1419
@ BT_AUDIO_LOCATION_FRONT_RIGHT_OF_CENTER
Front Right of Center.
Definition assigned_numbers.h:1407
@ BT_AUDIO_LOCATION_FRONT_RIGHT_WIDE
Front Right Wide.
Definition assigned_numbers.h:1443
@ BT_AUDIO_LOCATION_TOP_BACK_RIGHT
Top Back Right.
Definition assigned_numbers.h:1427
@ BT_AUDIO_LOCATION_MONO_AUDIO
Mono Audio (no specified Audio Location).
Definition assigned_numbers.h:1391
@ BT_AUDIO_LOCATION_BACK_LEFT
Back Left.
Definition assigned_numbers.h:1401
@ BT_AUDIO_LOCATION_RIGHT_SURROUND
Right Surround.
Definition assigned_numbers.h:1447
@ BT_AUDIO_LOCATION_SIDE_RIGHT
Side Right.
Definition assigned_numbers.h:1415
@ BT_AUDIO_LOCATION_TOP_FRONT_LEFT
Top Front Left.
Definition assigned_numbers.h:1417
@ BT_AUDIO_LOCATION_SIDE_LEFT
Side Left.
Definition assigned_numbers.h:1413
@ BT_AUDIO_LOCATION_BOTTOM_FRONT_LEFT
Bottom Front Left.
Definition assigned_numbers.h:1437
@ BT_AUDIO_LOCATION_TOP_FRONT_CENTER
Top Front Center.
Definition assigned_numbers.h:1421
@ BT_AUDIO_LOCATION_LOW_FREQ_EFFECTS_1
Low Frequency Effects 1.
Definition assigned_numbers.h:1399
@ BT_AUDIO_LOCATION_FRONT_LEFT
Front Left.
Definition assigned_numbers.h:1393
@ BT_AUDIO_LOCATION_FRONT_LEFT_WIDE
Front Left Wide.
Definition assigned_numbers.h:1441
@ BT_AUDIO_LOCATION_BOTTOM_FRONT_CENTER
Bottom Front Center.
Definition assigned_numbers.h:1435
@ BT_AUDIO_LOCATION_BACK_CENTER
Back Center.
Definition assigned_numbers.h:1409
@ BT_AUDIO_LOCATION_TOP_SIDE_LEFT
Top Side Left.
Definition assigned_numbers.h:1429
@ BT_AUDIO_LOCATION_TOP_BACK_CENTER
Top Back Center.
Definition assigned_numbers.h:1433
@ BT_AUDIO_LOCATION_FRONT_LEFT_OF_CENTER
Front Left of Center.
Definition assigned_numbers.h:1405
@ BT_AUDIO_PARENTAL_RATING_AGE_18_OR_ABOVE
Recommended for listeners of age 18 and above.
Definition assigned_numbers.h:1286
@ BT_AUDIO_PARENTAL_RATING_AGE_15_OR_ABOVE
Recommended for listeners of age 15 and above.
Definition assigned_numbers.h:1280
@ BT_AUDIO_PARENTAL_RATING_AGE_10_OR_ABOVE
Recommended for listeners of age 10 and above.
Definition assigned_numbers.h:1270
@ BT_AUDIO_PARENTAL_RATING_AGE_7_OR_ABOVE
Recommended for listeners of age 7 and above.
Definition assigned_numbers.h:1264
@ BT_AUDIO_PARENTAL_RATING_AGE_16_OR_ABOVE
Recommended for listeners of age 16 and above.
Definition assigned_numbers.h:1282
@ BT_AUDIO_PARENTAL_RATING_AGE_17_OR_ABOVE
Recommended for listeners of age 17 and above.
Definition assigned_numbers.h:1284
@ BT_AUDIO_PARENTAL_RATING_AGE_5_OR_ABOVE
Recommended for listeners of age 5 and above.
Definition assigned_numbers.h:1260
@ BT_AUDIO_PARENTAL_RATING_AGE_8_OR_ABOVE
Recommended for listeners of age 8 and above.
Definition assigned_numbers.h:1266
@ BT_AUDIO_PARENTAL_RATING_AGE_13_OR_ABOVE
Recommended for listeners of age 13 and above.
Definition assigned_numbers.h:1276
@ BT_AUDIO_PARENTAL_RATING_AGE_9_OR_ABOVE
Recommended for listeners of age 9 and above.
Definition assigned_numbers.h:1268
@ BT_AUDIO_PARENTAL_RATING_AGE_11_OR_ABOVE
Recommended for listeners of age 11 and above.
Definition assigned_numbers.h:1272
@ BT_AUDIO_PARENTAL_RATING_AGE_12_OR_ABOVE
Recommended for listeners of age 12 and above.
Definition assigned_numbers.h:1274
@ BT_AUDIO_PARENTAL_RATING_AGE_6_OR_ABOVE
Recommended for listeners of age 6 and above.
Definition assigned_numbers.h:1262
@ BT_AUDIO_PARENTAL_RATING_AGE_ANY
For all ages.
Definition assigned_numbers.h:1258
@ BT_AUDIO_PARENTAL_RATING_NO_RATING
No rating.
Definition assigned_numbers.h:1256
@ BT_AUDIO_PARENTAL_RATING_AGE_14_OR_ABOVE
Recommended for listeners of age 14 and above.
Definition assigned_numbers.h:1278
@ BT_AUDIO_CODEC_CAP_FREQ_176KHZ
176.4 Khz sampling frequency
Definition assigned_numbers.h:1004
@ BT_AUDIO_CODEC_CAP_FREQ_192KHZ
192 Khz sampling frequency
Definition assigned_numbers.h:1007
@ BT_AUDIO_CODEC_CAP_FREQ_88KHZ
88.2 Khz sampling frequency
Definition assigned_numbers.h:998
@ BT_AUDIO_CODEC_CAP_FREQ_8KHZ
8 Khz sampling frequency
Definition assigned_numbers.h:974
@ BT_AUDIO_CODEC_CAP_FREQ_11KHZ
11.025 Khz sampling frequency
Definition assigned_numbers.h:977
@ BT_AUDIO_CODEC_CAP_FREQ_32KHZ
32 Khz sampling frequency
Definition assigned_numbers.h:989
@ BT_AUDIO_CODEC_CAP_FREQ_48KHZ
48 Khz sampling frequency
Definition assigned_numbers.h:995
@ BT_AUDIO_CODEC_CAP_FREQ_24KHZ
24 Khz sampling frequency
Definition assigned_numbers.h:986
@ BT_AUDIO_CODEC_CAP_FREQ_16KHZ
16 Khz sampling frequency
Definition assigned_numbers.h:980
@ BT_AUDIO_CODEC_CAP_FREQ_44KHZ
44.1 Khz sampling frequency
Definition assigned_numbers.h:992
@ BT_AUDIO_CODEC_CAP_FREQ_22KHZ
22.05 Khz sampling frequency
Definition assigned_numbers.h:983
@ BT_AUDIO_CODEC_CAP_FREQ_384KHZ
384 Khz sampling frequency
Definition assigned_numbers.h:1010
@ BT_AUDIO_CODEC_CAP_FREQ_96KHZ
96 Khz sampling frequency
Definition assigned_numbers.h:1001
@ BT_AUDIO_CODEC_CAP_CHAN_COUNT_4
Supporting 4 channel.
Definition assigned_numbers.h:1064
@ BT_AUDIO_CODEC_CAP_CHAN_COUNT_2
Supporting 2 channel.
Definition assigned_numbers.h:1058
@ BT_AUDIO_CODEC_CAP_CHAN_COUNT_1
Supporting 1 channel.
Definition assigned_numbers.h:1055
@ BT_AUDIO_CODEC_CAP_CHAN_COUNT_3
Supporting 3 channel.
Definition assigned_numbers.h:1061
@ BT_AUDIO_CODEC_CAP_CHAN_COUNT_8
Supporting 8 channel.
Definition assigned_numbers.h:1076
@ BT_AUDIO_CODEC_CAP_CHAN_COUNT_7
Supporting 7 channel.
Definition assigned_numbers.h:1073
@ BT_AUDIO_CODEC_CAP_CHAN_COUNT_5
Supporting 5 channel.
Definition assigned_numbers.h:1067
@ BT_AUDIO_CODEC_CAP_CHAN_COUNT_6
Supporting 6 channel.
Definition assigned_numbers.h:1070
@ BT_AUDIO_CODEC_CAP_DURATION_7_5
7.5 msec frame duration capability
Definition assigned_numbers.h:1026
@ BT_AUDIO_CODEC_CAP_DURATION_PREFER_7_5
7.5 msec preferred frame duration capability.
Definition assigned_numbers.h:1041
@ BT_AUDIO_CODEC_CAP_DURATION_PREFER_10
10 msec preferred frame duration capability
Definition assigned_numbers.h:1049
@ BT_AUDIO_CODEC_CAP_DURATION_10
10 msec frame duration capability
Definition assigned_numbers.h:1029
@ BT_AUDIO_CONTEXT_TYPE_NOTIFICATIONS
Notification and reminder sounds; attention-seeking audio, for example, in beeps signaling the arriva...
Definition assigned_numbers.h:1217
@ BT_AUDIO_CONTEXT_TYPE_EMERGENCY_ALARM
Emergency alarm Emergency sounds, for example, fire alarms or other urgent alerts.
Definition assigned_numbers.h:1229
@ BT_AUDIO_CONTEXT_TYPE_INSTRUCTIONAL
Instructional audio, for example, in navigation, announcements, or user guidance.
Definition assigned_numbers.h:1200
@ BT_AUDIO_CONTEXT_TYPE_RINGTONE
Alerts the user to an incoming call, for example, an incoming telephony or video call,...
Definition assigned_numbers.h:1222
@ BT_AUDIO_CONTEXT_TYPE_LIVE
Live audio, for example, from a microphone where audio is perceived both through a direct acoustic pa...
Definition assigned_numbers.h:1207
@ BT_AUDIO_CONTEXT_TYPE_MEDIA
Media, for example, music playback, radio, podcast or movie soundtrack, or tv audio.
Definition assigned_numbers.h:1193
@ BT_AUDIO_CONTEXT_TYPE_GAME
Audio associated with video gaming, for example gaming media; gaming effects; music and in-game voice...
Definition assigned_numbers.h:1198
@ BT_AUDIO_CONTEXT_TYPE_SOUND_EFFECTS
Sound effects including keyboard and touch feedback; menu and user interface sounds; and other system...
Definition assigned_numbers.h:1212
@ BT_AUDIO_CONTEXT_TYPE_VOICE_ASSISTANTS
Man-machine communication, for example, with voice recognition or virtual assistants.
Definition assigned_numbers.h:1202
@ BT_AUDIO_CONTEXT_TYPE_NONE
No context type.
Definition assigned_numbers.h:1181
@ BT_AUDIO_CONTEXT_TYPE_CONVERSATIONAL
Conversation between humans, for example, in telephony or video calls, including traditional cellular...
Definition assigned_numbers.h:1191
@ BT_AUDIO_CONTEXT_TYPE_ALERTS
Alarms and timers; immediate alerts, for example, in a critical battery alarm, timer expiry or alarm ...
Definition assigned_numbers.h:1227
@ BT_AUDIO_CONTEXT_TYPE_UNSPECIFIED
Identifies audio where the use case context does not match any other defined value,...
Definition assigned_numbers.h:1186
int bt_audio_codec_cap_meta_set_ccid_list(struct bt_audio_codec_cap *codec_cap, const uint8_t *ccid_list, size_t ccid_list_len)
Set the CCID list of a codec capability metadata.
int bt_audio_codec_cap_set_val(struct bt_audio_codec_cap *codec_cap, enum bt_audio_codec_cap_type type, const uint8_t *data, size_t data_len)
Set or add a specific codec capability value.
int bt_audio_codec_cap_get_frame_dur(const struct bt_audio_codec_cap *codec_cap)
Extract the frequency from a codec capability.
int bt_audio_codec_cap_get_max_codec_frames_per_sdu(const struct bt_audio_codec_cap *codec_cap, bool fallback_to_default)
Extract the maximum codec frames per SDU from a codec capability.
int bt_audio_codec_cap_meta_set_vendor(struct bt_audio_codec_cap *codec_cap, const uint8_t *vendor_meta, size_t vendor_meta_len)
Set the vendor specific metadata of a codec capability metadata.
int bt_audio_codec_cap_meta_set_val(struct bt_audio_codec_cap *codec_cap, enum bt_audio_metadata_type type, const uint8_t *data, size_t data_len)
Set or add a specific codec capability metadata value.
int bt_audio_codec_cap_meta_get_ccid_list(const struct bt_audio_codec_cap *codec_cap, const uint8_t **ccid_list)
Extract CCID list.
int bt_audio_codec_cap_meta_set_assisted_listening_stream(struct bt_audio_codec_cap *codec_cap, enum bt_audio_assisted_listening_stream val)
Set the assisted listening stream value of a codec capability metadata.
int bt_audio_codec_cap_meta_get_program_info(const struct bt_audio_codec_cap *codec_cap, const uint8_t **program_info)
Extract program info.
int bt_audio_codec_cap_set_max_codec_frames_per_sdu(struct bt_audio_codec_cap *codec_cap, uint8_t codec_frames_per_sdu)
Set the maximum codec frames per SDU of a codec capability.
int bt_audio_codec_cap_meta_get_broadcast_name(const struct bt_audio_codec_cap *codec_cap, const uint8_t **broadcast_name)
Extract broadcast name.
int bt_audio_codec_cap_meta_unset_val(struct bt_audio_codec_cap *codec_cap, enum bt_audio_metadata_type type)
Unset a specific codec capability metadata value.
int bt_audio_codec_cap_meta_set_program_info(struct bt_audio_codec_cap *codec_cap, const uint8_t *program_info, size_t program_info_len)
Set the program info of a codec capability metadata.
int bt_audio_codec_cap_meta_set_broadcast_name(struct bt_audio_codec_cap *codec_cap, const uint8_t *broadcast_name, size_t broadcast_name_len)
Set the broadcast name of a codec capability metadata.
int bt_audio_codec_cap_meta_get_assisted_listening_stream(const struct bt_audio_codec_cap *codec_cap)
Extract assisted listening stream.
int bt_audio_codec_cap_set_frame_dur(struct bt_audio_codec_cap *codec_cap, enum bt_audio_codec_cap_frame_dur frame_dur)
Set the frame duration of a codec capability.
int bt_audio_codec_cap_meta_set_lang(struct bt_audio_codec_cap *codec_cap, const uint8_t lang[3U])
Set the language of a codec capability metadata.
int bt_audio_codec_cap_meta_get_val(const struct bt_audio_codec_cap *codec_cap, uint8_t type, const uint8_t **data)
Lookup a specific metadata value based on type.
int bt_audio_codec_cap_meta_set_stream_context(struct bt_audio_codec_cap *codec_cap, enum bt_audio_context ctx)
Set the stream context of a codec capability metadata.
int bt_audio_codec_cap_meta_set_parental_rating(struct bt_audio_codec_cap *codec_cap, enum bt_audio_parental_rating parental_rating)
Set the parental rating of a codec capability metadata.
int bt_audio_codec_cap_get_supported_audio_chan_counts(const struct bt_audio_codec_cap *codec_cap, bool fallback_to_default)
Extract the frequency from a codec capability.
int bt_audio_codec_cap_meta_get_extended(const struct bt_audio_codec_cap *codec_cap, const uint8_t **extended_meta)
Extract extended metadata.
int bt_audio_codec_cap_meta_set_pref_context(struct bt_audio_codec_cap *codec_cap, enum bt_audio_context ctx)
Set the preferred context of a codec capability metadata.
int bt_audio_codec_cap_meta_get_audio_active_state(const struct bt_audio_codec_cap *codec_cap)
Extract audio active state.
int bt_audio_codec_cap_meta_get_stream_context(const struct bt_audio_codec_cap *codec_cap)
Extract stream contexts.
int bt_audio_codec_cap_meta_set_bcast_audio_immediate_rend_flag(struct bt_audio_codec_cap *codec_cap)
Set the broadcast audio immediate rendering flag of a codec capability metadata.
int bt_audio_codec_cap_get_freq(const struct bt_audio_codec_cap *codec_cap)
Extract the frequency from a codec capability.
int bt_audio_codec_cap_get_octets_per_frame(const struct bt_audio_codec_cap *codec_cap, struct bt_audio_codec_octets_per_codec_frame *codec_frame)
Extract the supported octets per codec frame from a codec capability.
int bt_audio_codec_cap_meta_get_pref_context(const struct bt_audio_codec_cap *codec_cap)
Extract preferred contexts.
int bt_audio_codec_cap_meta_get_parental_rating(const struct bt_audio_codec_cap *codec_cap)
Extract parental rating.
int bt_audio_codec_cap_meta_get_bcast_audio_immediate_rend_flag(const struct bt_audio_codec_cap *codec_cap)
Extract broadcast audio immediate rendering flag.
int bt_audio_codec_cap_meta_get_vendor(const struct bt_audio_codec_cap *codec_cap, const uint8_t **vendor_meta)
Extract vendor specific metadata.
int bt_audio_codec_cap_unset_val(struct bt_audio_codec_cap *codec_cap, enum bt_audio_codec_cap_type type)
Unset a specific codec capability value.
int bt_audio_codec_cap_meta_set_extended(struct bt_audio_codec_cap *codec_cap, const uint8_t *extended_meta, size_t extended_meta_len)
Set the extended metadata of a codec capability metadata.
int bt_audio_codec_cap_set_freq(struct bt_audio_codec_cap *codec_cap, enum bt_audio_codec_cap_freq freq)
Set the supported frequencies of a codec capability.
int bt_audio_codec_cap_set_octets_per_frame(struct bt_audio_codec_cap *codec_cap, const struct bt_audio_codec_octets_per_codec_frame *codec_frame)
Set the octets per codec frame of a codec capability.
int bt_audio_codec_cap_get_val(const struct bt_audio_codec_cap *codec_cap, enum bt_audio_codec_cap_type type, const uint8_t **data)
Lookup a specific value based on type.
int bt_audio_codec_cap_meta_set_audio_active_state(struct bt_audio_codec_cap *codec_cap, enum bt_audio_active_state state)
Set the audio active state of a codec capability metadata.
int bt_audio_codec_cap_meta_get_program_info_uri(const struct bt_audio_codec_cap *codec_cap, const uint8_t **program_info_uri)
Extract program info URI.
int bt_audio_codec_cap_set_supported_audio_chan_counts(struct bt_audio_codec_cap *codec_cap, enum bt_audio_codec_cap_chan_count chan_count)
Set the channel count of a codec capability.
int bt_audio_codec_cap_meta_get_lang(const struct bt_audio_codec_cap *codec_cap, const uint8_t **lang)
Extract language.
int bt_audio_codec_cap_meta_set_program_info_uri(struct bt_audio_codec_cap *codec_cap, const uint8_t *program_info_uri, size_t program_info_uri_len)
Set the program info URI of a codec capability metadata.
int bt_audio_codec_cfg_meta_get_program_info(const struct bt_audio_codec_cfg *codec_cfg, const uint8_t **program_info)
Extract program info.
int bt_audio_codec_cfg_frame_dur_us_to_frame_dur(uint32_t frame_dur_us)
Convert frame duration in microseconds to assigned numbers frame duration.
int bt_audio_codec_cfg_meta_get_audio_active_state(const struct bt_audio_codec_cfg *codec_cfg)
Extract audio active state.
int bt_audio_codec_cfg_meta_get_extended(const struct bt_audio_codec_cfg *codec_cfg, const uint8_t **extended_meta)
Extract extended metadata.
int bt_audio_codec_cfg_frame_dur_to_frame_dur_us(enum bt_audio_codec_cfg_frame_dur frame_dur)
Convert assigned numbers frame duration to duration in microseconds.
int bt_audio_codec_cfg_meta_get_assisted_listening_stream(const struct bt_audio_codec_cfg *codec_cfg)
Extract assisted listening stream.
int bt_audio_codec_cfg_meta_set_program_info(struct bt_audio_codec_cfg *codec_cfg, const uint8_t *program_info, size_t program_info_len)
Set the program info of a codec configuration metadata.
int bt_audio_codec_cfg_get_frame_dur(const struct bt_audio_codec_cfg *codec_cfg)
Extract frame duration from BT codec config.
int bt_audio_codec_cfg_freq_to_freq_hz(enum bt_audio_codec_cfg_freq freq)
Convert assigned numbers frequency to frequency value.
int bt_audio_codec_cfg_meta_set_val(struct bt_audio_codec_cfg *codec_cfg, enum bt_audio_metadata_type type, const uint8_t *data, size_t data_len)
Set or add a specific codec configuration metadata value.
int bt_audio_codec_cfg_meta_get_vendor(const struct bt_audio_codec_cfg *codec_cfg, const uint8_t **vendor_meta)
Extract vendor specific metadata.
int bt_audio_codec_cfg_meta_get_stream_context(const struct bt_audio_codec_cfg *codec_cfg)
Extract stream contexts.
int bt_audio_codec_cfg_meta_set_broadcast_name(struct bt_audio_codec_cfg *codec_cfg, const uint8_t *broadcast_name, size_t broadcast_name_len)
Set the broadcast name of a codec configuration metadata.
int bt_audio_codec_cfg_get_octets_per_frame(const struct bt_audio_codec_cfg *codec_cfg)
Extract frame size in octets from BT codec config.
int bt_audio_codec_cfg_meta_get_lang(const struct bt_audio_codec_cfg *codec_cfg, const uint8_t **lang)
Extract language.
int bt_audio_codec_cfg_meta_set_ccid_list(struct bt_audio_codec_cfg *codec_cfg, const uint8_t *ccid_list, size_t ccid_list_len)
Set the CCID list of a codec configuration metadata.
int bt_audio_codec_cfg_meta_set_stream_context(struct bt_audio_codec_cfg *codec_cfg, enum bt_audio_context ctx)
Set the stream context of a codec configuration metadata.
int bt_audio_codec_cfg_meta_get_broadcast_name(const struct bt_audio_codec_cfg *codec_cfg, const uint8_t **broadcast_name)
Extract broadcast name.
int bt_audio_codec_cfg_meta_get_bcast_audio_immediate_rend_flag(const struct bt_audio_codec_cfg *codec_cfg)
Extract broadcast audio immediate rendering flag.
int bt_audio_codec_cfg_meta_set_assisted_listening_stream(struct bt_audio_codec_cfg *codec_cfg, enum bt_audio_assisted_listening_stream val)
Set the assisted listening stream value of a codec configuration metadata.
int bt_audio_codec_cfg_meta_set_vendor(struct bt_audio_codec_cfg *codec_cfg, const uint8_t *vendor_meta, size_t vendor_meta_len)
Set the vendor specific metadata of a codec configuration metadata.
int bt_audio_codec_cfg_meta_get_program_info_uri(const struct bt_audio_codec_cfg *codec_cfg, const uint8_t **program_info_uri)
Extract program info URI.
int bt_audio_codec_cfg_get_val(const struct bt_audio_codec_cfg *codec_cfg, enum bt_audio_codec_cfg_type type, const uint8_t **data)
Lookup a specific codec configuration value.
int bt_audio_codec_cfg_set_frame_dur(struct bt_audio_codec_cfg *codec_cfg, enum bt_audio_codec_cfg_frame_dur frame_dur)
Set the frame duration of a codec configuration.
int bt_audio_codec_cfg_set_octets_per_frame(struct bt_audio_codec_cfg *codec_cfg, uint16_t octets_per_frame)
Set the octets per codec frame of a codec configuration.
int bt_audio_codec_cfg_meta_set_lang(struct bt_audio_codec_cfg *codec_cfg, const uint8_t lang[3U])
Set the language of a codec configuration metadata.
int bt_audio_codec_cfg_meta_set_program_info_uri(struct bt_audio_codec_cfg *codec_cfg, const uint8_t *program_info_uri, size_t program_info_uri_len)
Set the program info URI of a codec configuration metadata.
int bt_audio_codec_cfg_freq_hz_to_freq(uint32_t freq_hz)
Convert frequency value to assigned numbers frequency.
int bt_audio_codec_cfg_meta_get_ccid_list(const struct bt_audio_codec_cfg *codec_cfg, const uint8_t **ccid_list)
Extract CCID list.
int bt_audio_codec_cfg_set_val(struct bt_audio_codec_cfg *codec_cfg, enum bt_audio_codec_cfg_type type, const uint8_t *data, size_t data_len)
Set or add a specific codec configuration value.
int bt_audio_codec_cfg_meta_set_pref_context(struct bt_audio_codec_cfg *codec_cfg, enum bt_audio_context ctx)
Set the preferred context of a codec configuration metadata.
int bt_audio_codec_cfg_meta_unset_val(struct bt_audio_codec_cfg *codec_cfg, enum bt_audio_metadata_type type)
Unset a specific codec configuration metadata value.
int bt_audio_codec_cfg_meta_set_parental_rating(struct bt_audio_codec_cfg *codec_cfg, enum bt_audio_parental_rating parental_rating)
Set the parental rating of a codec configuration metadata.
int bt_audio_codec_cfg_set_freq(struct bt_audio_codec_cfg *codec_cfg, enum bt_audio_codec_cfg_freq freq)
Set the frequency of a codec configuration.
int bt_audio_codec_cfg_set_frame_blocks_per_sdu(struct bt_audio_codec_cfg *codec_cfg, uint8_t frame_blocks)
Set the frame blocks per SDU of a codec configuration.
int bt_audio_codec_cfg_unset_val(struct bt_audio_codec_cfg *codec_cfg, enum bt_audio_codec_cfg_type type)
Unset a specific codec configuration value.
int bt_audio_codec_cfg_get_freq(const struct bt_audio_codec_cfg *codec_cfg)
Extract the frequency from a codec configuration.
int bt_audio_codec_cfg_get_frame_blocks_per_sdu(const struct bt_audio_codec_cfg *codec_cfg, bool fallback_to_default)
Extract number of audio frame blocks in each SDU from BT codec config.
int bt_audio_codec_cfg_meta_set_extended(struct bt_audio_codec_cfg *codec_cfg, const uint8_t *extended_meta, size_t extended_meta_len)
Set the extended metadata of a codec configuration metadata.
int bt_audio_codec_cfg_get_chan_allocation(const struct bt_audio_codec_cfg *codec_cfg, enum bt_audio_location *chan_allocation, bool fallback_to_default)
Extract channel allocation from BT codec config.
int bt_audio_codec_cfg_meta_get_val(const struct bt_audio_codec_cfg *codec_cfg, uint8_t type, const uint8_t **data)
Lookup a specific metadata value based on type.
int bt_audio_codec_cfg_meta_get_pref_context(const struct bt_audio_codec_cfg *codec_cfg, bool fallback_to_default)
Extract preferred contexts.
int bt_audio_codec_cfg_meta_set_bcast_audio_immediate_rend_flag(struct bt_audio_codec_cfg *codec_cfg)
Set the broadcast audio immediate rendering flag of a codec configuration metadata.
int bt_audio_codec_cfg_meta_get_parental_rating(const struct bt_audio_codec_cfg *codec_cfg)
Extract parental rating.
int bt_audio_codec_cfg_meta_set_audio_active_state(struct bt_audio_codec_cfg *codec_cfg, enum bt_audio_active_state state)
Set the audio active state of a codec configuration metadata.
int bt_audio_codec_cfg_set_chan_allocation(struct bt_audio_codec_cfg *codec_cfg, enum bt_audio_location chan_allocation)
Set the channel allocation of a codec configuration.
static char * bt_audio_active_state_to_str(enum bt_audio_active_state state)
Returns a string representation of a bt_audio_active_state value.
Definition audio.h:1718
static char * bt_audio_context_bit_to_str(enum bt_audio_context context)
Returns a string representation of a specific bt_audio_context bit.
Definition audio.h:1630
static char * bt_audio_parental_rating_to_str(enum bt_audio_parental_rating parental_rating)
Returns a string representation of a bt_audio_parental_rating value.
Definition audio.h:1671
static char * bt_audio_codec_cap_frame_dur_bit_to_str(enum bt_audio_codec_cap_frame_dur frame_dur)
Returns a string representation of a specific bt_audio_codec_cap_frame_dur bit.
Definition audio.h:1783
static char * bt_audio_codec_cap_chan_count_bit_to_str(enum bt_audio_codec_cap_chan_count chan_count)
Returns a string representation of a specific bt_audio_codec_cap_chan_count bit.
Definition audio.h:1809
static char * bt_audio_location_bit_to_str(enum bt_audio_location location)
Returns a string representation of a specific bt_audio_location bit.
Definition audio.h:1842
static char * bt_audio_codec_cap_freq_bit_to_str(enum bt_audio_codec_cap_freq freq)
Returns a string representation of a specific bt_audio_codec_cap_freq bit.
Definition audio.h:1739
bt_audio_dir
Audio direction from the perspective of the BAP Unicast Server / BAP Broadcast Sink.
Definition audio.h:318
bt_audio_codec_cfg_target_latency
Codec configuration target latency.
Definition audio.h:200
bt_audio_codec_cfg_target_phy
Codec configuration target PHY.
Definition audio.h:216
uint8_t bt_audio_get_chan_count(enum bt_audio_location chan_allocation)
Function to get the number of channels from the channel allocation.
#define BT_AUDIO_LANG_SIZE
Size of the stream language value, e.g.
Definition audio.h:56
int bt_audio_data_get_val(const uint8_t ltv_data[], size_t size, uint8_t type, const uint8_t **data)
Get the value of a specific data type in an length-type-value data array.
int bt_audio_data_parse(const uint8_t ltv[], size_t size, bool(*func)(struct bt_data *data, void *user_data), void *user_data)
Helper for parsing length-type-value data.
@ BT_AUDIO_DIR_SINK
Audio direction sink.
Definition audio.h:325
@ BT_AUDIO_DIR_SOURCE
Audio direction source.
Definition audio.h:332
@ BT_AUDIO_CODEC_CFG_TARGET_LATENCY_HIGH
Target high latency.
Definition audio.h:208
@ BT_AUDIO_CODEC_CFG_TARGET_LATENCY_BALANCED
Target balanced latency.
Definition audio.h:205
@ BT_AUDIO_CODEC_CFG_TARGET_LATENCY_LOW
Target low latency.
Definition audio.h:202
@ BT_AUDIO_CODEC_CFG_TARGET_PHY_2M
LE 2M PHY.
Definition audio.h:221
@ BT_AUDIO_CODEC_CFG_TARGET_PHY_CODED
LE Coded PHY.
Definition audio.h:224
@ BT_AUDIO_CODEC_CFG_TARGET_PHY_1M
LE 1M PHY.
Definition audio.h:218
Bluetooth LC3 codec handling.
state
Definition parser_state.h:29
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
Codec capability structure.
Definition audio.h:161
uint16_t vid
Codec Company Vendor ID.
Definition audio.h:179
uint8_t data[CONFIG_BT_AUDIO_CODEC_CAP_MAX_DATA_SIZE]
Codec Specific Capabilities Data.
Definition audio.h:184
uint16_t cid
Codec Company ID.
Definition audio.h:177
uint8_t path_id
Data path ID.
Definition audio.h:167
bool ctlr_transcode
Whether or not the local controller should transcode.
Definition audio.h:173
uint8_t meta[CONFIG_BT_AUDIO_CODEC_CAP_MAX_METADATA_SIZE]
Codec Specific Capabilities Metadata.
Definition audio.h:190
size_t data_len
Codec Specific Capabilities Data count.
Definition audio.h:182
uint8_t id
Codec ID.
Definition audio.h:175
size_t meta_len
Codec Specific Capabilities Metadata count.
Definition audio.h:188
Codec specific configuration structure.
Definition audio.h:228
size_t meta_len
Codec Specific Capabilities Metadata count.
Definition audio.h:267
uint16_t vid
Codec Company Vendor ID.
Definition audio.h:258
uint8_t meta[CONFIG_BT_AUDIO_CODEC_CFG_MAX_METADATA_SIZE]
Codec Specific Capabilities Metadata.
Definition audio.h:269
uint16_t cid
Codec Company ID.
Definition audio.h:256
size_t data_len
Codec Specific Capabilities Data count.
Definition audio.h:261
uint8_t path_id
Data path ID.
Definition audio.h:234
bool ctlr_transcode
Whether or not the local controller should transcode.
Definition audio.h:240
uint8_t id
Codec ID.
Definition audio.h:254
uint8_t data[CONFIG_BT_AUDIO_CODEC_CFG_MAX_DATA_SIZE]
Codec Specific Capabilities Data.
Definition audio.h:263
struct to hold minimum and maximum supported codec frame sizes
Definition audio.h:72
uint16_t min
Minimum number of octets supported per codec frame.
Definition audio.h:74
uint16_t max
Maximum number of octets supported per codec frame.
Definition audio.h:76
Bluetooth data.
Definition data.h:40