12#ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_AUDIO_H_
13#define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_AUDIO_H_
28#include <zephyr/autoconf.h>
47#define BT_AUDIO_BROADCAST_ID_SIZE 3U
49#define BT_AUDIO_BROADCAST_ID_MAX 0xFFFFFFU
51#define BT_AUDIO_PD_PREF_NONE 0x000000U
53#define BT_AUDIO_PD_MAX 0xFFFFFFU
55#define BT_AUDIO_RTN_PREF_NONE 0xFFU
58#define BT_AUDIO_LANG_SIZE 3U
70#define BT_AUDIO_CODEC_CAP_CHAN_COUNT_SUPPORT(...) \
71 ((enum bt_audio_codec_cap_chan_count)((FOR_EACH(BIT, (|), __VA_ARGS__)) >> 1))
86#define BT_AUDIO_METADATA_TYPE_IS_KNOWN(_type) \
87 (IN_RANGE((_type), BT_AUDIO_METADATA_TYPE_PREF_CONTEXT, \
88 BT_AUDIO_METADATA_TYPE_BROADCAST_IMMEDIATE) || \
89 (_type) == BT_AUDIO_METADATA_TYPE_EXTENDED || (_type) == BT_AUDIO_METADATA_TYPE_VENDOR)
96#define BT_AUDIO_UNICAST_ANNOUNCEMENT_GENERAL 0x00U
98#define BT_AUDIO_UNICAST_ANNOUNCEMENT_TARGETED 0x01U
109#define BT_AUDIO_CODEC_DATA(_type, _bytes...) \
110 (sizeof((uint8_t)_type) + sizeof((uint8_t[]){_bytes})), (_type), _bytes
121#define BT_AUDIO_CODEC_CFG(_id, _cid, _vid, _data, _meta) \
122 ((struct bt_audio_codec_cfg){ \
124 .path_id = BT_ISO_DATA_PATH_HCI, \
125 .ctlr_transcode = false, \
126 COND_CODE_1(IS_ENABLED(CONFIG_BT_BAP_UNICAST), \
127 (.target_latency = BT_AUDIO_CODEC_CFG_TARGET_LATENCY_BALANCED, \
128 .target_phy = BT_AUDIO_CODEC_CFG_TARGET_PHY_2M,), \
133 .data_len = sizeof((uint8_t[])_data), \
135 .meta_len = sizeof((uint8_t[])_meta), \
148#define BT_AUDIO_CODEC_CAP(_id, _cid, _vid, _data, _meta) \
149 ((struct bt_audio_codec_cap){ \
151 .path_id = BT_ISO_DATA_PATH_HCI, \
152 .ctlr_transcode = false, \
156 .data_len = sizeof((uint8_t[])_data), \
158 .meta_len = sizeof((uint8_t[])_meta), \
182#if CONFIG_BT_AUDIO_CODEC_CAP_MAX_DATA_SIZE > 0 || defined(__DOXYGEN__)
188#if defined(CONFIG_BT_AUDIO_CODEC_CAP_MAX_METADATA_SIZE) || defined(__DOXYGEN__)
243#if defined(CONFIG_BT_BAP_UNICAST) || defined(__DOXYGEN__)
261#if CONFIG_BT_AUDIO_CODEC_CFG_MAX_DATA_SIZE > 0 || defined(__DOXYGEN__)
267#if CONFIG_BT_AUDIO_CODEC_CFG_MAX_METADATA_SIZE > 0 || defined(__DOXYGEN__)
290 bool (*func)(
struct bt_data *data,
void *user_data),
void *user_data);
477 bool fallback_to_default);
547 bool fallback_to_default);
666 bool fallback_to_default);
735 const uint8_t *program_info,
size_t program_info_len);
793 const uint8_t *ccid_list,
size_t ccid_list_len);
835 const uint8_t **program_info_uri);
849 const uint8_t *program_info_uri,
850 size_t program_info_uri_len);
947 const uint8_t **broadcast_name);
966 size_t broadcast_name_len);
981 const uint8_t **extended_meta);
995 const uint8_t *extended_meta,
size_t extended_meta_len);
1024 const uint8_t *vendor_meta,
size_t vendor_meta_len);
1145 bool fallback_to_default);
1202 bool fallback_to_default);
1215 uint8_t codec_frames_per_sdu);
1328 const uint8_t **program_info);
1342 const uint8_t *program_info,
size_t program_info_len);
1400 const uint8_t *ccid_list,
size_t ccid_list_len);
1442 const uint8_t **program_info_uri);
1456 const uint8_t *program_info_uri,
1457 size_t program_info_uri_len);
1553 const uint8_t **broadcast_name);
1571 const uint8_t *broadcast_name,
1572 size_t broadcast_name_len);
1586 const uint8_t **extended_meta);
1600 const uint8_t *extended_meta,
size_t extended_meta_len);
1629 const uint8_t *vendor_meta,
size_t vendor_meta_len);
1657 return "Unspecified";
1659 return "Conversational";
1665 return "Instructional";
1667 return "Voice assistant";
1671 return "Sound effects";
1673 return "Notifications";
1679 return "Emergency alarm";
1681 return "Unknown context";
1694 switch (parental_rating) {
1700 return "Age 5 or above";
1702 return "Age 6 or above";
1704 return "Age 7 or above";
1706 return "Age 8 or above";
1708 return "Age 9 or above";
1710 return "Age 10 or above";
1712 return "Age 11 or above";
1714 return "Age 12 or above";
1716 return "Age 13 or above";
1718 return "Age 14 or above";
1720 return "Age 15 or above";
1722 return "Age 16 or above";
1724 return "Age 17 or above";
1726 return "Age 18 or above";
1728 return "Unknown rating";
1747 return "Unknown active state";
1790 return "Unknown supported frequency";
1806 switch (frame_dur) {
1812 return "7.5 ms preferred";
1814 return "10 ms preferred";
1816 return "Unknown frame duration";
1832 switch (chan_count) {
1836 return "2 channels";
1838 return "3 channels";
1840 return "4 channels";
1842 return "5 channels";
1844 return "6 channels";
1846 return "7 channels";
1848 return "8 channels";
1850 return "Unknown channel count";
1869 return "Front left";
1871 return "Front right";
1873 return "Front center";
1875 return "Low frequency effects 1";
1879 return "Back right";
1881 return "Front left of center";
1883 return "Front right of center";
1885 return "Back center";
1887 return "Low frequency effects 2";
1891 return "Side right";
1893 return "Top front left";
1895 return "Top front right";
1897 return "Top front center";
1899 return "Top center";
1901 return "Top back left";
1903 return "Top back right";
1905 return "Top side left";
1907 return "Top side right";
1909 return "Top back center";
1911 return "Bottom front center";
1913 return "Bottom front left";
1915 return "Bottom front right";
1917 return "Front left wide";
1919 return "Front right wde";
1921 return "Left surround";
1923 return "Right surround";
1925 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 frame duration 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 supported audio channel counts 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:1739
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:1651
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:1692
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:1804
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:1830
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:1863
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:1760
bt_audio_dir
Audio direction from the perspective of the BAP Unicast Server / BAP Broadcast Sink.
Definition audio.h:320
bt_audio_codec_cfg_target_latency
Codec configuration target latency.
Definition audio.h:202
bt_audio_codec_cfg_target_phy
Codec configuration target PHY.
Definition audio.h:218
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:58
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.
static const char * bt_audio_dir_to_str(enum bt_audio_dir dir)
Returns a string representation of a specific bt_audio_dir direction.
Definition audio.h:344
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:327
@ BT_AUDIO_DIR_SOURCE
Audio direction source.
Definition audio.h:334
@ BT_AUDIO_CODEC_CFG_TARGET_LATENCY_HIGH
Target high latency.
Definition audio.h:210
@ BT_AUDIO_CODEC_CFG_TARGET_LATENCY_BALANCED
Target balanced latency.
Definition audio.h:207
@ BT_AUDIO_CODEC_CFG_TARGET_LATENCY_LOW
Target low latency.
Definition audio.h:204
@ BT_AUDIO_CODEC_CFG_TARGET_PHY_2M
LE 2M PHY.
Definition audio.h:223
@ BT_AUDIO_CODEC_CFG_TARGET_PHY_CODED
LE Coded PHY.
Definition audio.h:226
@ BT_AUDIO_CODEC_CFG_TARGET_PHY_1M
LE 1M PHY.
Definition audio.h:220
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:163
uint16_t vid
Codec Company Vendor ID.
Definition audio.h:181
uint8_t data[CONFIG_BT_AUDIO_CODEC_CAP_MAX_DATA_SIZE]
Codec Specific Capabilities Data.
Definition audio.h:186
uint16_t cid
Codec Company ID.
Definition audio.h:179
uint8_t path_id
Data path ID.
Definition audio.h:169
bool ctlr_transcode
Whether or not the local controller should transcode.
Definition audio.h:175
uint8_t meta[CONFIG_BT_AUDIO_CODEC_CAP_MAX_METADATA_SIZE]
Codec Specific Capabilities Metadata.
Definition audio.h:192
size_t data_len
Codec Specific Capabilities Data count.
Definition audio.h:184
uint8_t id
Codec ID.
Definition audio.h:177
size_t meta_len
Codec Specific Capabilities Metadata count.
Definition audio.h:190
Codec specific configuration structure.
Definition audio.h:230
size_t meta_len
Codec Specific Capabilities Metadata count.
Definition audio.h:269
uint16_t vid
Codec Company Vendor ID.
Definition audio.h:260
uint8_t meta[CONFIG_BT_AUDIO_CODEC_CFG_MAX_METADATA_SIZE]
Codec Specific Capabilities Metadata.
Definition audio.h:271
enum bt_audio_codec_cfg_target_phy target_phy
Target PHY.
Definition audio.h:253
uint16_t cid
Codec Company ID.
Definition audio.h:258
size_t data_len
Codec Specific Capabilities Data count.
Definition audio.h:263
uint8_t path_id
Data path ID.
Definition audio.h:236
bool ctlr_transcode
Whether or not the local controller should transcode.
Definition audio.h:242
uint8_t id
Codec ID.
Definition audio.h:256
enum bt_audio_codec_cfg_target_latency target_latency
Target latency.
Definition audio.h:248
uint8_t data[CONFIG_BT_AUDIO_CODEC_CFG_MAX_DATA_SIZE]
Codec Specific Capabilities Data.
Definition audio.h:265
struct to hold minimum and maximum supported codec frame sizes
Definition audio.h:74
uint16_t min
Minimum number of octets supported per codec frame.
Definition audio.h:76
uint16_t max
Maximum number of octets supported per codec frame.
Definition audio.h:78
Bluetooth data.
Definition data.h:40