bluetooth: host: audio: move audio assigned numbers to dedicated header

Move assigned number for audio from audio.h to assigned_numbers.h where
all assigned numbers are located.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
This commit is contained in:
Pavel Vasilyev
2025-08-28 08:34:27 +02:00
committed by Chris Friedt
parent 8c0269e2ce
commit 690314040e
2 changed files with 542 additions and 529 deletions

View File

@@ -21,6 +21,8 @@
* @{
*/
#include <zephyr/sys/util_macro.h>
#ifdef __cplusplus
extern "C" {
#endif
@@ -715,6 +717,545 @@ extern "C" {
/** @} */ /* end of @name Flags data type values */
/** @} */ /* end of bt_assigned_numbers_core */
/**
* @brief Generic Audio Assigned Numbers
* @defgroup bt_assigned_numbers_audio Generic Audio Assigned Numbers
* @ingroup bt_assigned_numbers
* @{
*/
/**
* @brief Codec capability types
*
* Used to build and parse codec capabilities as specified in the PAC specification.
* Source is assigned numbers for Generic Audio, bluetooth.com.
*/
enum bt_audio_codec_cap_type {
/** Supported sampling frequencies */
BT_AUDIO_CODEC_CAP_TYPE_FREQ = 0x01,
/** Supported frame durations */
BT_AUDIO_CODEC_CAP_TYPE_DURATION = 0x02,
/** Supported audio channel counts */
BT_AUDIO_CODEC_CAP_TYPE_CHAN_COUNT = 0x03,
/** Supported octets per codec frame */
BT_AUDIO_CODEC_CAP_TYPE_FRAME_LEN = 0x04,
/** Supported maximum codec frames per SDU */
BT_AUDIO_CODEC_CAP_TYPE_FRAME_COUNT = 0x05,
};
/** @brief Supported frequencies bitfield */
enum bt_audio_codec_cap_freq {
/** 8 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_8KHZ = BIT(0),
/** 11.025 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_11KHZ = BIT(1),
/** 16 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_16KHZ = BIT(2),
/** 22.05 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_22KHZ = BIT(3),
/** 24 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_24KHZ = BIT(4),
/** 32 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_32KHZ = BIT(5),
/** 44.1 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_44KHZ = BIT(6),
/** 48 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_48KHZ = BIT(7),
/** 88.2 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_88KHZ = BIT(8),
/** 96 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_96KHZ = BIT(9),
/** 176.4 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_176KHZ = BIT(10),
/** 192 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_192KHZ = BIT(11),
/** 384 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_384KHZ = BIT(12),
/** Any frequency capability */
BT_AUDIO_CODEC_CAP_FREQ_ANY =
(BT_AUDIO_CODEC_CAP_FREQ_8KHZ | BT_AUDIO_CODEC_CAP_FREQ_11KHZ |
BT_AUDIO_CODEC_CAP_FREQ_16KHZ | BT_AUDIO_CODEC_CAP_FREQ_22KHZ |
BT_AUDIO_CODEC_CAP_FREQ_24KHZ | BT_AUDIO_CODEC_CAP_FREQ_32KHZ |
BT_AUDIO_CODEC_CAP_FREQ_44KHZ | BT_AUDIO_CODEC_CAP_FREQ_48KHZ |
BT_AUDIO_CODEC_CAP_FREQ_88KHZ | BT_AUDIO_CODEC_CAP_FREQ_96KHZ |
BT_AUDIO_CODEC_CAP_FREQ_176KHZ | BT_AUDIO_CODEC_CAP_FREQ_192KHZ |
BT_AUDIO_CODEC_CAP_FREQ_384KHZ),
};
/** @brief Supported frame durations bitfield */
enum bt_audio_codec_cap_frame_dur {
/** 7.5 msec frame duration capability */
BT_AUDIO_CODEC_CAP_DURATION_7_5 = BIT(0),
/** 10 msec frame duration capability */
BT_AUDIO_CODEC_CAP_DURATION_10 = BIT(1),
/** Any frame duration capability */
BT_AUDIO_CODEC_CAP_DURATION_ANY =
(BT_AUDIO_CODEC_CAP_DURATION_7_5 | BT_AUDIO_CODEC_CAP_DURATION_10),
/**
* @brief 7.5 msec preferred frame duration capability.
*
* This shall only be set if @ref BT_AUDIO_CODEC_CAP_DURATION_7_5 is also set, and if @ref
* BT_AUDIO_CODEC_CAP_DURATION_PREFER_10 is not set.
*/
BT_AUDIO_CODEC_CAP_DURATION_PREFER_7_5 = BIT(4),
/**
* @brief 10 msec preferred frame duration capability
*
* This shall only be set if @ref BT_AUDIO_CODEC_CAP_DURATION_10 is also set, and if @ref
* BT_AUDIO_CODEC_CAP_DURATION_PREFER_7_5 is not set.
*/
BT_AUDIO_CODEC_CAP_DURATION_PREFER_10 = BIT(5),
};
/** Supported audio capabilities channel count bitfield */
enum bt_audio_codec_cap_chan_count {
/** Supporting 1 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_1 = BIT(0),
/** Supporting 2 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_2 = BIT(1),
/** Supporting 3 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_3 = BIT(2),
/** Supporting 4 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_4 = BIT(3),
/** Supporting 5 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_5 = BIT(4),
/** Supporting 6 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_6 = BIT(5),
/** Supporting 7 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_7 = BIT(6),
/** Supporting 8 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_8 = BIT(7),
/** Supporting all channels */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_ANY =
(BT_AUDIO_CODEC_CAP_CHAN_COUNT_1 | BT_AUDIO_CODEC_CAP_CHAN_COUNT_2 |
BT_AUDIO_CODEC_CAP_CHAN_COUNT_3 | BT_AUDIO_CODEC_CAP_CHAN_COUNT_4 |
BT_AUDIO_CODEC_CAP_CHAN_COUNT_5 | BT_AUDIO_CODEC_CAP_CHAN_COUNT_6 |
BT_AUDIO_CODEC_CAP_CHAN_COUNT_7 | BT_AUDIO_CODEC_CAP_CHAN_COUNT_8),
};
/** Minimum supported channel counts */
#define BT_AUDIO_CODEC_CAP_CHAN_COUNT_MIN 1
/** Maximum supported channel counts */
#define BT_AUDIO_CODEC_CAP_CHAN_COUNT_MAX 8
/** The minimum size of a Broadcast Name as defined by Bluetooth Assigned Numbers */
#define BT_AUDIO_BROADCAST_NAME_LEN_MIN 4
/** The maximum size of a Broadcast Name as defined by Bluetooth Assigned Numbers */
#define BT_AUDIO_BROADCAST_NAME_LEN_MAX 128
/**
* @brief Codec configuration types
*
* Used to build and parse codec configurations as specified in the ASCS and BAP specifications.
* Source is assigned numbers for Generic Audio, bluetooth.com.
*/
enum bt_audio_codec_cfg_type {
/** Sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ = 0x01,
/** Frame duration */
BT_AUDIO_CODEC_CFG_DURATION = 0x02,
/** Audio channel allocation */
BT_AUDIO_CODEC_CFG_CHAN_ALLOC = 0x03,
/** Octets per codec frame */
BT_AUDIO_CODEC_CFG_FRAME_LEN = 0x04,
/** Codec frame blocks per SDU */
BT_AUDIO_CODEC_CFG_FRAME_BLKS_PER_SDU = 0x05,
};
/** Codec configuration sampling freqency */
enum bt_audio_codec_cfg_freq {
/** 8 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_8KHZ = 0x01,
/** 11.025 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_11KHZ = 0x02,
/** 16 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_16KHZ = 0x03,
/** 22.05 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_22KHZ = 0x04,
/** 24 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_24KHZ = 0x05,
/** 32 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_32KHZ = 0x06,
/** 44.1 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_44KHZ = 0x07,
/** 48 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_48KHZ = 0x08,
/** 88.2 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_88KHZ = 0x09,
/** 96 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_96KHZ = 0x0a,
/** 176.4 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_176KHZ = 0x0b,
/** 192 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_192KHZ = 0x0c,
/** 384 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_384KHZ = 0x0d,
};
/** Codec configuration frame duration */
enum bt_audio_codec_cfg_frame_dur {
/** 7.5 msec Frame Duration configuration */
BT_AUDIO_CODEC_CFG_DURATION_7_5 = 0x00,
/** 10 msec Frame Duration configuration */
BT_AUDIO_CODEC_CFG_DURATION_10 = 0x01,
};
/**
* @brief Audio Context Type for Generic Audio
*
* These values are defined by the Generic Audio Assigned Numbers, bluetooth.com
*/
enum bt_audio_context {
/** No context type */
BT_AUDIO_CONTEXT_TYPE_NONE = 0,
/**
* Identifies audio where the use case context does not match any other defined value,
* or where the context is unknown or cannot be determined.
*/
BT_AUDIO_CONTEXT_TYPE_UNSPECIFIED = BIT(0),
/**
* Conversation between humans, for example, in telephony or video calls, including
* traditional cellular as well as VoIP and Push-to-Talk
*/
BT_AUDIO_CONTEXT_TYPE_CONVERSATIONAL = BIT(1),
/** Media, for example, music playback, radio, podcast or movie soundtrack, or tv audio */
BT_AUDIO_CONTEXT_TYPE_MEDIA = BIT(2),
/**
* Audio associated with video gaming, for example gaming media; gaming effects; music
* and in-game voice chat between participants; or a mix of all the above
*/
BT_AUDIO_CONTEXT_TYPE_GAME = BIT(3),
/** Instructional audio, for example, in navigation, announcements, or user guidance */
BT_AUDIO_CONTEXT_TYPE_INSTRUCTIONAL = BIT(4),
/** Man-machine communication, for example, with voice recognition or virtual assistants */
BT_AUDIO_CONTEXT_TYPE_VOICE_ASSISTANTS = BIT(5),
/**
* Live audio, for example, from a microphone where audio is perceived both through a
* direct acoustic path and through an LE Audio Stream
*/
BT_AUDIO_CONTEXT_TYPE_LIVE = BIT(6),
/**
* Sound effects including keyboard and touch feedback; menu and user interface sounds;
* and other system sounds
*/
BT_AUDIO_CONTEXT_TYPE_SOUND_EFFECTS = BIT(7),
/**
* Notification and reminder sounds; attention-seeking audio, for example,
* in beeps signaling the arrival of a message
*/
BT_AUDIO_CONTEXT_TYPE_NOTIFICATIONS = BIT(8),
/**
* Alerts the user to an incoming call, for example, an incoming telephony or video call,
* including traditional cellular as well as VoIP and Push-to-Talk
*/
BT_AUDIO_CONTEXT_TYPE_RINGTONE = BIT(9),
/**
* Alarms and timers; immediate alerts, for example, in a critical battery alarm,
* timer expiry or alarm clock, toaster, cooker, kettle, microwave, etc.
*/
BT_AUDIO_CONTEXT_TYPE_ALERTS = BIT(10),
/** Emergency alarm Emergency sounds, for example, fire alarms or other urgent alerts */
BT_AUDIO_CONTEXT_TYPE_EMERGENCY_ALARM = BIT(11),
};
/**
* Any known context.
*/
#define BT_AUDIO_CONTEXT_TYPE_ANY (BT_AUDIO_CONTEXT_TYPE_UNSPECIFIED | \
BT_AUDIO_CONTEXT_TYPE_CONVERSATIONAL | \
BT_AUDIO_CONTEXT_TYPE_MEDIA | \
BT_AUDIO_CONTEXT_TYPE_GAME | \
BT_AUDIO_CONTEXT_TYPE_INSTRUCTIONAL | \
BT_AUDIO_CONTEXT_TYPE_VOICE_ASSISTANTS | \
BT_AUDIO_CONTEXT_TYPE_LIVE | \
BT_AUDIO_CONTEXT_TYPE_SOUND_EFFECTS | \
BT_AUDIO_CONTEXT_TYPE_NOTIFICATIONS | \
BT_AUDIO_CONTEXT_TYPE_RINGTONE | \
BT_AUDIO_CONTEXT_TYPE_ALERTS | \
BT_AUDIO_CONTEXT_TYPE_EMERGENCY_ALARM)
/**
* @brief Parental rating defined by the Generic Audio assigned numbers (bluetooth.com).
*
* The numbering scheme is aligned with Annex F of EN 300 707 v1.2.1 which
* defined parental rating for viewing.
*/
enum bt_audio_parental_rating {
/** No rating */
BT_AUDIO_PARENTAL_RATING_NO_RATING = 0x00,
/** For all ages */
BT_AUDIO_PARENTAL_RATING_AGE_ANY = 0x01,
/** Recommended for listeners of age 5 and above */
BT_AUDIO_PARENTAL_RATING_AGE_5_OR_ABOVE = 0x02,
/** Recommended for listeners of age 6 and above */
BT_AUDIO_PARENTAL_RATING_AGE_6_OR_ABOVE = 0x03,
/** Recommended for listeners of age 7 and above */
BT_AUDIO_PARENTAL_RATING_AGE_7_OR_ABOVE = 0x04,
/** Recommended for listeners of age 8 and above */
BT_AUDIO_PARENTAL_RATING_AGE_8_OR_ABOVE = 0x05,
/** Recommended for listeners of age 9 and above */
BT_AUDIO_PARENTAL_RATING_AGE_9_OR_ABOVE = 0x06,
/** Recommended for listeners of age 10 and above */
BT_AUDIO_PARENTAL_RATING_AGE_10_OR_ABOVE = 0x07,
/** Recommended for listeners of age 11 and above */
BT_AUDIO_PARENTAL_RATING_AGE_11_OR_ABOVE = 0x08,
/** Recommended for listeners of age 12 and above */
BT_AUDIO_PARENTAL_RATING_AGE_12_OR_ABOVE = 0x09,
/** Recommended for listeners of age 13 and above */
BT_AUDIO_PARENTAL_RATING_AGE_13_OR_ABOVE = 0x0A,
/** Recommended for listeners of age 14 and above */
BT_AUDIO_PARENTAL_RATING_AGE_14_OR_ABOVE = 0x0B,
/** Recommended for listeners of age 15 and above */
BT_AUDIO_PARENTAL_RATING_AGE_15_OR_ABOVE = 0x0C,
/** Recommended for listeners of age 16 and above */
BT_AUDIO_PARENTAL_RATING_AGE_16_OR_ABOVE = 0x0D,
/** Recommended for listeners of age 17 and above */
BT_AUDIO_PARENTAL_RATING_AGE_17_OR_ABOVE = 0x0E,
/** Recommended for listeners of age 18 and above */
BT_AUDIO_PARENTAL_RATING_AGE_18_OR_ABOVE = 0x0F
};
/** @brief Audio Active State defined by the Generic Audio assigned numbers (bluetooth.com). */
enum bt_audio_active_state {
/** No audio data is being transmitted */
BT_AUDIO_ACTIVE_STATE_DISABLED = 0x00,
/** Audio data is being transmitted */
BT_AUDIO_ACTIVE_STATE_ENABLED = 0x01,
};
/** Assisted Listening Stream defined by the Generic Audio assigned numbers (bluetooth.com). */
enum bt_audio_assisted_listening_stream {
/** Unspecified audio enhancement */
BT_AUDIO_ASSISTED_LISTENING_STREAM_UNSPECIFIED = 0x00,
};
/**
* @brief Codec metadata type IDs
*
* Metadata types defined by the Generic Audio assigned numbers (bluetooth.com).
*/
enum bt_audio_metadata_type {
/**
* @brief Preferred audio context.
*
* Bitfield of preferred audio contexts.
*
* If 0, the context type is not a preferred use case for this codec
* configuration.
*
* See the BT_AUDIO_CONTEXT_* for valid values.
*/
BT_AUDIO_METADATA_TYPE_PREF_CONTEXT = 0x01,
/**
* @brief Streaming audio context.
*
* Bitfield of streaming audio contexts.
*
* If 0, the context type is not a preferred use case for this codec
* configuration.
*
* See the BT_AUDIO_CONTEXT_* for valid values.
*/
BT_AUDIO_METADATA_TYPE_STREAM_CONTEXT = 0x02,
/** UTF-8 encoded title or summary of stream content */
BT_AUDIO_METADATA_TYPE_PROGRAM_INFO = 0x03,
/**
* @brief Language
*
* 3 octet lower case language code defined by ISO 639-3
* Possible values can be found at https://iso639-3.sil.org/code_tables/639/data
*/
BT_AUDIO_METADATA_TYPE_LANG = 0x04,
/** Array of 8-bit CCID values */
BT_AUDIO_METADATA_TYPE_CCID_LIST = 0x05,
/**
* @brief Parental rating
*
* See @ref bt_audio_parental_rating for valid values.
*/
BT_AUDIO_METADATA_TYPE_PARENTAL_RATING = 0x06,
/** UTF-8 encoded URI for additional Program information */
BT_AUDIO_METADATA_TYPE_PROGRAM_INFO_URI = 0x07,
/**
* @brief Audio active state
*
* See @ref bt_audio_active_state for valid values.
*/
BT_AUDIO_METADATA_TYPE_AUDIO_STATE = 0x08,
/** Broadcast Audio Immediate Rendering flag */
BT_AUDIO_METADATA_TYPE_BROADCAST_IMMEDIATE = 0x09,
/**
* @brief Assisted listening stream
*
* See @ref bt_audio_assisted_listening_stream for valid values.
*/
BT_AUDIO_METADATA_TYPE_ASSISTED_LISTENING_STREAM = 0x0A,
/** UTF-8 encoded Broadcast name */
BT_AUDIO_METADATA_TYPE_BROADCAST_NAME = 0x0B,
/** Extended metadata */
BT_AUDIO_METADATA_TYPE_EXTENDED = 0xFE,
/** Vendor specific metadata */
BT_AUDIO_METADATA_TYPE_VENDOR = 0xFF,
};
/**
* @brief Location values for BT Audio.
*
* These values are defined by the Generic Audio Assigned Numbers, bluetooth.com
*/
enum bt_audio_location {
/** Mono Audio (no specified Audio Location) */
BT_AUDIO_LOCATION_MONO_AUDIO = 0,
/** Front Left */
BT_AUDIO_LOCATION_FRONT_LEFT = BIT(0),
/** Front Right */
BT_AUDIO_LOCATION_FRONT_RIGHT = BIT(1),
/** Front Center */
BT_AUDIO_LOCATION_FRONT_CENTER = BIT(2),
/** Low Frequency Effects 1 */
BT_AUDIO_LOCATION_LOW_FREQ_EFFECTS_1 = BIT(3),
/** Back Left */
BT_AUDIO_LOCATION_BACK_LEFT = BIT(4),
/** Back Right */
BT_AUDIO_LOCATION_BACK_RIGHT = BIT(5),
/** Front Left of Center */
BT_AUDIO_LOCATION_FRONT_LEFT_OF_CENTER = BIT(6),
/** Front Right of Center */
BT_AUDIO_LOCATION_FRONT_RIGHT_OF_CENTER = BIT(7),
/** Back Center */
BT_AUDIO_LOCATION_BACK_CENTER = BIT(8),
/** Low Frequency Effects 2 */
BT_AUDIO_LOCATION_LOW_FREQ_EFFECTS_2 = BIT(9),
/** Side Left */
BT_AUDIO_LOCATION_SIDE_LEFT = BIT(10),
/** Side Right */
BT_AUDIO_LOCATION_SIDE_RIGHT = BIT(11),
/** Top Front Left */
BT_AUDIO_LOCATION_TOP_FRONT_LEFT = BIT(12),
/** Top Front Right */
BT_AUDIO_LOCATION_TOP_FRONT_RIGHT = BIT(13),
/** Top Front Center */
BT_AUDIO_LOCATION_TOP_FRONT_CENTER = BIT(14),
/** Top Center */
BT_AUDIO_LOCATION_TOP_CENTER = BIT(15),
/** Top Back Left */
BT_AUDIO_LOCATION_TOP_BACK_LEFT = BIT(16),
/** Top Back Right */
BT_AUDIO_LOCATION_TOP_BACK_RIGHT = BIT(17),
/** Top Side Left */
BT_AUDIO_LOCATION_TOP_SIDE_LEFT = BIT(18),
/** Top Side Right */
BT_AUDIO_LOCATION_TOP_SIDE_RIGHT = BIT(19),
/** Top Back Center */
BT_AUDIO_LOCATION_TOP_BACK_CENTER = BIT(20),
/** Bottom Front Center */
BT_AUDIO_LOCATION_BOTTOM_FRONT_CENTER = BIT(21),
/** Bottom Front Left */
BT_AUDIO_LOCATION_BOTTOM_FRONT_LEFT = BIT(22),
/** Bottom Front Right */
BT_AUDIO_LOCATION_BOTTOM_FRONT_RIGHT = BIT(23),
/** Front Left Wide */
BT_AUDIO_LOCATION_FRONT_LEFT_WIDE = BIT(24),
/** Front Right Wide */
BT_AUDIO_LOCATION_FRONT_RIGHT_WIDE = BIT(25),
/** Left Surround */
BT_AUDIO_LOCATION_LEFT_SURROUND = BIT(26),
/** Right Surround */
BT_AUDIO_LOCATION_RIGHT_SURROUND = BIT(27),
};
/**
* Any known location.
*/
#define BT_AUDIO_LOCATION_ANY (BT_AUDIO_LOCATION_FRONT_LEFT | \
BT_AUDIO_LOCATION_FRONT_RIGHT | \
BT_AUDIO_LOCATION_FRONT_CENTER | \
BT_AUDIO_LOCATION_LOW_FREQ_EFFECTS_1 | \
BT_AUDIO_LOCATION_BACK_LEFT | \
BT_AUDIO_LOCATION_BACK_RIGHT | \
BT_AUDIO_LOCATION_FRONT_LEFT_OF_CENTER | \
BT_AUDIO_LOCATION_FRONT_RIGHT_OF_CENTER | \
BT_AUDIO_LOCATION_BACK_CENTER | \
BT_AUDIO_LOCATION_LOW_FREQ_EFFECTS_2 | \
BT_AUDIO_LOCATION_SIDE_LEFT | \
BT_AUDIO_LOCATION_SIDE_RIGHT | \
BT_AUDIO_LOCATION_TOP_FRONT_LEFT | \
BT_AUDIO_LOCATION_TOP_FRONT_RIGHT | \
BT_AUDIO_LOCATION_TOP_FRONT_CENTER | \
BT_AUDIO_LOCATION_TOP_CENTER | \
BT_AUDIO_LOCATION_TOP_BACK_LEFT | \
BT_AUDIO_LOCATION_TOP_BACK_RIGHT | \
BT_AUDIO_LOCATION_TOP_SIDE_LEFT | \
BT_AUDIO_LOCATION_TOP_SIDE_RIGHT | \
BT_AUDIO_LOCATION_TOP_BACK_CENTER | \
BT_AUDIO_LOCATION_BOTTOM_FRONT_CENTER | \
BT_AUDIO_LOCATION_BOTTOM_FRONT_LEFT | \
BT_AUDIO_LOCATION_BOTTOM_FRONT_RIGHT | \
BT_AUDIO_LOCATION_FRONT_LEFT_WIDE | \
BT_AUDIO_LOCATION_FRONT_RIGHT_WIDE | \
BT_AUDIO_LOCATION_LEFT_SURROUND | \
BT_AUDIO_LOCATION_RIGHT_SURROUND)
/** @} */ /* end of bt_assigned_numbers_audio */
/**
* @name Company Identifiers (see Bluetooth Assigned Numbers)
* @{

View File

@@ -25,6 +25,7 @@
#include <zephyr/autoconf.h>
#include <zephyr/bluetooth/audio/lc3.h>
#include <zephyr/bluetooth/assigned_numbers.h>
#include <zephyr/bluetooth/bluetooth.h>
#include <zephyr/bluetooth/buf.h>
#include <zephyr/bluetooth/conn.h>
@@ -49,157 +50,10 @@ extern "C" {
#define BT_AUDIO_PD_MAX 0xFFFFFFU
/** Indicates that the unicast server does not have a preference for any retransmission number */
#define BT_AUDIO_RTN_PREF_NONE 0xFFU
/** The minimum size of a Broadcast Name as defined by Bluetooth Assigned Numbers */
#define BT_AUDIO_BROADCAST_NAME_LEN_MIN 4
/** The maximum size of a Broadcast Name as defined by Bluetooth Assigned Numbers */
#define BT_AUDIO_BROADCAST_NAME_LEN_MAX 128
/** Size of the stream language value, e.g. "eng" */
#define BT_AUDIO_LANG_SIZE 3
/**
* @brief Codec capability types
*
* Used to build and parse codec capabilities as specified in the PAC specification.
* Source is assigned numbers for Generic Audio, bluetooth.com.
*/
enum bt_audio_codec_cap_type {
/** Supported sampling frequencies */
BT_AUDIO_CODEC_CAP_TYPE_FREQ = 0x01,
/** Supported frame durations */
BT_AUDIO_CODEC_CAP_TYPE_DURATION = 0x02,
/** Supported audio channel counts */
BT_AUDIO_CODEC_CAP_TYPE_CHAN_COUNT = 0x03,
/** Supported octets per codec frame */
BT_AUDIO_CODEC_CAP_TYPE_FRAME_LEN = 0x04,
/** Supported maximum codec frames per SDU */
BT_AUDIO_CODEC_CAP_TYPE_FRAME_COUNT = 0x05,
};
/** @brief Supported frequencies bitfield */
enum bt_audio_codec_cap_freq {
/** 8 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_8KHZ = BIT(0),
/** 11.025 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_11KHZ = BIT(1),
/** 16 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_16KHZ = BIT(2),
/** 22.05 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_22KHZ = BIT(3),
/** 24 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_24KHZ = BIT(4),
/** 32 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_32KHZ = BIT(5),
/** 44.1 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_44KHZ = BIT(6),
/** 48 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_48KHZ = BIT(7),
/** 88.2 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_88KHZ = BIT(8),
/** 96 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_96KHZ = BIT(9),
/** 176.4 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_176KHZ = BIT(10),
/** 192 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_192KHZ = BIT(11),
/** 384 Khz sampling frequency */
BT_AUDIO_CODEC_CAP_FREQ_384KHZ = BIT(12),
/** Any frequency capability */
BT_AUDIO_CODEC_CAP_FREQ_ANY =
(BT_AUDIO_CODEC_CAP_FREQ_8KHZ | BT_AUDIO_CODEC_CAP_FREQ_11KHZ |
BT_AUDIO_CODEC_CAP_FREQ_16KHZ | BT_AUDIO_CODEC_CAP_FREQ_22KHZ |
BT_AUDIO_CODEC_CAP_FREQ_24KHZ | BT_AUDIO_CODEC_CAP_FREQ_32KHZ |
BT_AUDIO_CODEC_CAP_FREQ_44KHZ | BT_AUDIO_CODEC_CAP_FREQ_48KHZ |
BT_AUDIO_CODEC_CAP_FREQ_88KHZ | BT_AUDIO_CODEC_CAP_FREQ_96KHZ |
BT_AUDIO_CODEC_CAP_FREQ_176KHZ | BT_AUDIO_CODEC_CAP_FREQ_192KHZ |
BT_AUDIO_CODEC_CAP_FREQ_384KHZ),
};
/** @brief Supported frame durations bitfield */
enum bt_audio_codec_cap_frame_dur {
/** 7.5 msec frame duration capability */
BT_AUDIO_CODEC_CAP_DURATION_7_5 = BIT(0),
/** 10 msec frame duration capability */
BT_AUDIO_CODEC_CAP_DURATION_10 = BIT(1),
/** Any frame duration capability */
BT_AUDIO_CODEC_CAP_DURATION_ANY =
(BT_AUDIO_CODEC_CAP_DURATION_7_5 | BT_AUDIO_CODEC_CAP_DURATION_10),
/**
* @brief 7.5 msec preferred frame duration capability.
*
* This shall only be set if @ref BT_AUDIO_CODEC_CAP_DURATION_7_5 is also set, and if @ref
* BT_AUDIO_CODEC_CAP_DURATION_PREFER_10 is not set.
*/
BT_AUDIO_CODEC_CAP_DURATION_PREFER_7_5 = BIT(4),
/**
* @brief 10 msec preferred frame duration capability
*
* This shall only be set if @ref BT_AUDIO_CODEC_CAP_DURATION_10 is also set, and if @ref
* BT_AUDIO_CODEC_CAP_DURATION_PREFER_7_5 is not set.
*/
BT_AUDIO_CODEC_CAP_DURATION_PREFER_10 = BIT(5),
};
/** Supported audio capabilities channel count bitfield */
enum bt_audio_codec_cap_chan_count {
/** Supporting 1 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_1 = BIT(0),
/** Supporting 2 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_2 = BIT(1),
/** Supporting 3 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_3 = BIT(2),
/** Supporting 4 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_4 = BIT(3),
/** Supporting 5 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_5 = BIT(4),
/** Supporting 6 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_6 = BIT(5),
/** Supporting 7 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_7 = BIT(6),
/** Supporting 8 channel */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_8 = BIT(7),
/** Supporting all channels */
BT_AUDIO_CODEC_CAP_CHAN_COUNT_ANY =
(BT_AUDIO_CODEC_CAP_CHAN_COUNT_1 | BT_AUDIO_CODEC_CAP_CHAN_COUNT_2 |
BT_AUDIO_CODEC_CAP_CHAN_COUNT_3 | BT_AUDIO_CODEC_CAP_CHAN_COUNT_4 |
BT_AUDIO_CODEC_CAP_CHAN_COUNT_5 | BT_AUDIO_CODEC_CAP_CHAN_COUNT_6 |
BT_AUDIO_CODEC_CAP_CHAN_COUNT_7 | BT_AUDIO_CODEC_CAP_CHAN_COUNT_8),
};
/** Minimum supported channel counts */
#define BT_AUDIO_CODEC_CAP_CHAN_COUNT_MIN 1
/** Maximum supported channel counts */
#define BT_AUDIO_CODEC_CAP_CHAN_COUNT_MAX 8
/**
* @brief Channel count support capability
*
@@ -221,290 +75,6 @@ struct bt_audio_codec_octets_per_codec_frame {
uint16_t max;
};
/**
* @brief Codec configuration types
*
* Used to build and parse codec configurations as specified in the ASCS and BAP specifications.
* Source is assigned numbers for Generic Audio, bluetooth.com.
*/
enum bt_audio_codec_cfg_type {
/** Sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ = 0x01,
/** Frame duration */
BT_AUDIO_CODEC_CFG_DURATION = 0x02,
/** Audio channel allocation */
BT_AUDIO_CODEC_CFG_CHAN_ALLOC = 0x03,
/** Octets per codec frame */
BT_AUDIO_CODEC_CFG_FRAME_LEN = 0x04,
/** Codec frame blocks per SDU */
BT_AUDIO_CODEC_CFG_FRAME_BLKS_PER_SDU = 0x05,
};
/** Codec configuration sampling freqency */
enum bt_audio_codec_cfg_freq {
/** 8 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_8KHZ = 0x01,
/** 11.025 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_11KHZ = 0x02,
/** 16 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_16KHZ = 0x03,
/** 22.05 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_22KHZ = 0x04,
/** 24 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_24KHZ = 0x05,
/** 32 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_32KHZ = 0x06,
/** 44.1 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_44KHZ = 0x07,
/** 48 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_48KHZ = 0x08,
/** 88.2 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_88KHZ = 0x09,
/** 96 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_96KHZ = 0x0a,
/** 176.4 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_176KHZ = 0x0b,
/** 192 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_192KHZ = 0x0c,
/** 384 Khz codec sampling frequency */
BT_AUDIO_CODEC_CFG_FREQ_384KHZ = 0x0d,
};
/** Codec configuration frame duration */
enum bt_audio_codec_cfg_frame_dur {
/** 7.5 msec Frame Duration configuration */
BT_AUDIO_CODEC_CFG_DURATION_7_5 = 0x00,
/** 10 msec Frame Duration configuration */
BT_AUDIO_CODEC_CFG_DURATION_10 = 0x01,
};
/**
* @brief Audio Context Type for Generic Audio
*
* These values are defined by the Generic Audio Assigned Numbers, bluetooth.com
*/
enum bt_audio_context {
/** No context type */
BT_AUDIO_CONTEXT_TYPE_NONE = 0,
/**
* Identifies audio where the use case context does not match any other defined value,
* or where the context is unknown or cannot be determined.
*/
BT_AUDIO_CONTEXT_TYPE_UNSPECIFIED = BIT(0),
/**
* Conversation between humans, for example, in telephony or video calls, including
* traditional cellular as well as VoIP and Push-to-Talk
*/
BT_AUDIO_CONTEXT_TYPE_CONVERSATIONAL = BIT(1),
/** Media, for example, music playback, radio, podcast or movie soundtrack, or tv audio */
BT_AUDIO_CONTEXT_TYPE_MEDIA = BIT(2),
/**
* Audio associated with video gaming, for example gaming media; gaming effects; music
* and in-game voice chat between participants; or a mix of all the above
*/
BT_AUDIO_CONTEXT_TYPE_GAME = BIT(3),
/** Instructional audio, for example, in navigation, announcements, or user guidance */
BT_AUDIO_CONTEXT_TYPE_INSTRUCTIONAL = BIT(4),
/** Man-machine communication, for example, with voice recognition or virtual assistants */
BT_AUDIO_CONTEXT_TYPE_VOICE_ASSISTANTS = BIT(5),
/**
* Live audio, for example, from a microphone where audio is perceived both through a
* direct acoustic path and through an LE Audio Stream
*/
BT_AUDIO_CONTEXT_TYPE_LIVE = BIT(6),
/**
* Sound effects including keyboard and touch feedback; menu and user interface sounds;
* and other system sounds
*/
BT_AUDIO_CONTEXT_TYPE_SOUND_EFFECTS = BIT(7),
/**
* Notification and reminder sounds; attention-seeking audio, for example,
* in beeps signaling the arrival of a message
*/
BT_AUDIO_CONTEXT_TYPE_NOTIFICATIONS = BIT(8),
/**
* Alerts the user to an incoming call, for example, an incoming telephony or video call,
* including traditional cellular as well as VoIP and Push-to-Talk
*/
BT_AUDIO_CONTEXT_TYPE_RINGTONE = BIT(9),
/**
* Alarms and timers; immediate alerts, for example, in a critical battery alarm,
* timer expiry or alarm clock, toaster, cooker, kettle, microwave, etc.
*/
BT_AUDIO_CONTEXT_TYPE_ALERTS = BIT(10),
/** Emergency alarm Emergency sounds, for example, fire alarms or other urgent alerts */
BT_AUDIO_CONTEXT_TYPE_EMERGENCY_ALARM = BIT(11),
};
/**
* Any known context.
*/
#define BT_AUDIO_CONTEXT_TYPE_ANY (BT_AUDIO_CONTEXT_TYPE_UNSPECIFIED | \
BT_AUDIO_CONTEXT_TYPE_CONVERSATIONAL | \
BT_AUDIO_CONTEXT_TYPE_MEDIA | \
BT_AUDIO_CONTEXT_TYPE_GAME | \
BT_AUDIO_CONTEXT_TYPE_INSTRUCTIONAL | \
BT_AUDIO_CONTEXT_TYPE_VOICE_ASSISTANTS | \
BT_AUDIO_CONTEXT_TYPE_LIVE | \
BT_AUDIO_CONTEXT_TYPE_SOUND_EFFECTS | \
BT_AUDIO_CONTEXT_TYPE_NOTIFICATIONS | \
BT_AUDIO_CONTEXT_TYPE_RINGTONE | \
BT_AUDIO_CONTEXT_TYPE_ALERTS | \
BT_AUDIO_CONTEXT_TYPE_EMERGENCY_ALARM)
/**
* @brief Parental rating defined by the Generic Audio assigned numbers (bluetooth.com).
*
* The numbering scheme is aligned with Annex F of EN 300 707 v1.2.1 which
* defined parental rating for viewing.
*/
enum bt_audio_parental_rating {
/** No rating */
BT_AUDIO_PARENTAL_RATING_NO_RATING = 0x00,
/** For all ages */
BT_AUDIO_PARENTAL_RATING_AGE_ANY = 0x01,
/** Recommended for listeners of age 5 and above */
BT_AUDIO_PARENTAL_RATING_AGE_5_OR_ABOVE = 0x02,
/** Recommended for listeners of age 6 and above */
BT_AUDIO_PARENTAL_RATING_AGE_6_OR_ABOVE = 0x03,
/** Recommended for listeners of age 7 and above */
BT_AUDIO_PARENTAL_RATING_AGE_7_OR_ABOVE = 0x04,
/** Recommended for listeners of age 8 and above */
BT_AUDIO_PARENTAL_RATING_AGE_8_OR_ABOVE = 0x05,
/** Recommended for listeners of age 9 and above */
BT_AUDIO_PARENTAL_RATING_AGE_9_OR_ABOVE = 0x06,
/** Recommended for listeners of age 10 and above */
BT_AUDIO_PARENTAL_RATING_AGE_10_OR_ABOVE = 0x07,
/** Recommended for listeners of age 11 and above */
BT_AUDIO_PARENTAL_RATING_AGE_11_OR_ABOVE = 0x08,
/** Recommended for listeners of age 12 and above */
BT_AUDIO_PARENTAL_RATING_AGE_12_OR_ABOVE = 0x09,
/** Recommended for listeners of age 13 and above */
BT_AUDIO_PARENTAL_RATING_AGE_13_OR_ABOVE = 0x0A,
/** Recommended for listeners of age 14 and above */
BT_AUDIO_PARENTAL_RATING_AGE_14_OR_ABOVE = 0x0B,
/** Recommended for listeners of age 15 and above */
BT_AUDIO_PARENTAL_RATING_AGE_15_OR_ABOVE = 0x0C,
/** Recommended for listeners of age 16 and above */
BT_AUDIO_PARENTAL_RATING_AGE_16_OR_ABOVE = 0x0D,
/** Recommended for listeners of age 17 and above */
BT_AUDIO_PARENTAL_RATING_AGE_17_OR_ABOVE = 0x0E,
/** Recommended for listeners of age 18 and above */
BT_AUDIO_PARENTAL_RATING_AGE_18_OR_ABOVE = 0x0F
};
/** @brief Audio Active State defined by the Generic Audio assigned numbers (bluetooth.com). */
enum bt_audio_active_state {
/** No audio data is being transmitted */
BT_AUDIO_ACTIVE_STATE_DISABLED = 0x00,
/** Audio data is being transmitted */
BT_AUDIO_ACTIVE_STATE_ENABLED = 0x01,
};
/** Assisted Listening Stream defined by the Generic Audio assigned numbers (bluetooth.com). */
enum bt_audio_assisted_listening_stream {
/** Unspecified audio enhancement */
BT_AUDIO_ASSISTED_LISTENING_STREAM_UNSPECIFIED = 0x00,
};
/**
* @brief Codec metadata type IDs
*
* Metadata types defined by the Generic Audio assigned numbers (bluetooth.com).
*/
enum bt_audio_metadata_type {
/**
* @brief Preferred audio context.
*
* Bitfield of preferred audio contexts.
*
* If 0, the context type is not a preferred use case for this codec
* configuration.
*
* See the BT_AUDIO_CONTEXT_* for valid values.
*/
BT_AUDIO_METADATA_TYPE_PREF_CONTEXT = 0x01,
/**
* @brief Streaming audio context.
*
* Bitfield of streaming audio contexts.
*
* If 0, the context type is not a preferred use case for this codec
* configuration.
*
* See the BT_AUDIO_CONTEXT_* for valid values.
*/
BT_AUDIO_METADATA_TYPE_STREAM_CONTEXT = 0x02,
/** UTF-8 encoded title or summary of stream content */
BT_AUDIO_METADATA_TYPE_PROGRAM_INFO = 0x03,
/**
* @brief Language
*
* 3 octet lower case language code defined by ISO 639-3
* Possible values can be found at https://iso639-3.sil.org/code_tables/639/data
*/
BT_AUDIO_METADATA_TYPE_LANG = 0x04,
/** Array of 8-bit CCID values */
BT_AUDIO_METADATA_TYPE_CCID_LIST = 0x05,
/**
* @brief Parental rating
*
* See @ref bt_audio_parental_rating for valid values.
*/
BT_AUDIO_METADATA_TYPE_PARENTAL_RATING = 0x06,
/** UTF-8 encoded URI for additional Program information */
BT_AUDIO_METADATA_TYPE_PROGRAM_INFO_URI = 0x07,
/**
* @brief Audio active state
*
* See @ref bt_audio_active_state for valid values.
*/
BT_AUDIO_METADATA_TYPE_AUDIO_STATE = 0x08,
/** Broadcast Audio Immediate Rendering flag */
BT_AUDIO_METADATA_TYPE_BROADCAST_IMMEDIATE = 0x09,
/**
* @brief Assisted listening stream
*
* See @ref bt_audio_assisted_listening_stream for valid values.
*/
BT_AUDIO_METADATA_TYPE_ASSISTED_LISTENING_STREAM = 0x0A,
/** UTF-8 encoded Broadcast name */
BT_AUDIO_METADATA_TYPE_BROADCAST_NAME = 0x0B,
/** Extended metadata */
BT_AUDIO_METADATA_TYPE_EXTENDED = 0xFE,
/** Vendor specific metadata */
BT_AUDIO_METADATA_TYPE_VENDOR = 0xFF,
};
/**
* @brief Helper to check whether metadata type is known by the stack.
*
@@ -586,104 +156,6 @@ enum bt_audio_metadata_type {
.meta = _meta, \
})
/**
* @brief Location values for BT Audio.
*
* These values are defined by the Generic Audio Assigned Numbers, bluetooth.com
*/
enum bt_audio_location {
/** Mono Audio (no specified Audio Location) */
BT_AUDIO_LOCATION_MONO_AUDIO = 0,
/** Front Left */
BT_AUDIO_LOCATION_FRONT_LEFT = BIT(0),
/** Front Right */
BT_AUDIO_LOCATION_FRONT_RIGHT = BIT(1),
/** Front Center */
BT_AUDIO_LOCATION_FRONT_CENTER = BIT(2),
/** Low Frequency Effects 1 */
BT_AUDIO_LOCATION_LOW_FREQ_EFFECTS_1 = BIT(3),
/** Back Left */
BT_AUDIO_LOCATION_BACK_LEFT = BIT(4),
/** Back Right */
BT_AUDIO_LOCATION_BACK_RIGHT = BIT(5),
/** Front Left of Center */
BT_AUDIO_LOCATION_FRONT_LEFT_OF_CENTER = BIT(6),
/** Front Right of Center */
BT_AUDIO_LOCATION_FRONT_RIGHT_OF_CENTER = BIT(7),
/** Back Center */
BT_AUDIO_LOCATION_BACK_CENTER = BIT(8),
/** Low Frequency Effects 2 */
BT_AUDIO_LOCATION_LOW_FREQ_EFFECTS_2 = BIT(9),
/** Side Left */
BT_AUDIO_LOCATION_SIDE_LEFT = BIT(10),
/** Side Right */
BT_AUDIO_LOCATION_SIDE_RIGHT = BIT(11),
/** Top Front Left */
BT_AUDIO_LOCATION_TOP_FRONT_LEFT = BIT(12),
/** Top Front Right */
BT_AUDIO_LOCATION_TOP_FRONT_RIGHT = BIT(13),
/** Top Front Center */
BT_AUDIO_LOCATION_TOP_FRONT_CENTER = BIT(14),
/** Top Center */
BT_AUDIO_LOCATION_TOP_CENTER = BIT(15),
/** Top Back Left */
BT_AUDIO_LOCATION_TOP_BACK_LEFT = BIT(16),
/** Top Back Right */
BT_AUDIO_LOCATION_TOP_BACK_RIGHT = BIT(17),
/** Top Side Left */
BT_AUDIO_LOCATION_TOP_SIDE_LEFT = BIT(18),
/** Top Side Right */
BT_AUDIO_LOCATION_TOP_SIDE_RIGHT = BIT(19),
/** Top Back Center */
BT_AUDIO_LOCATION_TOP_BACK_CENTER = BIT(20),
/** Bottom Front Center */
BT_AUDIO_LOCATION_BOTTOM_FRONT_CENTER = BIT(21),
/** Bottom Front Left */
BT_AUDIO_LOCATION_BOTTOM_FRONT_LEFT = BIT(22),
/** Bottom Front Right */
BT_AUDIO_LOCATION_BOTTOM_FRONT_RIGHT = BIT(23),
/** Front Left Wide */
BT_AUDIO_LOCATION_FRONT_LEFT_WIDE = BIT(24),
/** Front Right Wide */
BT_AUDIO_LOCATION_FRONT_RIGHT_WIDE = BIT(25),
/** Left Surround */
BT_AUDIO_LOCATION_LEFT_SURROUND = BIT(26),
/** Right Surround */
BT_AUDIO_LOCATION_RIGHT_SURROUND = BIT(27),
};
/**
* Any known location.
*/
#define BT_AUDIO_LOCATION_ANY (BT_AUDIO_LOCATION_FRONT_LEFT | \
BT_AUDIO_LOCATION_FRONT_RIGHT | \
BT_AUDIO_LOCATION_FRONT_CENTER | \
BT_AUDIO_LOCATION_LOW_FREQ_EFFECTS_1 | \
BT_AUDIO_LOCATION_BACK_LEFT | \
BT_AUDIO_LOCATION_BACK_RIGHT | \
BT_AUDIO_LOCATION_FRONT_LEFT_OF_CENTER | \
BT_AUDIO_LOCATION_FRONT_RIGHT_OF_CENTER | \
BT_AUDIO_LOCATION_BACK_CENTER | \
BT_AUDIO_LOCATION_LOW_FREQ_EFFECTS_2 | \
BT_AUDIO_LOCATION_SIDE_LEFT | \
BT_AUDIO_LOCATION_SIDE_RIGHT | \
BT_AUDIO_LOCATION_TOP_FRONT_LEFT | \
BT_AUDIO_LOCATION_TOP_FRONT_RIGHT | \
BT_AUDIO_LOCATION_TOP_FRONT_CENTER | \
BT_AUDIO_LOCATION_TOP_CENTER | \
BT_AUDIO_LOCATION_TOP_BACK_LEFT | \
BT_AUDIO_LOCATION_TOP_BACK_RIGHT | \
BT_AUDIO_LOCATION_TOP_SIDE_LEFT | \
BT_AUDIO_LOCATION_TOP_SIDE_RIGHT | \
BT_AUDIO_LOCATION_TOP_BACK_CENTER | \
BT_AUDIO_LOCATION_BOTTOM_FRONT_CENTER | \
BT_AUDIO_LOCATION_BOTTOM_FRONT_LEFT | \
BT_AUDIO_LOCATION_BOTTOM_FRONT_RIGHT | \
BT_AUDIO_LOCATION_FRONT_LEFT_WIDE | \
BT_AUDIO_LOCATION_FRONT_RIGHT_WIDE | \
BT_AUDIO_LOCATION_LEFT_SURROUND | \
BT_AUDIO_LOCATION_RIGHT_SURROUND)
/** @brief Codec capability structure. */
struct bt_audio_codec_cap {
/** Data path ID