ESP-BLE-AUDIO
ESP-BLE-AUDIO provides APIs for Bluetooth LE Audio, enabling time-synchronized audio over BLE using the Bluetooth Core Specification LE Audio architecture. Applications can implement unicast (one-to-one) and broadcast audio scenarios, including hearing aids, headsets, speakers, and broadcast sources/sinks.
The LE Audio stack is built on the Bluetooth Core and the LC3 codec. The generic audio framework includes the Common Audio Profile (CAP), Common Audio Service (CAS), and the profiles and services below. Use case specific profiles (HAP, GMAP, TMAP, PBP) sit on top of the generic framework. LE Audio runs over the LE Isochronous Channels (CIS/BIS) supported by ESP-BLE-ISO.
Warning
This is a preview release. The ESP-BLE-AUDIO APIs, data structures, and configuration parameters are subject to change in future releases. Breaking changes — such as renamed or restructured types, modified function signatures, or removed fields — may be introduced without prior notice.
Generic audio framework
Common Audio Profile (CAP) — Top-level profile for coordinating audio procedures across single or multiple devices.
Common Audio Service (CAS) — GATT service companion to CAP; used for coordinated set member announcement.
Basic Audio Profile (BAP) — Unicast and broadcast stream setup, codec configuration, and stream control.
Published Audio Capabilities Service (PACS) — Advertising and negotiating audio capabilities.
Audio Stream Control Service (ASCS) — Exposes sink/source audio endpoints on a BAP Unicast Server; used by the Unicast Client to configure and control streams.
Broadcast Audio Scan Service (BASS) — Allows a Broadcast Assistant to offload BIS scanning from a low-power Scan Delegator.
Volume Control Profile (VCP) — Volume control (VCS, VOCS, AICS).
Volume Offset Control Service (VOCS) — Per-output volume offset.
Audio Input Control Service (AICS) — Audio input (microphone) state and gain.
Microphone Control Profile (MICP) — Microphone mute and gain (MICS).
Coordinated Set Identification Profile (CSIP) — Set member identification for coordinated sets (e.g., left/right earbuds).
Media Control Profile (MCP) — Media control (MCS).
Media Control Service (MCS) — Media control service.
Call Control Profile (CCP) — Call/telephony control (TBS).
Telephone Bearer Service (TBS) — Telephony bearer and in-call control.
Media Proxy — Media proxy service (Zephyr implementation component; not a Bluetooth SIG specification).
Use case specific profiles
Hearing Access Profile (HAP) — Hearing aid presets and presets control.
Gaming Audio Profile (GMAP) — Gaming audio (e.g. Unicast Game Gateway/Terminal, Broadcast Game Sender/Receiver).
Telephony and Media Audio Profile (TMAP) — Interoperability configurations for telephony and media audio use cases.
Public Broadcast Profile (PBP) — Discovery and subscription to public broadcast streams.
Application Examples
BAP (Basic Audio Profile)
bluetooth/esp_ble_audio/bap/broadcast_sink demonstrates how to act as a BAP Broadcast Sink that synchronizes to a broadcast source and receives BIS audio streams.
bluetooth/esp_ble_audio/bap/broadcast_source demonstrates how to act as a BAP Broadcast Source that creates a BIG and sends broadcast audio over BIS.
bluetooth/esp_ble_audio/bap/unicast_client demonstrates how to discover and connect to a unicast server and establish BAP unicast streams.
bluetooth/esp_ble_audio/bap/unicast_server demonstrates how to advertise and accept unicast connections and serve BAP unicast streams.
CAP (Common Audio Profile)
bluetooth/esp_ble_audio/cap/acceptor demonstrates how to act as a CAP Acceptor for unicast and broadcast flows.
bluetooth/esp_ble_audio/cap/initiator demonstrates how to act as a CAP Initiator for unicast and broadcast flows.
TMAP (Telephony and Media Audio Profile)
bluetooth/esp_ble_audio/tmap/bmr demonstrates the TMAP Broadcast Media Receiver (BMR) role that receives broadcast audio from a BMS.
bluetooth/esp_ble_audio/tmap/bms demonstrates the TMAP Broadcast Media Sender (BMS) role that sends broadcast audio.
bluetooth/esp_ble_audio/tmap/central demonstrates the TMAP Call Gateway (CG) and Unicast Media Sender (UMS) roles.
bluetooth/esp_ble_audio/tmap/peripheral demonstrates the TMAP Call Terminal (CT) and Unicast Media Receiver (UMR) roles.
API Reference
ESP-BLE-AUDIO APIs are divided into the following parts:
ESP-BLE-AUDIO Definitions
This section contains common definitions, constants, and types used across LE Audio.
General Definitions
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_defs.h
This header file can be included with:
#include "esp_ble_audio_defs.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Macros
-
ESP_BLE_AUDIO_ATT_MTU_MIN
< Minimum ATT MTU size required by Basic Audio Profile (BAP)
-
ESP_BLE_AUDIO_DIR_SINK
Audio direction sink.
For a BAP Unicast Client or Broadcast Source this is considered outgoing audio (TX). For a BAP Unicast Server or Broadcast Sink this is considered incoming audio (RX).
-
ESP_BLE_AUDIO_DIR_SOURCE
Audio direction source.
For a BAP Unicast Client or Broadcast Source this is considered incoming audio (RX). For a BAP Unicast Server or Broadcast Sink this is considered outgoing audio (TX).
-
ESP_BLE_AUDIO_LANG_SIZE
Size of the broadcast ID in octets
-
ESP_BLE_AUDIO_BROADCAST_ID_SIZE
Maximum broadcast ID value
-
ESP_BLE_AUDIO_BROADCAST_ID_MAX
Indicates that the server have no preference for the presentation delay
-
ESP_BLE_AUDIO_PD_PREF_NONE
Maximum presentation delay in microseconds
-
ESP_BLE_AUDIO_PD_MAX
Indicates that the unicast server does not have a preference for any retransmission number
-
ESP_BLE_AUDIO_RTN_PREF_NONE
The minimum size of a Broadcast Name as defined by Bluetooth Assigned Numbers
-
ESP_BLE_AUDIO_BROADCAST_NAME_LEN_MIN
The maximum size of a Broadcast Name as defined by Bluetooth Assigned Numbers
-
ESP_BLE_AUDIO_BROADCAST_NAME_LEN_MAX
Unicast Server is connectable and is requesting a connection.
-
ESP_BLE_AUDIO_UNICAST_ANNOUNCEMENT_GENERAL
Unicast Server is connectable but is not requesting a connection.
-
ESP_BLE_AUDIO_UNICAST_ANNOUNCEMENT_TARGETED
No context type
-
ESP_BLE_AUDIO_CONTEXT_TYPE_NONE
-
ESP_BLE_AUDIO_CONTEXT_TYPE_UNSPECIFIED
Identifies audio where the use case context does not match any other defined value, or where the context is unknown or cannot be determined.
-
ESP_BLE_AUDIO_CONTEXT_TYPE_CONVERSATIONAL
Conversation between humans, for example, in telephony or video calls, including traditional cellular as well as VoIP and Push-to-Talk Media, for example, music playback, radio, podcast or movie soundtrack, or tv audio
-
ESP_BLE_AUDIO_CONTEXT_TYPE_MEDIA
-
ESP_BLE_AUDIO_CONTEXT_TYPE_GAME
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 Instructional audio, for example, in navigation, announcements, or user guidance
-
ESP_BLE_AUDIO_CONTEXT_TYPE_INSTRUCTIONAL
Man-machine communication, for example, with voice recognition or virtual assistants
-
ESP_BLE_AUDIO_CONTEXT_TYPE_VOICE_ASSISTANTS
-
ESP_BLE_AUDIO_CONTEXT_TYPE_LIVE
Live audio, for example, from a microphone where audio is perceived both through a direct acoustic path and through an LE Audio Stream
-
ESP_BLE_AUDIO_CONTEXT_TYPE_SOUND_EFFECTS
Sound effects including keyboard and touch feedback; menu and user interface sounds; and other system sounds
-
ESP_BLE_AUDIO_CONTEXT_TYPE_NOTIFICATIONS
Notification and reminder sounds; attention-seeking audio, for example, in beeps signaling the arrival of a message
-
ESP_BLE_AUDIO_CONTEXT_TYPE_RINGTONE
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
-
ESP_BLE_AUDIO_CONTEXT_TYPE_ALERTS
Alarms and timers; immediate alerts, for example, in a critical battery alarm, timer expiry or alarm clock, toaster, cooker, kettle, microwave, etc. Emergency alarm Emergency sounds, for example, fire alarms or other urgent alerts
-
ESP_BLE_AUDIO_CONTEXT_TYPE_EMERGENCY_ALARM
Any known context
-
ESP_BLE_AUDIO_CONTEXT_TYPE_ANY
-
ESP_BLE_AUDIO_PARENTAL_RATING_NO_RATING
For all ages
-
ESP_BLE_AUDIO_PARENTAL_RATING_AGE_ANY
Recommended for listeners of age 5 and above
-
ESP_BLE_AUDIO_PARENTAL_RATING_AGE_5_OR_ABOVE
Recommended for listeners of age 6 and above
-
ESP_BLE_AUDIO_PARENTAL_RATING_AGE_6_OR_ABOVE
Recommended for listeners of age 7 and above
-
ESP_BLE_AUDIO_PARENTAL_RATING_AGE_7_OR_ABOVE
Recommended for listeners of age 8 and above
-
ESP_BLE_AUDIO_PARENTAL_RATING_AGE_8_OR_ABOVE
Recommended for listeners of age 9 and above
-
ESP_BLE_AUDIO_PARENTAL_RATING_AGE_9_OR_ABOVE
Recommended for listeners of age 10 and above
-
ESP_BLE_AUDIO_PARENTAL_RATING_AGE_10_OR_ABOVE
Recommended for listeners of age 11 and above
-
ESP_BLE_AUDIO_PARENTAL_RATING_AGE_11_OR_ABOVE
Recommended for listeners of age 12 and above
-
ESP_BLE_AUDIO_PARENTAL_RATING_AGE_12_OR_ABOVE
Recommended for listeners of age 13 and above
-
ESP_BLE_AUDIO_PARENTAL_RATING_AGE_13_OR_ABOVE
Recommended for listeners of age 14 and above
-
ESP_BLE_AUDIO_PARENTAL_RATING_AGE_14_OR_ABOVE
Recommended for listeners of age 15 and above
-
ESP_BLE_AUDIO_PARENTAL_RATING_AGE_15_OR_ABOVE
Recommended for listeners of age 16 and above
-
ESP_BLE_AUDIO_PARENTAL_RATING_AGE_16_OR_ABOVE
Recommended for listeners of age 17 and above
-
ESP_BLE_AUDIO_PARENTAL_RATING_AGE_17_OR_ABOVE
Recommended for listeners of age 18 and above
-
ESP_BLE_AUDIO_PARENTAL_RATING_AGE_18_OR_ABOVE
-
ESP_BLE_AUDIO_ACTIVE_STATE_DISABLED
Audio data is being transmitted
-
ESP_BLE_AUDIO_ACTIVE_STATE_ENABLED
-
ESP_BLE_AUDIO_METADATA_TYPE_PREF_CONTEXT
Streaming audio context
-
ESP_BLE_AUDIO_METADATA_TYPE_STREAM_CONTEXT
UTF-8 encoded title or summary of stream content
-
ESP_BLE_AUDIO_METADATA_TYPE_PROGRAM_INFO
Language
-
ESP_BLE_AUDIO_METADATA_TYPE_LANG
Array of 8-bit CCID values
-
ESP_BLE_AUDIO_METADATA_TYPE_CCID_LIST
Parental rating
-
ESP_BLE_AUDIO_METADATA_TYPE_PARENTAL_RATING
UTF-8 encoded URI for additional Program information
-
ESP_BLE_AUDIO_METADATA_TYPE_PROGRAM_INFO_URI
Audio active state
-
ESP_BLE_AUDIO_METADATA_TYPE_AUDIO_STATE
Broadcast Audio Immediate Rendering flag
-
ESP_BLE_AUDIO_METADATA_TYPE_BROADCAST_IMMEDIATE
Assisted listening stream
-
ESP_BLE_AUDIO_METADATA_TYPE_ASSISTED_LISTENING_STREAM
UTF-8 encoded Broadcast name
-
ESP_BLE_AUDIO_METADATA_TYPE_BROADCAST_NAME
Extended metadata
-
ESP_BLE_AUDIO_METADATA_TYPE_EXTENDED
Vendor specific metadata
-
ESP_BLE_AUDIO_METADATA_TYPE_VENDOR
-
ESP_BLE_AUDIO_METADATA_TYPE_IS_KNOWN(_type)
Helper to check whether metadata type is known by the stack.
- Parameters:
_type -- Metadata type.
-
ESP_BLE_AUDIO_LOCATION_MONO_AUDIO
Front Left
-
ESP_BLE_AUDIO_LOCATION_FRONT_LEFT
Front Right
-
ESP_BLE_AUDIO_LOCATION_FRONT_RIGHT
Front Center
-
ESP_BLE_AUDIO_LOCATION_FRONT_CENTER
Low Frequency Effects 1
-
ESP_BLE_AUDIO_LOCATION_LOW_FREQ_EFFECTS_1
Back Left
-
ESP_BLE_AUDIO_LOCATION_BACK_LEFT
Back Right
-
ESP_BLE_AUDIO_LOCATION_BACK_RIGHT
Front Left of Center
-
ESP_BLE_AUDIO_LOCATION_FRONT_LEFT_OF_CENTER
Front Right of Center
-
ESP_BLE_AUDIO_LOCATION_FRONT_RIGHT_OF_CENTER
Back Center
-
ESP_BLE_AUDIO_LOCATION_BACK_CENTER
Low Frequency Effects 2
-
ESP_BLE_AUDIO_LOCATION_LOW_FREQ_EFFECTS_2
Side Left
-
ESP_BLE_AUDIO_LOCATION_SIDE_LEFT
Side Right
-
ESP_BLE_AUDIO_LOCATION_SIDE_RIGHT
Top Front Left
-
ESP_BLE_AUDIO_LOCATION_TOP_FRONT_LEFT
Top Front Right
-
ESP_BLE_AUDIO_LOCATION_TOP_FRONT_RIGHT
Top Front Center
-
ESP_BLE_AUDIO_LOCATION_TOP_FRONT_CENTER
Top Center
-
ESP_BLE_AUDIO_LOCATION_TOP_CENTER
Top Back Left
-
ESP_BLE_AUDIO_LOCATION_TOP_BACK_LEFT
Top Back Right
-
ESP_BLE_AUDIO_LOCATION_TOP_BACK_RIGHT
Top Side Left
-
ESP_BLE_AUDIO_LOCATION_TOP_SIDE_LEFT
Top Side Right
-
ESP_BLE_AUDIO_LOCATION_TOP_SIDE_RIGHT
Top Back Center
-
ESP_BLE_AUDIO_LOCATION_TOP_BACK_CENTER
Bottom Front Center
-
ESP_BLE_AUDIO_LOCATION_BOTTOM_FRONT_CENTER
Bottom Front Left
-
ESP_BLE_AUDIO_LOCATION_BOTTOM_FRONT_LEFT
Bottom Front Right
-
ESP_BLE_AUDIO_LOCATION_BOTTOM_FRONT_RIGHT
Front Left Wide
-
ESP_BLE_AUDIO_LOCATION_FRONT_LEFT_WIDE
Front Right Wide
-
ESP_BLE_AUDIO_LOCATION_FRONT_RIGHT_WIDE
Left Surround
-
ESP_BLE_AUDIO_LOCATION_LEFT_SURROUND
Right Surround
-
ESP_BLE_AUDIO_LOCATION_RIGHT_SURROUND
Any known location
-
ESP_BLE_AUDIO_LOCATION_ANY
-
ESP_BLE_AUDIO_ASSISTED_LISTENING_STREAM_UNSPECIFIED
-
ESP_BLE_AUDIO_UUID_SIZE_16
Audio Input Control Service UUID value
-
ESP_BLE_AUDIO_UUID_AICS_VAL
Audio Stream Control Service UUID value
-
ESP_BLE_AUDIO_UUID_ASCS_VAL
Broadcast Audio Scan Service UUID value
-
ESP_BLE_AUDIO_UUID_BASS_VAL
Basic Audio Announcement Service UUID value
-
ESP_BLE_AUDIO_UUID_BASIC_AUDIO_VAL
Broadcast Audio Announcement Service UUID value
-
ESP_BLE_AUDIO_UUID_BROADCAST_AUDIO_VAL
Common Audio Service UUID value
-
ESP_BLE_AUDIO_UUID_CAS_VAL
Coordinated Set Identification Service UUID value
-
ESP_BLE_AUDIO_UUID_CSIS_VAL
Gaming Service UUID value
-
ESP_BLE_AUDIO_UUID_GMAS_VAL
Generic Media Control Service UUID value
-
ESP_BLE_AUDIO_UUID_GMCS_VAL
Generic Telephone Bearer Service UUID value
-
ESP_BLE_AUDIO_UUID_GTBS_VAL
Hearing Access Service UUID value
-
ESP_BLE_AUDIO_UUID_HAS_VAL
Media Control Service UUID value
-
ESP_BLE_AUDIO_UUID_MCS_VAL
Microphone Control Service UUID value
-
ESP_BLE_AUDIO_UUID_MICS_VAL
Published Audio Capabilities Service UUID value
-
ESP_BLE_AUDIO_UUID_PACS_VAL
Public Broadcast Announcement Service UUID value
-
ESP_BLE_AUDIO_UUID_PBA_VAL
Telephone Bearer Service UUID value
-
ESP_BLE_AUDIO_UUID_TBS_VAL
Telephony and Media Audio Service UUID value
-
ESP_BLE_AUDIO_UUID_TMAS_VAL
Volume Control Service UUID value
-
ESP_BLE_AUDIO_UUID_VCS_VAL
Volume Offset Control Service UUID value
-
ESP_BLE_AUDIO_UUID_VOCS_VAL
Object Transfer Service UUID value
-
ESP_BLE_AUDIO_UUID_OTS_VAL
Audio Input Control Service State value
-
ESP_BLE_AUDIO_UUID_AICS_STATE_VAL
Audio Input Control Service Gain Settings Properties value
-
ESP_BLE_AUDIO_UUID_AICS_GAIN_SETTINGS_VAL
Audio Input Control Service Input Type value
-
ESP_BLE_AUDIO_UUID_AICS_INPUT_TYPE_VAL
Audio Input Control Service Input Status value
-
ESP_BLE_AUDIO_UUID_AICS_INPUT_STATUS_VAL
Audio Input Control Service Control Point value
-
ESP_BLE_AUDIO_UUID_AICS_CONTROL_VAL
Audio Input Control Service Input Description value
-
ESP_BLE_AUDIO_UUID_AICS_DESCRIPTION_VAL
Audio Stream Endpoint Sink Characteristic value
-
ESP_BLE_AUDIO_UUID_ASCS_ASE_SNK_VAL
Audio Stream Endpoint Source Characteristic value
-
ESP_BLE_AUDIO_UUID_ASCS_ASE_SRC_VAL
Audio Stream Endpoint Control Point Characteristic value
-
ESP_BLE_AUDIO_UUID_ASCS_ASE_CP_VAL
Broadcast Audio Scan Service Scan State value
-
ESP_BLE_AUDIO_UUID_BASS_CONTROL_POINT_VAL
Broadcast Audio Scan Service Receive State value
-
ESP_BLE_AUDIO_UUID_BASS_RECV_STATE_VAL
Set Identity Resolving Key value
-
ESP_BLE_AUDIO_UUID_CSIS_SIRK_VAL
Set size value
-
ESP_BLE_AUDIO_UUID_CSIS_SET_SIZE_VAL
Set lock value
-
ESP_BLE_AUDIO_UUID_CSIS_SET_LOCK_VAL
Rank value
-
ESP_BLE_AUDIO_UUID_CSIS_RANK_VAL
Gaming Audio Profile Role UUID value
-
ESP_BLE_AUDIO_UUID_GMAP_ROLE_VAL
Gaming Audio Profile Unicast Game Gateway Features UUID value
-
ESP_BLE_AUDIO_UUID_GMAP_UGG_FEAT_VAL
Gaming Audio Profile Unicast Game Terminal Features UUID value
-
ESP_BLE_AUDIO_UUID_GMAP_UGT_FEAT_VAL
Gaming Audio Profile Broadcast Game Sender Features UUID value
-
ESP_BLE_AUDIO_UUID_GMAP_BGS_FEAT_VAL
Gaming Audio Profile Broadcast Game Receiver Features UUID value
-
ESP_BLE_AUDIO_UUID_GMAP_BGR_FEAT_VAL
Hearing Aid Features Characteristic value
-
ESP_BLE_AUDIO_UUID_HAS_HEARING_AID_FEATURES_VAL
Hearing Aid Preset Control Point Characteristic value
-
ESP_BLE_AUDIO_UUID_HAS_PRESET_CONTROL_POINT_VAL
Hearing Aid Active Preset Index Characteristic value
-
ESP_BLE_AUDIO_UUID_HAS_ACTIVE_PRESET_INDEX_VAL
Media player name value
-
ESP_BLE_AUDIO_UUID_MCS_PLAYER_NAME_VAL
Media Icon Object ID value
-
ESP_BLE_AUDIO_UUID_MCS_ICON_OBJ_ID_VAL
Media Icon URL value
-
ESP_BLE_AUDIO_UUID_MCS_ICON_URL_VAL
Track Changed value
-
ESP_BLE_AUDIO_UUID_MCS_TRACK_CHANGED_VAL
Track Title value
-
ESP_BLE_AUDIO_UUID_MCS_TRACK_TITLE_VAL
Track Duration value
-
ESP_BLE_AUDIO_UUID_MCS_TRACK_DURATION_VAL
Track Position value
-
ESP_BLE_AUDIO_UUID_MCS_TRACK_POSITION_VAL
Playback Speed value
-
ESP_BLE_AUDIO_UUID_MCS_PLAYBACK_SPEED_VAL
Seeking Speed value
-
ESP_BLE_AUDIO_UUID_MCS_SEEKING_SPEED_VAL
Track Segments Object ID value
-
ESP_BLE_AUDIO_UUID_MCS_TRACK_SEGMENTS_OBJ_ID_VAL
Current Track Object ID value
-
ESP_BLE_AUDIO_UUID_MCS_CURRENT_TRACK_OBJ_ID_VAL
Next Track Object ID value
-
ESP_BLE_AUDIO_UUID_MCS_NEXT_TRACK_OBJ_ID_VAL
Parent Group Object ID value
-
ESP_BLE_AUDIO_UUID_MCS_PARENT_GROUP_OBJ_ID_VAL
Group Object ID value
-
ESP_BLE_AUDIO_UUID_MCS_CURRENT_GROUP_OBJ_ID_VAL
Playing Order value
-
ESP_BLE_AUDIO_UUID_MCS_PLAYING_ORDER_VAL
Playing Orders supported value
-
ESP_BLE_AUDIO_UUID_MCS_PLAYING_ORDERS_VAL
Media State value
-
ESP_BLE_AUDIO_UUID_MCS_MEDIA_STATE_VAL
Media Control Point value
-
ESP_BLE_AUDIO_UUID_MCS_MEDIA_CONTROL_POINT_VAL
Media control opcodes supported value
-
ESP_BLE_AUDIO_UUID_MCS_MEDIA_CONTROL_OPCODES_VAL
Search result object ID value
-
ESP_BLE_AUDIO_UUID_MCS_SEARCH_RESULTS_OBJ_ID_VAL
Search control point value
-
ESP_BLE_AUDIO_UUID_MCS_SEARCH_CONTROL_POINT_VAL
Microphone Control Service Mute value
-
ESP_BLE_AUDIO_UUID_MICS_MUTE_VAL
Sink PAC Characteristic value
-
ESP_BLE_AUDIO_UUID_PACS_SNK_VAL
Sink PAC Locations Characteristic value
-
ESP_BLE_AUDIO_UUID_PACS_SNK_LOC_VAL
Source PAC Characteristic value
-
ESP_BLE_AUDIO_UUID_PACS_SRC_VAL
Source PAC Locations Characteristic value
-
ESP_BLE_AUDIO_UUID_PACS_SRC_LOC_VAL
Available Audio Contexts Characteristic value
-
ESP_BLE_AUDIO_UUID_PACS_AVAILABLE_CONTEXT_VAL
Supported Audio Context Characteristic value
-
ESP_BLE_AUDIO_UUID_PACS_SUPPORTED_CONTEXT_VAL
Bearer Provider Name value
-
ESP_BLE_AUDIO_UUID_TBS_PROVIDER_NAME_VAL
Bearer UCI value
-
ESP_BLE_AUDIO_UUID_TBS_UCI_VAL
Bearer Technology value
-
ESP_BLE_AUDIO_UUID_TBS_TECHNOLOGY_VAL
Bearer URI Prefixes Supported List value
-
ESP_BLE_AUDIO_UUID_TBS_URI_LIST_VAL
Bearer Signal Strength value
-
ESP_BLE_AUDIO_UUID_TBS_SIGNAL_STRENGTH_VAL
Bearer Signal Strength Reporting Interval value
-
ESP_BLE_AUDIO_UUID_TBS_SIGNAL_INTERVAL_VAL
Bearer List Current Calls value
-
ESP_BLE_AUDIO_UUID_TBS_LIST_CURRENT_CALLS_VAL
Status flags value
-
ESP_BLE_AUDIO_UUID_TBS_STATUS_FLAGS_VAL
Incoming Call Target Caller ID value
-
ESP_BLE_AUDIO_UUID_TBS_INCOMING_URI_VAL
Call State value
-
ESP_BLE_AUDIO_UUID_TBS_CALL_STATE_VAL
Call Control Point value
-
ESP_BLE_AUDIO_UUID_TBS_CALL_CONTROL_POINT_VAL
Optional Opcodes value
-
ESP_BLE_AUDIO_UUID_TBS_OPTIONAL_OPCODES_VAL
Terminate reason value
-
ESP_BLE_AUDIO_UUID_TBS_TERMINATE_REASON_VAL
Incoming Call value
-
ESP_BLE_AUDIO_UUID_TBS_INCOMING_CALL_VAL
Incoming Call Friendly name value
-
ESP_BLE_AUDIO_UUID_TBS_FRIENDLY_NAME_VAL
Volume Control Setting value
-
ESP_BLE_AUDIO_UUID_VCS_STATE_VAL
Volume Control Control point value
-
ESP_BLE_AUDIO_UUID_VCS_CONTROL_VAL
Volume Control Flags value
-
ESP_BLE_AUDIO_UUID_VCS_FLAGS_VAL
Volume Offset State value
-
ESP_BLE_AUDIO_UUID_VOCS_STATE_VAL
Audio Location value
-
ESP_BLE_AUDIO_UUID_VOCS_LOCATION_VAL
Volume Offset Control Point value
-
ESP_BLE_AUDIO_UUID_VOCS_CONTROL_VAL
Volume Offset Audio Output Description value
-
ESP_BLE_AUDIO_UUID_VOCS_DESCRIPTION_VAL
Content Control ID value
-
ESP_BLE_AUDIO_UUID_CCID_VAL
OTS Feature Characteristic UUID value
-
ESP_BLE_AUDIO_UUID_OTS_FEATURE_VAL
OTS Object Name Characteristic UUID value
-
ESP_BLE_AUDIO_UUID_OTS_NAME_VAL
OTS Object Type Characteristic UUID value
-
ESP_BLE_AUDIO_UUID_OTS_TYPE_VAL
OTS Object Size Characteristic UUID value
-
ESP_BLE_AUDIO_UUID_OTS_SIZE_VAL
OTS Object First-Created Characteristic UUID value
-
ESP_BLE_AUDIO_UUID_OTS_FIRST_CREATED_VAL
OTS Object Last-Modified Characteristic UUI value
-
ESP_BLE_AUDIO_UUID_OTS_LAST_MODIFIED_VAL
OTS Object ID Characteristic UUID value
-
ESP_BLE_AUDIO_UUID_OTS_ID_VAL
OTS Object Properties Characteristic UUID value
-
ESP_BLE_AUDIO_UUID_OTS_PROPERTIES_VAL
OTS Object Action Control Point Characteristic UUID value
-
ESP_BLE_AUDIO_UUID_OTS_ACTION_CP_VAL
OTS Object List Control Point Characteristic UUID value
-
ESP_BLE_AUDIO_UUID_OTS_LIST_CP_VAL
OTS Object List Filter Characteristic UUID value
-
ESP_BLE_AUDIO_UUID_OTS_LIST_FILTER_VAL
OTS Object Changed Characteristic UUID value
-
ESP_BLE_AUDIO_UUID_OTS_CHANGED_VAL
OTS Unspecified Object Type UUID value
-
ESP_BLE_AUDIO_UUID_OTS_TYPE_UNSPECIFIED_VAL
OTS Directory Listing UUID value
-
ESP_BLE_AUDIO_UUID_OTS_DIRECTORY_LISTING_VAL
OTS Media Player Icon Object Type value
-
ESP_BLE_AUDIO_UUID_OTS_TYPE_MPL_ICON_VAL
OTS Track Segments Object Type value
-
ESP_BLE_AUDIO_UUID_OTS_TYPE_TRACK_SEGMENT_VAL
OTS Track Object Type value
-
ESP_BLE_AUDIO_UUID_OTS_TYPE_TRACK_VAL
OTS Group Object Type value
-
ESP_BLE_AUDIO_UUID_OTS_TYPE_GROUP_VAL
Generic Audio Sink
-
ESP_BLE_AUDIO_APPEARANCE_GENERIC_AUDIO_SINK
Standalone Speaker
-
ESP_BLE_AUDIO_APPEARANCE_AUDIO_SINK_STANDALONE_SPEAKER
Soundbar
-
ESP_BLE_AUDIO_APPEARANCE_AUDIO_SINK_SOUNDBAR
Bookshelf Speaker
-
ESP_BLE_AUDIO_APPEARANCE_AUDIO_SINK_BOOKSHELF_SPEAKER
Standmounted Speaker
-
ESP_BLE_AUDIO_APPEARANCE_AUDIO_SINK_STANDMOUNTED_SPEAKER
Speakerphone
-
ESP_BLE_AUDIO_APPEARANCE_AUDIO_SINK_SPEAKERPHONE
Generic Audio Source
-
ESP_BLE_AUDIO_APPEARANCE_GENERIC_AUDIO_SOURCE
Microphone
-
ESP_BLE_AUDIO_APPEARANCE_AUDIO_SOURCE_MICROPHONE
Alarm
-
ESP_BLE_AUDIO_APPEARANCE_AUDIO_SOURCE_ALARM
Bell
-
ESP_BLE_AUDIO_APPEARANCE_AUDIO_SOURCE_BELL
Horn
-
ESP_BLE_AUDIO_APPEARANCE_AUDIO_SOURCE_HORN
Broadcasting Device
-
ESP_BLE_AUDIO_APPEARANCE_AUDIO_SOURCE_BROADCASTING_DEVICE
Service Desk
-
ESP_BLE_AUDIO_APPEARANCE_AUDIO_SOURCE_SERVICE_DESK
Kiosk
-
ESP_BLE_AUDIO_APPEARANCE_AUDIO_SOURCE_KIOSK
Broadcasting Room
-
ESP_BLE_AUDIO_APPEARANCE_AUDIO_SOURCE_BROADCASTING_ROOM
Auditorium
-
ESP_BLE_AUDIO_APPEARANCE_AUDIO_SOURCE_AUDITORIUM
Generic Wearable Audio Device
-
ESP_BLE_AUDIO_APPEARANCE_GENERIC_WEARABLE_AUDIO_DEVICE
Earbud
-
ESP_BLE_AUDIO_APPEARANCE_WEARABLE_AUDIO_DEVICE_EARBUD
Headset
-
ESP_BLE_AUDIO_APPEARANCE_WEARABLE_AUDIO_DEVICE_HEADSET
Headphones
-
ESP_BLE_AUDIO_APPEARANCE_WEARABLE_AUDIO_DEVICE_HEADPHONES
Neck Band
-
ESP_BLE_AUDIO_APPEARANCE_WEARABLE_AUDIO_DEVICE_NECK_BAND
Generic Hearing aid
-
ESP_BLE_AUDIO_APPEARANCE_GENERIC_HEARING_AID
In-ear hearing aid
-
ESP_BLE_AUDIO_APPEARANCE_HEARING_AID_IN_EAR
Behind-ear hearing aid
-
ESP_BLE_AUDIO_APPEARANCE_HEARING_AID_BEHIND_EAR
Cochlear Implant
-
ESP_BLE_AUDIO_APPEARANCE_HEARING_AID_COCHLEAR_IMPLANT
Type Definitions
-
typedef enum bt_audio_dir esp_ble_audio_dir_t
Audio direction from the perspective of the BAP Unicast Server / BAP Broadcast Sink Size of the stream language value, e.g. "eng"
-
typedef enum bt_audio_context esp_ble_audio_context_t
Audio Context Type for Generic Audio No rating
-
typedef enum bt_audio_parental_rating esp_ble_audio_parental_rating_t
Parental rating defined by the Generic Audio assigned numbers No audio data is being transmitted
-
typedef enum bt_audio_active_state esp_ble_audio_active_state_t
Audio Active State defined by the Generic Audio assigned numbers Preferred audio context
-
typedef enum bt_audio_metadata_type esp_ble_audio_metadata_type_t
Metadata types defined by the Generic Audio assigned numbers Mono Audio (no specified Audio Location)
-
typedef enum bt_audio_location esp_ble_audio_location_t
Location values defined by the Generic Audio assigned numbers Unspecified audio enhancement
-
typedef enum bt_audio_assisted_listening_stream esp_ble_audio_assisted_listening_stream_t
Assisted Listening Stream defined by the Generic Audio assigned numbers Size in octets of a 16-bit UUID
LC3 Codec Definitions
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_lc3_defs.h
This header file can be included with:
#include "esp_ble_audio_lc3_defs.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Macros
-
ESP_BLE_AUDIO_CODEC_CAP_LC3_DATA(_freq, _duration, _chan_count, _len_min, _len_max, _max_frames_per_sdu)
Helper to declare LC3 codec capability.
- Parameters:
_freq -- Supported Sampling Frequencies bitfield.
_duration -- Supported Frame Durations bitfield.
_chan_count -- Supported channels.
_len_min -- Minimum number of octets supported per codec frame.
_len_max -- Maximum number of octets supported per codec frame.
_max_frames_per_sdu -- Supported maximum codec frames per SDU. Optional and will be included only if != 1.
-
ESP_BLE_AUDIO_CODEC_CAP_LC3_META(_prefer_context)
Helper to declare LC3 codec metadata.
- Parameters:
_prefer_context -- Preferred contexts.
-
ESP_BLE_AUDIO_CODEC_CAP_LC3(_data, _meta)
Helper to declare LC3 codec capability.
- Parameters:
_data -- LC3 codec capability data.
_meta -- LC3 codec capability metadata.
-
ESP_BLE_AUDIO_CODEC_CAP_LC3_LEN(_data, _data_len, _meta, _meta_len)
Variant of ESP_BLE_AUDIO_CODEC_CAP_LC3 with explicit LVT content lengths.
-
ESP_BLE_AUDIO_CODEC_CFG_LC3_DATA(_freq, _duration, _loc, _len, _frames_per_sdu)
Helper to declare LC3 codec data configuration.
- Parameters:
_freq -- Sampling frequency.
_duration -- Frame duration.
_loc -- Audio channel location bitfield.
_len -- Octets per frame (16-bit integer).
_frames_per_sdu -- Frames per SDU (8-bit integer). This value is optional and will be included only if != 1.
-
ESP_BLE_AUDIO_CODEC_CFG_LC3_META(_stream_context)
Helper to declare LC3 codec metadata configuration.
- Parameters:
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_CODEC_CFG_LC3(_data, _meta)
Helper to declare LC3 codec configuration.
- Parameters:
_data -- LC3 codec configuration data.
_meta -- LC3 codec configuration metadata.
-
ESP_BLE_AUDIO_CODEC_CFG_LC3_LEN(_data, _data_len, _meta, _meta_len)
Variant of ESP_BLE_AUDIO_CODEC_CFG_LC3 with explicit LVT content lengths.
MCS Definitions
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_mcs_defs.h
This header file can be included with:
#include "esp_ble_audio_mcs_defs.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Macros
-
ESP_BLE_AUDIO_MCS_PLAYBACK_SPEED_MIN
< Minimum playback speed, resulting in 25% speed Quarter playback speed, resulting in 25% speed
-
ESP_BLE_AUDIO_MCS_PLAYBACK_SPEED_QUARTER
Half playback speed, resulting in 50% speed
-
ESP_BLE_AUDIO_MCS_PLAYBACK_SPEED_HALF
Unity playback speed, resulting in 100% speed
-
ESP_BLE_AUDIO_MCS_PLAYBACK_SPEED_UNITY
Double playback speed, resulting in 200% speed
-
ESP_BLE_AUDIO_MCS_PLAYBACK_SPEED_DOUBLE
Max playback speed, resulting in 395.7% speed (nearly 400%)
-
ESP_BLE_AUDIO_MCS_PLAYBACK_SPEED_MAX
Maximum seeking speed - Can be negated
-
ESP_BLE_AUDIO_MCS_SEEKING_SPEED_FACTOR_MAX
Minimum seeking speed - Can be negated
-
ESP_BLE_AUDIO_MCS_SEEKING_SPEED_FACTOR_MIN
No seeking
-
ESP_BLE_AUDIO_MCS_SEEKING_SPEED_FACTOR_ZERO
A single track is played once; there is no next track.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDER_SINGLE_ONCE
A single track is played repeatedly; the next track is the current track.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDER_SINGLE_REPEAT
The tracks within a group are played once in track order.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDER_INORDER_ONCE
The tracks within a group are played in track order repeatedly.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDER_INORDER_REPEAT
The tracks within a group are played once only from the oldest first.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDER_OLDEST_ONCE
The tracks within a group are played from the oldest first repeatedly.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDER_OLDEST_REPEAT
The tracks within a group are played once only from the newest first.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDER_NEWEST_ONCE
The tracks within a group are played from the newest first repeatedly.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDER_NEWEST_REPEAT
The tracks within a group are played in random order once.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDER_SHUFFLE_ONCE
The tracks within a group are played in random order repeatedly.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDER_SHUFFLE_REPEAT
The current track is invalid, and no track has been selected.
-
ESP_BLE_AUDIO_MCS_MEDIA_STATE_INACTIVE
The media player is playing the current track.
-
ESP_BLE_AUDIO_MCS_MEDIA_STATE_PLAYING
The current track is paused. The media player has a current track, but it is not being played
-
ESP_BLE_AUDIO_MCS_MEDIA_STATE_PAUSED
The current track is fast forwarding or fast rewinding.
-
ESP_BLE_AUDIO_MCS_MEDIA_STATE_SEEKING
Start playing the current track.
-
ESP_BLE_AUDIO_MCS_OPC_PLAY
Pause playing the current track.
-
ESP_BLE_AUDIO_MCS_OPC_PAUSE
Fast rewind the current track.
-
ESP_BLE_AUDIO_MCS_OPC_FAST_REWIND
Fast forward the current track.
-
ESP_BLE_AUDIO_MCS_OPC_FAST_FORWARD
-
ESP_BLE_AUDIO_MCS_OPC_STOP
Stop current activity and return to the paused state and set the current track position to the start of the current track. Set a new current track position relative to the current track position.
-
ESP_BLE_AUDIO_MCS_OPC_MOVE_RELATIVE
-
ESP_BLE_AUDIO_MCS_OPC_PREV_SEGMENT
Set the current track position to the starting position of the previous segment of the current track.
-
ESP_BLE_AUDIO_MCS_OPC_NEXT_SEGMENT
Set the current track position to the starting position of the next segment of the current track.
-
ESP_BLE_AUDIO_MCS_OPC_FIRST_SEGMENT
Set the current track position to the starting position of the first segment of the current track.
-
ESP_BLE_AUDIO_MCS_OPC_LAST_SEGMENT
Set the current track position to the starting position of the last segment of the current track.
-
ESP_BLE_AUDIO_MCS_OPC_GOTO_SEGMENT
Set the current track position to the starting position of the nth segment of the current track. Set the current track to the previous track based on the playing order.
-
ESP_BLE_AUDIO_MCS_OPC_PREV_TRACK
Set the current track to the next track based on the playing order.
-
ESP_BLE_AUDIO_MCS_OPC_NEXT_TRACK
Set the current track to the first track based on the playing order.
-
ESP_BLE_AUDIO_MCS_OPC_FIRST_TRACK
Set the current track to the last track based on the playing order.
-
ESP_BLE_AUDIO_MCS_OPC_LAST_TRACK
Set the current track to the nth track based on the playing order.
-
ESP_BLE_AUDIO_MCS_OPC_GOTO_TRACK
Set the current group to the previous group in the sequence of groups.
-
ESP_BLE_AUDIO_MCS_OPC_PREV_GROUP
Set the current group to the next group in the sequence of groups.
-
ESP_BLE_AUDIO_MCS_OPC_NEXT_GROUP
Set the current group to the first group in the sequence of groups.
-
ESP_BLE_AUDIO_MCS_OPC_FIRST_GROUP
Set the current group to the last group in the sequence of groups.
-
ESP_BLE_AUDIO_MCS_OPC_LAST_GROUP
Set the current group to the nth group in the sequence of groups.
-
ESP_BLE_AUDIO_MCS_OPC_GOTO_GROUP
Media control point supported opcodes length
-
ESP_BLE_AUDIO_MCS_OPCODES_SUPPORTED_LEN
Support the Play opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_PLAY
Support the Pause opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_PAUSE
Support the Fast Rewind opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_FAST_REWIND
Support the Fast Forward opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_FAST_FORWARD
Support the Stop opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_STOP
Support the Move Relative opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_MOVE_RELATIVE
Support the Previous Segment opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_PREV_SEGMENT
Support the Next Segment opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_NEXT_SEGMENT
Support the First Segment opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_FIRST_SEGMENT
Support the Last Segment opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_LAST_SEGMENT
Support the Goto Segment opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_GOTO_SEGMENT
Support the Previous Track opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_PREV_TRACK
Support the Next Track opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_NEXT_TRACK
Support the First Track opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_FIRST_TRACK
Support the Last Track opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_LAST_TRACK
Support the Goto Track opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_GOTO_TRACK
Support the Previous Group opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_PREV_GROUP
Support the Next Group opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_NEXT_GROUP
Support the First Group opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_FIRST_GROUP
Support the Last Group opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_LAST_GROUP
Support the Goto Group opcode
-
ESP_BLE_AUDIO_MCS_OPC_SUP_GOTO_GROUP
-
ESP_BLE_AUDIO_MCS_OPC_NTF_SUCCESS
Action requested by the opcode write was completed successfully.
-
ESP_BLE_AUDIO_MCS_OPC_NTF_NOT_SUPPORTED
An invalid or unsupported opcode was used for the Media Control Point write.
-
ESP_BLE_AUDIO_MCS_OPC_NTF_PLAYER_INACTIVE
The Media Player State characteristic value is Inactive when the opcode is received or the result of the requested action of the opcode results in the Media Player State characteristic being set to Inactive.
-
ESP_BLE_AUDIO_MCS_OPC_NTF_CANNOT_BE_COMPLETED
The requested action of any Media Control Point write cannot be completed successfully because of a condition within the player. Search for Track Name
-
ESP_BLE_AUDIO_MCS_SEARCH_TYPE_TRACK_NAME
Search for Artist Name
-
ESP_BLE_AUDIO_MCS_SEARCH_TYPE_ARTIST_NAME
Search for Album Name
-
ESP_BLE_AUDIO_MCS_SEARCH_TYPE_ALBUM_NAME
Search for Group Name
-
ESP_BLE_AUDIO_MCS_SEARCH_TYPE_GROUP_NAME
Search for Earliest Year
-
ESP_BLE_AUDIO_MCS_SEARCH_TYPE_EARLIEST_YEAR
Search for Latest Year
-
ESP_BLE_AUDIO_MCS_SEARCH_TYPE_LATEST_YEAR
Search for Genre
-
ESP_BLE_AUDIO_MCS_SEARCH_TYPE_GENRE
Search for Tracks only
-
ESP_BLE_AUDIO_MCS_SEARCH_TYPE_ONLY_TRACKS
Search for Groups only
-
ESP_BLE_AUDIO_MCS_SEARCH_TYPE_ONLY_GROUPS
Search control point minimum length
-
ESP_BLE_AUDIO_SEARCH_LEN_MIN
Search control point maximum length
-
ESP_BLE_AUDIO_SEARCH_LEN_MAX
Search control point item (SCI) minimum length
-
ESP_BLE_AUDIO_SEARCH_SCI_LEN_MIN
Search parameters maximum length
-
ESP_BLE_AUDIO_SEARCH_PARAM_MAX
Search request was accepted; search has started.
-
ESP_BLE_AUDIO_MCS_SCP_NTF_SUCCESS
Search request was invalid; no search started.
-
ESP_BLE_AUDIO_MCS_SCP_NTF_FAILURE
Group object type is track
-
ESP_BLE_AUDIO_MCS_GROUP_OBJECT_TRACK_TYPE
Group object type is group
-
ESP_BLE_AUDIO_MCS_GROUP_OBJECT_GROUP_TYPE
A single track is played once; there is no next track.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDERS_SUPPORTED_SINGLE_ONCE
A single track is played repeatedly; the next track is the current track.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDERS_SUPPORTED_SINGLE_REPEAT
The tracks within a group are played once in track order.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDERS_SUPPORTED_INORDER_ONCE
The tracks within a group are played in track order repeatedly.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDERS_SUPPORTED_INORDER_REPEAT
The tracks within a group are played once only from the oldest first.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDERS_SUPPORTED_OLDEST_ONCE
The tracks within a group are played from the oldest first repeatedly.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDERS_SUPPORTED_OLDEST_REPEAT
The tracks within a group are played once only from the newest first.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDERS_SUPPORTED_NEWEST_ONCE
The tracks within a group are played from the newest first repeatedly.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDERS_SUPPORTED_NEWEST_REPEAT
The tracks within a group are played in random order once.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDERS_SUPPORTED_SHUFFLE_ONCE
The tracks within a group are played in random order repeatedly.
-
ESP_BLE_AUDIO_MCS_PLAYING_ORDERS_SUPPORTED_SHUFFLE_REPEAT
-
ESP_BLE_AUDIO_MCS_VALID_OBJ_ID(id)
Check if an Object ID is valid for MCS. This differs from BT_OTS_VALID_OBJ_ID as MCS does not use the directory list object.
- Parameters:
id -- Object ID to validate.
BAP LC3 Preset Definitions
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_bap_lc3_preset_defs.h
This header file can be included with:
#include "esp_ble_audio_bap_lc3_preset_defs.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Macros
-
ESP_BLE_AUDIO_BAP_LC3_PRESET(_codec, _qos)
-
ESP_BLE_AUDIO_BAP_LC3_PRESET_DEFINE(_name, _freq, _duration, _loc, _len, _frames_per_sdu, _stream_context, _interval, _sdu, _rtn, _latency, _pd)
Define an LC3 preset configuration.
Backing buffers are sized to
CONFIG_BT_AUDIO_CODEC_CFG_MAX_*_SIZEso the preset is safe to mutate viaesp_ble_audio_codec_cfg_*_set_*.- Parameters:
_name -- Preset configuration name.
_freq -- Sample frequency (in Hz).
_duration -- Frame duration (in microseconds).
_loc -- Audio channel location.
_len -- Frame length in octets.
_frames_per_sdu -- Number of frames per SDU.
_stream_context -- Stream context (e.g., Media, Conversational, etc.).
_interval -- Audio frame interval (in microseconds).
_sdu -- SDU size in octets.
_rtn -- Number of retransmissions.
_latency -- Maximum transport latency (in milliseconds).
_pd -- Presentation delay (in microseconds).
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_8_1_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 8_1_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_8_2_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 8_2_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_16_1_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 16_1_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_16_2_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 16_2_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_24_1_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 24_1_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_24_2_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 24_2_1 codec configuration.
Mandatory to support as unicast server.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_32_1_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 32_1_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_32_2_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 32_2_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_441_1_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 441_1_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_441_2_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 441_2_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_48_1_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 48_1_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_48_2_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 48_2_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_48_3_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 48_3_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_48_4_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 48_4_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_48_5_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 48_5_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_48_6_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 48_6_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_8_1_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 8_1_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_8_2_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 8_2_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_16_1_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 16_1_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_16_2_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 16_2_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_24_1_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 24_1_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_24_2_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 24_2_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_32_1_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 32_1_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_32_2_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 32_2_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_441_1_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 441_1_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_441_2_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 441_2_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_48_1_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 48_1_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_48_2_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 48_2_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_48_3_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 48_3_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_48_4_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 48_4_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_48_5_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 48_5_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_UNICAST_PRESET_48_6_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Unicast 48_6_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_8_1_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 8_1_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_8_2_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 8_2_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_16_1_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 16_1_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_16_2_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 16_2_1 codec configuration.
Mandatory to support as both broadcast source and sink.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_24_1_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 24_1_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_24_2_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 24_2_1 codec configuration.
Mandatory to support as broadcast sink.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_32_1_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 32_1_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_32_2_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 32_2_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_441_1_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 441_1_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_441_2_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 441_2_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_48_1_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 48_1_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_48_2_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 48_2_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_48_3_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 48_3_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_48_4_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 48_4_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_48_5_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 48_5_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_48_6_1_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 48_6_1 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_8_1_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 8_1_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_8_2_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 8_2_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_16_1_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 16_1_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_16_2_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 16_2_2 codec configuration.
Mandatory to support as both broadcast source and sink.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_24_1_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 24_1_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_24_2_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 24_2_2 codec configuration.
Mandatory to support as broadcast sink.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_32_1_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 32_1_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_32_2_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 32_2_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_441_1_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 441_1_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_441_2_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 441_2_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_48_1_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 48_1_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_48_2_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 48_2_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_48_3_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 48_3_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_48_4_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 48_4_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_48_5_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 48_5_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
-
ESP_BLE_AUDIO_BAP_LC3_BROADCAST_PRESET_48_6_2_DEFINE(_name, _loc, _stream_context)
Helper to declare LC3 Broadcast 48_6_2 codec configuration.
- Parameters:
_name -- Preset configuration name.
_loc -- Audio channel location bitfield.
_stream_context -- Stream context.
Type Definitions
-
typedef struct bt_bap_lc3_preset esp_ble_audio_bap_lc3_preset_t
Struct to hold a BAP defined LC3 preset Helper to declare an LC3 preset structure
GMAP LC3 Preset Definitions
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_gmap_lc3_preset_defs.h
This header file can be included with:
#include "esp_ble_audio_gmap_lc3_preset_defs.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Macros
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_DEFINE(_name, _freq, _duration, _loc, _len, _frames_per_sdu, _stream_context, _interval, _sdu, _rtn, _latency, _pd)
Base macro for defining GMAP LC3 presets.
Backing buffers are sized to
CONFIG_BT_AUDIO_CODEC_CFG_MAX_*_SIZEso the preset is safe to mutate viaesp_ble_audio_codec_cfg_*_set_*.- Parameters:
_name -- Preset name.
_freq -- Sampling frequency (16, 32, or 48 kHz).
_duration -- Frame duration (7.5 or 10 ms).
_loc -- Audio channel location.
_len -- Frame length in bytes.
_frames_per_sdu -- Number of frames per SDU.
_stream_context -- Stream context type.
_interval -- Interval between packets in microseconds.
_sdu -- SDU size in bytes.
_rtn -- Maximum number of retransmissions.
_latency -- Maximum latency in milliseconds.
_pd -- Presentation delay in microseconds.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_32_1_GR_DEFINE(_name, _loc, _stream_context)
Gaming Reliable (GR) preset at 32kHz, 7.5ms frame duration.
Optimized for reliable gaming audio with low latency (15ms) and standard presentation delay (10ms).
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_32_2_GR_DEFINE(_name, _loc, _stream_context)
Gaming Reliable (GR) preset at 32kHz, 10ms frame duration.
Higher quality variant with increased frame duration for better audio quality.
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_48_1_GR_DEFINE(_name, _loc, _stream_context)
Gaming Reliable (GR) preset at 48kHz, 7.5ms frame duration.
High-quality gaming audio with minimal latency.
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_48_2_GR_DEFINE(_name, _loc, _stream_context)
Gaming Reliable (GR) preset at 48kHz, 10ms frame duration.
High-quality gaming audio with balanced latency and quality.
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_48_3_GR_DEFINE(_name, _loc, _stream_context)
Gaming Reliable (GR) preset at 48kHz, 7.5ms frame duration, higher bitrate.
Enhanced quality gaming audio with minimal latency.
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_48_4_GR_DEFINE(_name, _loc, _stream_context)
Gaming Reliable (GR) preset at 48kHz, 10ms frame duration, higher bitrate.
Premium quality gaming audio with balanced latency.
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_16_1_GS_DEFINE(_name, _loc, _stream_context)
Gaming Standard (GS) preset at 16kHz, 7.5ms frame duration.
Basic gaming audio with longer presentation delay (60ms).
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_16_2_GS_DEFINE(_name, _loc, _stream_context)
Gaming Standard (GS) preset at 16kHz, 10ms frame duration.
Basic gaming audio with better quality and longer presentation delay.
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_32_1_GS_DEFINE(_name, _loc, _stream_context)
Gaming Standard (GS) preset at 32kHz, 7.5ms frame duration.
Medium quality gaming audio with standard latency.
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_32_2_GS_DEFINE(_name, _loc, _stream_context)
Gaming Standard (GS) preset at 32kHz, 10ms frame duration.
Enhanced medium quality gaming audio.
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_48_1_GS_DEFINE(_name, _loc, _stream_context)
Gaming Standard (GS) preset at 48kHz, 7.5ms frame duration.
High quality gaming audio with standard latency.
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_48_2_GS_DEFINE(_name, _loc, _stream_context)
Gaming Standard (GS) preset at 48kHz, 10ms frame duration.
Premium quality gaming audio with standard latency.
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_48_1_G_DEFINE(_name, _loc, _stream_context)
Generic Gaming (G) preset at 48kHz, 7.5ms frame duration.
High quality gaming audio with ultra-low latency (8ms).
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_48_2_G_DEFINE(_name, _loc, _stream_context)
Generic Gaming (G) preset at 48kHz, 10ms frame duration.
High quality gaming audio with very low latency (10ms).
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_48_3_G_DEFINE(_name, _loc, _stream_context)
Generic Gaming (G) preset at 48kHz, 7.5ms frame duration, higher bitrate.
Premium quality gaming audio with ultra-low latency.
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
-
ESP_BLE_AUDIO_GMAP_LC3_PRESET_48_4_G_DEFINE(_name, _loc, _stream_context)
Generic Gaming (G) preset at 48kHz, 10ms frame duration, higher bitrate.
Highest quality gaming audio with very low latency.
- Parameters:
_name -- Preset name.
_loc -- Audio channel location.
_stream_context -- Stream context type.
ESP-BLE-AUDIO API
This section contains LE Audio APIs: common helpers, codec, Common Audio Profile (CAP), Call Control Profile (CCP), and all profile/service APIs.
Common API
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_common_api.h
This header file can be included with:
#include "esp_ble_audio_common_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_err_t esp_ble_audio_data_parse(const uint8_t ltv[], size_t size, bool (*func)(uint8_t type, const uint8_t *data, uint8_t data_len, void *user_data), void *user_data)
Helper for parsing length-type-value data.
- Parameters:
ltv -- Length-type-value (LTV) encoded data.
size -- Size of the
ltvdata.func -- Callback function which will be called for each element that's found in the data. The callback should return true to continue parsing, or false to stop parsing.
user_data -- User data to be passed to the callback.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_data_get_val(const uint8_t ltv_data[], size_t size, uint8_t type, const uint8_t **data, uint8_t *data_len)
Get the value of a specific data type in an length-type-value data array.
- Parameters:
ltv_data -- The array containing the length-type-value tuples.
size -- The size of
ltv_data.type -- The type to get the value for.
data -- Pointer to the data-pointer to update when item is found. Any found data will be little endian.
data_len -- Length The length of found
data(may be 0).
- Returns:
ESP_OK on success, or an error code on failure.
-
uint8_t esp_ble_audio_get_chan_count(esp_ble_audio_location_t chan_allocation)
Function to get the number of channels from the channel allocation.
- Parameters:
chan_allocation -- The channel allocation.
- Returns:
The number of channels.
-
esp_err_t esp_ble_audio_gattc_disc_start(uint16_t conn_handle)
Start GATT service discovery.
Note
This function is only needed while using NimBLE Host.
- Parameters:
conn_handle -- Connection Handle.
- Returns:
ESP_OK on success, or an error code on failure. Audio GAP Extended Scan Recv event
-
void esp_ble_audio_gap_app_post_event(uint8_t type, void *param)
Post an application-layer GAP event for audio internal usage.
Note
This function is only needed while using NimBLE Host.
- Parameters:
type -- Event type.
param -- Event parameters.
-
void esp_ble_audio_gatt_app_post_event(uint8_t type, void *param)
Post an application-layer GATT event for audio internal usage.
Note
This function is only needed while using NimBLE Host.
- Parameters:
type -- Event type.
param -- Event parameters.
-
esp_err_t esp_ble_audio_common_init(esp_ble_audio_init_info_t *info)
Initialize BLE Audio common functionality.
- Parameters:
info -- Initialization parameters.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_common_start(esp_ble_audio_start_info_t *info)
Start BLE Audio services.
- Parameters:
info -- Service instances to start.
- Returns:
ESP_OK on success, or an error code on failure.
Structures
-
struct esp_ble_audio_init_info_t
Contains callback functions for GAP and GATT events
Macros
-
ESP_BLE_AUDIO_GAP_EVENT_EXT_SCAN_RECV
Audio GAP Periodic Sync Established event
-
ESP_BLE_AUDIO_GAP_EVENT_PA_SYNC
Audio GAP Periodic Sync Transfer Received event
-
ESP_BLE_AUDIO_GAP_EVENT_PA_SYNC_PAST
Audio GAP Periodic Sync Lost event
-
ESP_BLE_AUDIO_GAP_EVENT_PA_SYNC_LOST
Audio GAP Connection Complete event
-
ESP_BLE_AUDIO_GAP_EVENT_ACL_CONNECT
Audio GAP Disconnection Complete event
-
ESP_BLE_AUDIO_GAP_EVENT_ACL_DISCONNECT
Audio GAP Security Change event
-
ESP_BLE_AUDIO_GAP_EVENT_SECURITY_CHANGE
-
ESP_BLE_AUDIO_GATT_EVENT_GATT_MTU_CHANGE
Audio GATT client discovery complete event
-
ESP_BLE_AUDIO_GATT_EVENT_GATTC_DISC_CMPL
Type Definitions
-
typedef struct bt_le_gap_app_event esp_ble_audio_gap_app_event_t
Audio GAP application event structure Audio GATT MTU exchange complete event
-
typedef struct bt_le_gatt_app_event esp_ble_audio_gatt_app_event_t
Audio GATT application event structure
Codec API
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_codec_api.h
This header file can be included with:
#include "esp_ble_audio_codec_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_err_t esp_ble_audio_codec_cfg_freq_to_freq_hz(esp_ble_audio_codec_cfg_freq_t freq, uint32_t *freq_hz)
Convert assigned numbers frequency to frequency value.
- Parameters:
freq -- The assigned numbers frequency to convert.
freq_hz -- The converted frequency value in Hz on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_freq_hz_to_freq(uint32_t freq_hz, esp_ble_audio_codec_cfg_freq_t *freq)
Convert frequency value to assigned numbers frequency.
- Parameters:
freq_hz -- Frequency in Hz.
freq -- The assigned numbers frequency on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_get_freq(const esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_codec_cfg_freq_t *freq)
Extract the frequency from a codec configuration.
- Parameters:
codec_cfg -- The codec configuration to extract data from.
freq -- The assigned numbers frequency on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_set_freq(esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_codec_cfg_freq_t freq)
Set the frequency of a codec configuration.
- Parameters:
codec_cfg -- The codec configuration to set data for.
freq -- The assigned numbers frequency to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_frame_dur_to_frame_dur_us(esp_ble_audio_codec_cfg_frame_dur_t frame_dur, uint32_t *frame_dur_us)
Convert assigned numbers frame duration to duration in microseconds.
- Parameters:
frame_dur -- The assigned numbers frame duration to convert.
frame_dur_us -- The converted frame duration value in microseconds on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_frame_dur_us_to_frame_dur(uint32_t frame_dur_us, esp_ble_audio_codec_cfg_frame_dur_t *frame_dur)
Convert frame duration in microseconds to assigned numbers frame duration.
- Parameters:
frame_dur_us -- The frame duration in microseconds to convert.
frame_dur -- The assigned numbers frame duration on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_get_frame_dur(const esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_codec_cfg_frame_dur_t *frame_dur)
Extract frame duration from codec config.
- Parameters:
codec_cfg -- The codec configuration to extract data from.
frame_dur -- The assigned numbers frame duration on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_set_frame_dur(esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_codec_cfg_frame_dur_t frame_dur)
Set the frame duration of a codec configuration.
- Parameters:
codec_cfg -- The codec configuration to set data for.
frame_dur -- The assigned numbers frame duration to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_get_chan_allocation(const esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_location_t *chan_allocation, bool fallback_to_default)
Extract channel allocation from codec config.
The value returned is a bit field representing one or more audio locations as specified by esp_ble_audio_location_t. Shall match one or more of the bits set in ESP_BLE_AUDIO_PAC_SNK_LOC or ESP_BLE_AUDIO_PAC_SRC_LOC.
Up to the configured ESP_BLE_AUDIO_CODEC_CAP_TYPE_CHAN_COUNT number of channels can be present.
- Parameters:
codec_cfg -- The codec configuration to extract data from.
chan_allocation -- Pointer to the variable to store the extracted value in.
fallback_to_default -- If true this function will provide the default value of ESP_BLE_AUDIO_LOCATION_MONO_AUDIO if the type is not found when
codec_cfg.idis BT_HCI_CODING_FORMAT_LC3.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_set_chan_allocation(esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_location_t chan_allocation)
Set the channel allocation of a codec configuration.
- Parameters:
codec_cfg -- The codec configuration to set data for.
chan_allocation -- The channel allocation to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_get_octets_per_frame(const esp_ble_audio_codec_cfg_t *codec_cfg, uint16_t *octets_per_frame)
Extract frame size in octets from codec config.
The overall SDU size will be octets_per_frame * blocks_per_sdu.
The Bluetooth specifications are not clear about this value - it does not state that the codec shall use this SDU size only. A codec like LC3 supports variable bit-rate (per SDU) hence it might be allowed for an encoder to reduce the frame size below this value. Hence it is recommended to use the received SDU size and divide by blocks_per_sdu rather than relying on this octets_per_sdu value to be fixed.
- Parameters:
codec_cfg -- The codec configuration to extract data from.
octets_per_frame -- The frame length in octets on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_set_octets_per_frame(esp_ble_audio_codec_cfg_t *codec_cfg, uint16_t octets_per_frame)
Set the octets per codec frame of a codec configuration.
- Parameters:
codec_cfg -- The codec configuration to set data for.
octets_per_frame -- The octets per codec frame to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_get_frame_blocks_per_sdu(const esp_ble_audio_codec_cfg_t *codec_cfg, uint8_t *frame_blocks, bool fallback_to_default)
Extract number of audio frame blocks in each SDU from codec config.
The overall SDU size will be octets_per_frame * frame_blocks_per_sdu * number-of-channels.
If this value is not present a default value of 1 shall be used.
A frame block is one or more frames that represents data for the same period of time but for different channels. If the stream have two audio channels and this value is two there will be four frames in the SDU.
- Parameters:
codec_cfg -- The codec configuration to extract data from.
frame_blocks -- The count of codec frame blocks in each SDU on success.
fallback_to_default -- If true this function will return the default value of 1 if the type is not found when
codec_cfg.idis BT_HCI_CODING_FORMAT_LC3.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_set_frame_blocks_per_sdu(esp_ble_audio_codec_cfg_t *codec_cfg, uint8_t frame_blocks)
Set the frame blocks per SDU of a codec configuration.
- Parameters:
codec_cfg -- The codec configuration to set data for.
frame_blocks -- The frame blocks per SDU to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_get_val(const esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_codec_cfg_type_t type, const uint8_t **data, size_t *data_len)
Lookup a specific codec configuration value.
- Parameters:
codec_cfg -- The codec data to search in.
type -- The type id to look for.
data -- Pointer to the data-pointer to update when item is found.
data_len -- Length of found
data(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_set_val(esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_codec_cfg_type_t type, const uint8_t *data, size_t data_len)
Set or add a specific codec configuration value.
- Parameters:
codec_cfg -- The codec data to set the value in.
type -- The type id to set.
data -- Pointer to the data-pointer to set.
data_len -- Length of
data.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_unset_val(esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_codec_cfg_type_t type)
Unset a specific codec configuration value.
The type and the value will be removed from the codec configuration.
- Parameters:
codec_cfg -- The codec data to set the value in.
type -- The type id to unset.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_get_val(const esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_metadata_type_t type, const uint8_t **data, size_t *data_len)
Lookup a specific metadata value based on type.
- Parameters:
codec_cfg -- The codec data to search in.
type -- The type id to look for
data -- Pointer to the data-pointer to update when item is found.
data_len -- Length of found
data(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_set_val(esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_metadata_type_t type, const uint8_t *data, size_t data_len)
Set or add a specific codec configuration metadata value.
- Parameters:
codec_cfg -- The codec configuration to set the value in.
type -- The type id to set.
data -- Pointer to the data-pointer to set.
data_len -- Length of
data.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_unset_val(esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_metadata_type_t type)
Unset a specific codec configuration metadata value.
The type and the value will be removed from the codec configuration metadata.
- Parameters:
codec_cfg -- The codec data to set the value in.
type -- The type id to unset.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_get_pref_context(const esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_context_t *ctx, bool fallback_to_default)
Extract preferred contexts.
- Parameters:
codec_cfg -- The codec data to search in.
ctx -- The preferred context type on success.
fallback_to_default -- If true this function will provide the default value of ESP_BLE_AUDIO_CONTEXT_TYPE_UNSPECIFIED if the type is not found when
codec_cfg.idis BT_HCI_CODING_FORMAT_LC3.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_set_pref_context(esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_context_t ctx)
Set the preferred context of a codec configuration metadata.
- Parameters:
codec_cfg -- The codec configuration to set data for.
ctx -- The preferred context to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_get_stream_context(const esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_context_t *ctx)
Extract stream contexts.
- Parameters:
codec_cfg -- The codec data to search in.
ctx -- The stream context type on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_set_stream_context(esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_context_t ctx)
Set the stream context of a codec configuration metadata.
- Parameters:
codec_cfg -- The codec configuration to set data for.
ctx -- The stream context to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_get_program_info(const esp_ble_audio_codec_cfg_t *codec_cfg, const uint8_t **program_info, size_t *program_info_len)
Extract program info.
- Parameters:
codec_cfg -- The codec data to search in.
program_info -- Pointer to the UTF-8 formatted program info.
program_info_len -- The length of the
program_info(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_set_program_info(esp_ble_audio_codec_cfg_t *codec_cfg, const uint8_t *program_info, size_t program_info_len)
Set the program info of a codec configuration metadata.
- Parameters:
codec_cfg -- The codec configuration to set data for.
program_info -- The program info to set.
program_info_len -- The length of
program_info.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_get_language(const esp_ble_audio_codec_cfg_t *codec_cfg, const uint8_t **language)
Extract language.
- Parameters:
codec_cfg -- The codec data to search in.
language -- Pointer to the language bytes (of length ESP_BLE_AUDIO_LANG_SIZE).
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_set_language(esp_ble_audio_codec_cfg_t *codec_cfg, const uint8_t language[ESP_BLE_AUDIO_LANG_SIZE])
Set the language of a codec configuration metadata.
- Parameters:
codec_cfg -- The codec configuration to set data for.
language -- The 24-bit language to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_get_ccid_list(const esp_ble_audio_codec_cfg_t *codec_cfg, const uint8_t **ccid_list, size_t *ccid_list_len)
Extract CCID list.
- Parameters:
codec_cfg -- The codec data to search in.
ccid_list -- Pointer to the array containing 8-bit CCIDs.
ccid_list_len -- The length of the
ccid_list(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_set_ccid_list(esp_ble_audio_codec_cfg_t *codec_cfg, const uint8_t *ccid_list, size_t ccid_list_len)
Set the CCID list of a codec configuration metadata.
- Parameters:
codec_cfg -- The codec configuration to set data for.
ccid_list -- The program info to set.
ccid_list_len -- The length of
ccid_list.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_get_parental_rating(const esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_parental_rating_t *parental_rating)
Extract parental rating.
- Parameters:
codec_cfg -- The codec data to search in.
parental_rating -- The parental rating on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_set_parental_rating(esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_parental_rating_t parental_rating)
Set the parental rating of a codec configuration metadata.
- Parameters:
codec_cfg -- The codec configuration to set data for.
parental_rating -- The parental rating to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_get_program_info_uri(const esp_ble_audio_codec_cfg_t *codec_cfg, const uint8_t **program_info_uri, size_t *program_info_uri_len)
Extract program info URI.
- Parameters:
codec_cfg -- The codec data to search in.
program_info_uri -- Pointer to the UTF-8 formatted program info URI.
program_info_uri_len -- The length of the
program_info_uri(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_set_program_info_uri(esp_ble_audio_codec_cfg_t *codec_cfg, const uint8_t *program_info_uri, size_t program_info_uri_len)
Set the program info URI of a codec configuration metadata.
- Parameters:
codec_cfg -- The codec configuration to set data for.
program_info_uri -- The program info URI to set.
program_info_uri_len -- The length of
program_info_uri.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_get_audio_active_state(const esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_active_state_t *state)
Extract audio active state.
- Parameters:
codec_cfg -- The codec data to search in.
state -- The preferred context type on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_set_audio_active_state(esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_active_state_t state)
Set the audio active state of a codec configuration metadata.
- Parameters:
codec_cfg -- The codec configuration to set data for.
state -- The audio active state to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_get_broadcast_audio_immediate_rend_flag(const esp_ble_audio_codec_cfg_t *codec_cfg, bool *found)
Extract broadcast audio immediate rendering flag.
- Parameters:
codec_cfg -- The codec data to search in.
found -- Indicate if the flag is found on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_set_broadcast_audio_immediate_rend_flag(esp_ble_audio_codec_cfg_t *codec_cfg)
Set the broadcast audio immediate rendering flag of a codec configuration metadata.
- Parameters:
codec_cfg -- The codec configuration to set data for.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_get_assisted_listening_stream(const esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_assisted_listening_stream_t *val)
Extract assisted listening stream.
- Parameters:
codec_cfg -- The codec data to search in.
val -- The assisted listening stream value on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_set_assisted_listening_stream(esp_ble_audio_codec_cfg_t *codec_cfg, esp_ble_audio_assisted_listening_stream_t val)
Set the assisted listening stream value of a codec configuration metadata.
- Parameters:
codec_cfg -- The codec configuration to set data for.
val -- The assisted listening stream value to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_get_broadcast_name(const esp_ble_audio_codec_cfg_t *codec_cfg, const uint8_t **broadcast_name, size_t *broadcast_name_len)
Extract broadcast name.
- Parameters:
codec_cfg -- The codec data to search in.
broadcast_name -- Pointer to the UTF-8 formatted broadcast name.
broadcast_name_len -- The length of the
broadcast_name(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_set_broadcast_name(esp_ble_audio_codec_cfg_t *codec_cfg, const uint8_t *broadcast_name, size_t broadcast_name_len)
Set the broadcast name of a codec configuration metadata.
- Parameters:
codec_cfg -- The codec configuration to set data for.
broadcast_name -- The broadcast name to set.
broadcast_name_len -- The length of
broadcast_name.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_get_extended(const esp_ble_audio_codec_cfg_t *codec_cfg, const uint8_t **extended_meta, size_t *extended_meta_len)
Extract extended metadata.
- Parameters:
codec_cfg -- The codec data to search in.
extended_meta -- Pointer to the extended metadata.
extended_meta_len -- The length of the
extended_meta(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_set_extended(esp_ble_audio_codec_cfg_t *codec_cfg, const uint8_t *extended_meta, size_t extended_meta_len)
Set the extended metadata of a codec configuration metadata.
- Parameters:
codec_cfg -- The codec configuration to set data for.
extended_meta -- The extended metadata to set.
extended_meta_len -- The length of
extended_meta.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_get_vendor(const esp_ble_audio_codec_cfg_t *codec_cfg, const uint8_t **vendor_meta, size_t *vendor_meta_len)
Extract vendor specific metadata.
- Parameters:
codec_cfg -- The codec data to search in.
vendor_meta -- Pointer to the vendor specific metadata.
vendor_meta_len -- The length of the
vendor_meta(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cfg_meta_set_vendor(esp_ble_audio_codec_cfg_t *codec_cfg, const uint8_t *vendor_meta, size_t vendor_meta_len)
Set the vendor specific metadata of a codec configuration metadata.
- Parameters:
codec_cfg -- The codec configuration to set data for.
vendor_meta -- The vendor specific metadata to set.
vendor_meta_len -- The length of
vendor_meta.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_get_val(const esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_codec_cap_type_t type, const uint8_t **data, size_t *data_len)
Lookup a specific value based on type.
- Parameters:
codec_cap -- The codec data to search in.
type -- The type id to look for.
data -- Pointer to the data-pointer to update when item is found.
data_len -- Length of found
data(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_set_val(esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_codec_cap_type_t type, const uint8_t *data, size_t data_len)
Set or add a specific codec capability value.
- Parameters:
codec_cap -- The codec data to set the value in.
type -- The type id to set.
data -- Pointer to the data-pointer to set.
data_len -- Length of
data.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_unset_val(esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_codec_cap_type_t type)
Unset a specific codec capability value.
The type and the value will be removed from the codec capability.
- Parameters:
codec_cap -- The codec data to set the value in.
type -- The type id to unset.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_get_freq(const esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_codec_cap_freq_t *freq)
Extract the frequency from a codec capability.
- Parameters:
codec_cap -- The codec capabilities to extract data from.
freq -- Bitfield of supported frequencies on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_set_freq(esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_codec_cap_freq_t freq)
Set the supported frequencies of a codec capability.
- Parameters:
codec_cap -- The codec capabilities to set data for.
freq -- The supported frequencies to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_get_frame_dur(const esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_codec_cap_frame_dur_t *frame_dur)
Extract the frequency from a codec capability.
- Parameters:
codec_cap -- The codec capabilities to extract data from.
frame_dur -- Bitfield of supported frame durations on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_set_frame_dur(esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_codec_cap_frame_dur_t frame_dur)
Set the frame duration of a codec capability.
- Parameters:
codec_cap -- The codec capabilities to set data for.
frame_dur -- The frame duration to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_get_supported_audio_chan_counts(const esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_codec_cap_chan_count_t *chan_count, bool fallback_to_default)
Extract the frequency from a codec capability.
- Parameters:
codec_cap -- The codec capabilities to extract data from.
chan_count -- Number of supported channel counts on success.
fallback_to_default -- If true this function will provide the default value of 1 if the type is not found when
codec_cap.idis BT_HCI_CODING_FORMAT_LC3.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_set_supported_audio_chan_counts(esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_codec_cap_chan_count_t chan_count)
Set the channel count of a codec capability.
- Parameters:
codec_cap -- The codec capabilities to set data for.
chan_count -- The channel count frequency to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_get_octets_per_frame(const esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_codec_octets_per_codec_frame_t *codec_frame)
Extract the supported octets per codec frame from a codec capability.
- Parameters:
codec_cap -- The codec capabilities to extract data from.
codec_frame -- Struct to place the resulting values in.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_set_octets_per_frame(esp_ble_audio_codec_cap_t *codec_cap, const esp_ble_audio_codec_octets_per_codec_frame_t *codec_frame)
Set the octets per codec frame of a codec capability.
- Parameters:
codec_cap -- The codec capabilities to set data for.
codec_frame -- The octets per codec frame to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_get_max_codec_frames_per_sdu(const esp_ble_audio_codec_cap_t *codec_cap, uint8_t *codec_frames_per_sdu, bool fallback_to_default)
Extract the maximum codec frames per SDU from a codec capability.
- Parameters:
codec_cap -- The codec capabilities to extract data from.
codec_frames_per_sdu -- Maximum number of codec frames per SDU supported on success.
fallback_to_default -- If true this function will provide the default value of 1 if the type is not found when
codec_cap.idis BT_HCI_CODING_FORMAT_LC3.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_set_max_codec_frames_per_sdu(esp_ble_audio_codec_cap_t *codec_cap, uint8_t codec_frames_per_sdu)
Set the maximum codec frames per SDU of a codec capability.
- Parameters:
codec_cap -- The codec capabilities to set data for.
codec_frames_per_sdu -- The maximum codec frames per SDU to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_get_val(const esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_metadata_type_t type, const uint8_t **data, size_t *data_len)
Lookup a specific metadata value based on type.
- Parameters:
codec_cap -- The codec data to search in.
type -- The type id to look for.
data -- Pointer to the data-pointer to update when item is found.
data_len -- Length of found
data(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_set_val(esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_metadata_type_t type, const uint8_t *data, size_t data_len)
Set or add a specific codec capability metadata value.
- Parameters:
codec_cap -- The codec capability to set the value in.
type -- The type id to set.
data -- Pointer to the data-pointer to set.
data_len -- Length of
data.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_unset_val(esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_metadata_type_t type)
Unset a specific codec capability metadata value.
The type and the value will be removed from the codec capability metadata.
- Parameters:
codec_cap -- The codec data to set the value in.
type -- The type id to unset.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_get_pref_context(const esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_context_t *ctx)
Extract preferred contexts.
- Parameters:
codec_cap -- The codec data to search in.
ctx -- The preferred context type on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_set_pref_context(esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_context_t ctx)
Set the preferred context of a codec capability metadata.
- Parameters:
codec_cap -- The codec capability to set data for.
ctx -- The preferred context to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_get_stream_context(const esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_context_t *ctx)
Extract stream contexts.
- Parameters:
codec_cap -- The codec data to search in.
ctx -- The stream context type on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_set_stream_context(esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_context_t ctx)
Set the stream context of a codec capability metadata.
- Parameters:
codec_cap -- The codec capability to set data for.
ctx -- The stream context to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_get_program_info(const esp_ble_audio_codec_cap_t *codec_cap, const uint8_t **program_info, size_t *program_info_len)
Extract program info.
- Parameters:
codec_cap -- The codec data to search in.
program_info -- Pointer to the UTF-8 formatted program info.
program_info_len -- The length of the
program_info(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_set_program_info(esp_ble_audio_codec_cap_t *codec_cap, const uint8_t *program_info, size_t program_info_len)
Set the program info of a codec capability metadata.
- Parameters:
codec_cap -- The codec capability to set data for.
program_info -- The program info to set.
program_info_len -- The length of
program_info.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_get_language(const esp_ble_audio_codec_cap_t *codec_cap, const uint8_t **language)
Extract language.
- Parameters:
codec_cap -- The codec data to search in.
language -- Pointer to the language bytes (of length ESP_BLE_AUDIO_LANG_SIZE).
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_set_language(esp_ble_audio_codec_cap_t *codec_cap, const uint8_t language[ESP_BLE_AUDIO_LANG_SIZE])
Set the language of a codec capability metadata.
- Parameters:
codec_cap -- The codec capability to set data for.
language -- The 24-bit language to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_get_ccid_list(const esp_ble_audio_codec_cap_t *codec_cap, const uint8_t **ccid_list, size_t *ccid_list_len)
Extract CCID list.
- Parameters:
codec_cap -- The codec data to search in.
ccid_list -- Pointer to the array containing 8-bit CCIDs.
ccid_list_len -- The length of the
ccid_list(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_set_ccid_list(esp_ble_audio_codec_cap_t *codec_cap, const uint8_t *ccid_list, size_t ccid_list_len)
Set the CCID list of a codec capability metadata.
- Parameters:
codec_cap -- The codec capability to set data for.
ccid_list -- The program info to set.
ccid_list_len -- The length of
ccid_list.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_get_parental_rating(const esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_parental_rating_t *parental_rating)
Extract parental rating.
- Parameters:
codec_cap -- The codec data to search in.
parental_rating -- The parental rating on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_set_parental_rating(esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_parental_rating_t parental_rating)
Set the parental rating of a codec capability metadata.
- Parameters:
codec_cap -- The codec capability to set data for.
parental_rating -- The parental rating to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_get_program_info_uri(const esp_ble_audio_codec_cap_t *codec_cap, const uint8_t **program_info_uri, size_t *program_info_uri_len)
Extract program info URI.
- Parameters:
codec_cap -- The codec data to search in.
program_info_uri -- Pointer to the UTF-8 formatted program info URI.
program_info_uri_len -- The length of the
program_info_uri(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_set_program_info_uri(esp_ble_audio_codec_cap_t *codec_cap, const uint8_t *program_info_uri, size_t program_info_uri_len)
Set the program info URI of a codec capability metadata.
- Parameters:
codec_cap -- The codec capability to set data for.
program_info_uri -- The program info URI to set.
program_info_uri_len -- The length of
program_info_uri.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_get_audio_active_state(const esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_active_state_t *state)
Extract audio active state.
- Parameters:
codec_cap -- The codec data to search in.
state -- The preferred context type on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_set_audio_active_state(esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_active_state_t state)
Set the audio active state of a codec capability metadata.
- Parameters:
codec_cap -- The codec capability to set data for.
state -- The audio active state to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_get_broadcast_audio_immediate_rend_flag(const esp_ble_audio_codec_cap_t *codec_cap, bool *found)
Extract broadcast audio immediate rendering flag.
- Parameters:
codec_cap -- The codec data to search in.
found -- Indicate if the flag is found on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_set_broadcast_audio_immediate_rend_flag(esp_ble_audio_codec_cap_t *codec_cap)
Set the broadcast audio immediate rendering flag of a codec capability metadata.
- Parameters:
codec_cap -- The codec capability to set data for.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_get_assisted_listening_stream(const esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_assisted_listening_stream_t *val)
Extract assisted listening stream.
- Parameters:
codec_cap -- The codec data to search in.
val -- The assisted listening stream value on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_set_assisted_listening_stream(esp_ble_audio_codec_cap_t *codec_cap, esp_ble_audio_assisted_listening_stream_t val)
Set the assisted listening stream value of a codec capability metadata.
- Parameters:
codec_cap -- The codec capability to set data for.
val -- The assisted listening stream value to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_get_broadcast_name(const esp_ble_audio_codec_cap_t *codec_cap, const uint8_t **broadcast_name, size_t *broadcast_name_len)
Extract broadcast name.
- Parameters:
codec_cap -- The codec data to search in.
broadcast_name -- Pointer to the UTF-8 formatted broadcast name.
broadcast_name_len -- The length of the
broadcast_name(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_set_broadcast_name(esp_ble_audio_codec_cap_t *codec_cap, const uint8_t *broadcast_name, size_t broadcast_name_len)
Set the broadcast name of a codec capability metadata.
- Parameters:
codec_cap -- The codec capability to set data for.
broadcast_name -- The broadcast name to set.
broadcast_name_len -- The length of
broadcast_name.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_get_extended(const esp_ble_audio_codec_cap_t *codec_cap, const uint8_t **extended_meta, size_t *extended_meta_len)
Extract extended metadata.
- Parameters:
codec_cap -- The codec data to search in.
extended_meta -- Pointer to the extended metadata.
extended_meta_len -- The length of the
extended_meta(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_set_extended(esp_ble_audio_codec_cap_t *codec_cap, const uint8_t *extended_meta, size_t extended_meta_len)
Set the extended metadata of a codec capability metadata.
- Parameters:
codec_cap -- The codec capability to set data for.
extended_meta -- The extended metadata to set.
extended_meta_len -- The length of
extended_meta.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_get_vendor(const esp_ble_audio_codec_cap_t *codec_cap, const uint8_t **vendor_meta, size_t *vendor_meta_len)
Extract vendor specific metadata.
- Parameters:
codec_cap -- The codec data to search in.
vendor_meta -- Pointer to the vendor specific metadata.
vendor_meta_len -- The length of the
vendor_meta(may be 0) on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_codec_cap_meta_set_vendor(esp_ble_audio_codec_cap_t *codec_cap, const uint8_t *vendor_meta, size_t vendor_meta_len)
Set the vendor specific metadata of a codec capability metadata.
- Parameters:
codec_cap -- The codec capability to set data for.
vendor_meta -- The vendor specific metadata to set.
vendor_meta_len -- The length of
vendor_meta.
- Returns:
ESP_OK on success, or an error code on failure.
Macros
-
ESP_BLE_AUDIO_CODEC_DATA
Helper to declare elements of bt_audio_codec_cap arrays.
This macro is mainly for creating an array of struct bt_audio_codec_cap data arrays.
- Parameters:
_type -- Type of advertising data field.
_bytes -- Variable number of single-byte parameters. Target low latency
-
ESP_BLE_AUDIO_CODEC_CFG_TARGET_LATENCY_LOW
Target balanced latency
-
ESP_BLE_AUDIO_CODEC_CFG_TARGET_LATENCY_BALANCED
Target high latency
-
ESP_BLE_AUDIO_CODEC_CFG_TARGET_LATENCY_HIGH
-
ESP_BLE_AUDIO_CODEC_CFG_TARGET_PHY_1M
LE 2M PHY
-
ESP_BLE_AUDIO_CODEC_CFG_TARGET_PHY_2M
LE Coded PHY
-
ESP_BLE_AUDIO_CODEC_CFG_TARGET_PHY_CODED
-
ESP_BLE_AUDIO_CODEC_CFG(_id, _cid, _vid, _data, _meta)
Helper to declare esp_ble_audio_codec_cfg_t.
- Parameters:
_id -- Codec ID.
_cid -- Company ID.
_vid -- Vendor ID.
_data -- Codec Specific Data in LVT format.
_meta -- Codec Specific Metadata in LVT format.
-
ESP_BLE_AUDIO_CODEC_CFG_LEN(_id, _cid, _vid, _data, _data_len, _meta, _meta_len)
Variant of ESP_BLE_AUDIO_CODEC_CFG with explicit LVT content lengths.
- Parameters:
_id -- Codec ID.
_cid -- Company ID.
_vid -- Vendor ID.
_data -- Codec Specific Data buffer in LVT format.
_data_len -- Current LVT content length in
_data._meta -- Codec Specific Metadata buffer in LVT format.
_meta_len -- Current LVT content length in
_meta.
-
ESP_BLE_AUDIO_CODEC_CAP(_id, _cid, _vid, _data, _meta)
Helper to declare esp_ble_audio_codec_cap_t.
- Parameters:
_id -- Codec ID.
_cid -- Company ID.
_vid -- Vendor-specific codec ID.
_data -- Codec-specific capability data.
_meta -- Metadata capabilities.
-
ESP_BLE_AUDIO_CODEC_CAP_LEN(_id, _cid, _vid, _data, _data_len, _meta, _meta_len)
Variant of ESP_BLE_AUDIO_CODEC_CAP with explicit LVT content lengths.
-
ESP_BLE_AUDIO_CODEC_CAP_TYPE_FREQ
< Supported sampling frequencies Supported frame durations
-
ESP_BLE_AUDIO_CODEC_CAP_TYPE_DURATION
Supported audio channel counts
-
ESP_BLE_AUDIO_CODEC_CAP_TYPE_CHAN_COUNT
Supported octets per codec frame
-
ESP_BLE_AUDIO_CODEC_CAP_TYPE_FRAME_LEN
Supported maximum codec frames per SDU
-
ESP_BLE_AUDIO_CODEC_CAP_TYPE_FRAME_COUNT
-
ESP_BLE_AUDIO_CODEC_CAP_FREQ_8KHZ
11.025 Khz sampling frequency
-
ESP_BLE_AUDIO_CODEC_CAP_FREQ_11KHZ
16 Khz sampling frequency
-
ESP_BLE_AUDIO_CODEC_CAP_FREQ_16KHZ
22.05 Khz sampling frequency
-
ESP_BLE_AUDIO_CODEC_CAP_FREQ_22KHZ
24 Khz sampling frequency
-
ESP_BLE_AUDIO_CODEC_CAP_FREQ_24KHZ
32 Khz sampling frequency
-
ESP_BLE_AUDIO_CODEC_CAP_FREQ_32KHZ
44.1 Khz sampling frequency
-
ESP_BLE_AUDIO_CODEC_CAP_FREQ_44KHZ
48 Khz sampling frequency
-
ESP_BLE_AUDIO_CODEC_CAP_FREQ_48KHZ
88.2 Khz sampling frequency
-
ESP_BLE_AUDIO_CODEC_CAP_FREQ_88KHZ
96 Khz sampling frequency
-
ESP_BLE_AUDIO_CODEC_CAP_FREQ_96KHZ
176.4 Khz sampling frequency
-
ESP_BLE_AUDIO_CODEC_CAP_FREQ_176KHZ
192 Khz sampling frequency
-
ESP_BLE_AUDIO_CODEC_CAP_FREQ_192KHZ
384 Khz sampling frequency
-
ESP_BLE_AUDIO_CODEC_CAP_FREQ_384KHZ
Any frequency capability
-
ESP_BLE_AUDIO_CODEC_CAP_FREQ_ANY
-
ESP_BLE_AUDIO_CODEC_CAP_DURATION_7_5
10 msec frame duration capability
-
ESP_BLE_AUDIO_CODEC_CAP_DURATION_10
Any frame duration capability
-
ESP_BLE_AUDIO_CODEC_CAP_DURATION_ANY
7.5 msec preferred frame duration capability
-
ESP_BLE_AUDIO_CODEC_CAP_DURATION_PREFER_7_5
10 msec preferred frame duration capability
-
ESP_BLE_AUDIO_CODEC_CAP_DURATION_PREFER_10
-
ESP_BLE_AUDIO_CODEC_CAP_CHAN_COUNT_1
Supporting 2 channel
-
ESP_BLE_AUDIO_CODEC_CAP_CHAN_COUNT_2
Supporting 3 channel
-
ESP_BLE_AUDIO_CODEC_CAP_CHAN_COUNT_3
Supporting 4 channel
-
ESP_BLE_AUDIO_CODEC_CAP_CHAN_COUNT_4
Supporting 5 channel
-
ESP_BLE_AUDIO_CODEC_CAP_CHAN_COUNT_5
Supporting 6 channel
-
ESP_BLE_AUDIO_CODEC_CAP_CHAN_COUNT_6
Supporting 7 channel
-
ESP_BLE_AUDIO_CODEC_CAP_CHAN_COUNT_7
Supporting 8 channel
-
ESP_BLE_AUDIO_CODEC_CAP_CHAN_COUNT_8
Supporting all channels
-
ESP_BLE_AUDIO_CODEC_CAP_CHAN_COUNT_ANY
Minimum supported channel counts
-
ESP_BLE_AUDIO_CODEC_CAP_CHAN_COUNT_MIN
Maximum supported channel counts
-
ESP_BLE_AUDIO_CODEC_CAP_CHAN_COUNT_MAX
-
ESP_BLE_AUDIO_CODEC_CAP_CHAN_COUNT_SUPPORT
Channel count support capability.
Macro accepts variable number of channel counts. The allowed channel counts are defined by specification and have to be in range from ESP_BLE_AUDIO_CODEC_CAP_CHAN_COUNT_MIN to ESP_BLE_AUDIO_CODEC_CAP_CHAN_COUNT_MAX inclusive.
Example to support 1 and 3 channels: ESP_BLE_AUDIO_CODEC_CAP_CHAN_COUNT_SUPPORT(1, 3)
-
ESP_BLE_AUDIO_CODEC_CFG_FREQ
Frame duration
-
ESP_BLE_AUDIO_CODEC_CFG_DURATION
Audio channel allocation
-
ESP_BLE_AUDIO_CODEC_CFG_CHAN_ALLOC
Octets per codec frame
-
ESP_BLE_AUDIO_CODEC_CFG_FRAME_LEN
Codec frame blocks per SDU
-
ESP_BLE_AUDIO_CODEC_CFG_FRAME_BLKS_PER_SDU
-
ESP_BLE_AUDIO_CODEC_CFG_FREQ_8KHZ
11.025 Khz codec sampling frequency
-
ESP_BLE_AUDIO_CODEC_CFG_FREQ_11KHZ
16 Khz codec sampling frequency
-
ESP_BLE_AUDIO_CODEC_CFG_FREQ_16KHZ
22.05 Khz codec sampling frequency
-
ESP_BLE_AUDIO_CODEC_CFG_FREQ_22KHZ
24 Khz codec sampling frequency
-
ESP_BLE_AUDIO_CODEC_CFG_FREQ_24KHZ
32 Khz codec sampling frequency
-
ESP_BLE_AUDIO_CODEC_CFG_FREQ_32KHZ
44.1 Khz codec sampling frequency
-
ESP_BLE_AUDIO_CODEC_CFG_FREQ_44KHZ
48 Khz codec sampling frequency
-
ESP_BLE_AUDIO_CODEC_CFG_FREQ_48KHZ
88.2 Khz codec sampling frequency
-
ESP_BLE_AUDIO_CODEC_CFG_FREQ_88KHZ
96 Khz codec sampling frequency
-
ESP_BLE_AUDIO_CODEC_CFG_FREQ_96KHZ
176.4 Khz codec sampling frequency
-
ESP_BLE_AUDIO_CODEC_CFG_FREQ_176KHZ
192 Khz codec sampling frequency
-
ESP_BLE_AUDIO_CODEC_CFG_FREQ_192KHZ
384 Khz codec sampling frequency
-
ESP_BLE_AUDIO_CODEC_CFG_FREQ_384KHZ
-
ESP_BLE_AUDIO_CODEC_CFG_DURATION_7_5
10 msec Frame Duration configuration
-
ESP_BLE_AUDIO_CODEC_CFG_DURATION_10
Type Definitions
-
typedef enum bt_audio_codec_cfg_target_latency esp_ble_audio_codec_cfg_target_latency_t
Codec configuration target latency LE 1M PHY
-
typedef enum bt_audio_codec_cfg_target_phy esp_ble_audio_codec_cfg_target_phy_t
Codec configuration target PHY
-
typedef enum bt_audio_codec_cap_type esp_ble_audio_codec_cap_type_t
Codec capability types 8 Khz sampling frequency
-
typedef enum bt_audio_codec_cap_freq esp_ble_audio_codec_cap_freq_t
Supported frequencies bitfield 7.5 msec frame duration capability
-
typedef enum bt_audio_codec_cap_frame_dur esp_ble_audio_codec_cap_frame_dur_t
Supported frame durations bitfield Supporting 1 channel
-
typedef enum bt_audio_codec_cap_chan_count esp_ble_audio_codec_cap_chan_count_t
Supported audio capabilities channel count bitfield Sampling frequency
-
typedef enum bt_audio_codec_cfg_type esp_ble_audio_codec_cfg_type_t
Codec configuration types 8 Khz codec sampling frequency
-
typedef enum bt_audio_codec_cfg_freq esp_ble_audio_codec_cfg_freq_t
Codec configuration sampling frequency 7.5 msec Frame Duration configuration
-
typedef enum bt_audio_codec_cfg_frame_dur esp_ble_audio_codec_cfg_frame_dur_t
Codec configuration frame duration
-
typedef struct bt_audio_codec_cfg esp_ble_audio_codec_cfg_t
Codec specific configuration structure
-
typedef struct bt_audio_codec_cap esp_ble_audio_codec_cap_t
Codec capability structure
-
typedef struct bt_audio_codec_octets_per_codec_frame esp_ble_audio_codec_octets_per_codec_frame_t
Struct to hold minimum and maximum supported codec frame sizes
Common Audio Profile (CAP)
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_cap_api.h
This header file can be included with:
#include "esp_ble_audio_cap_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_err_t esp_ble_audio_cap_acceptor_register(const esp_ble_audio_csip_set_member_register_param_t *param, esp_ble_audio_csip_set_member_svc_inst_t **svc_inst)
Register the Common Audio Service.
This will register and enable the service and make it discoverable by clients. This will also register a Coordinated Set Identification Service instance.
- Parameters:
param -- Coordinated Set Identification Service register parameters.
svc_inst -- Pointer to the registered Coordinated Set Identification Service.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_initiator_unicast_discover(uint16_t conn_handle)
Discovers audio support on a remote device.
This will discover the Common Audio Service (CAS) on the remote device, to verify if the remote device supports the Common Audio Profile.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_stream_ops_register(esp_ble_audio_cap_stream_t *stream, esp_ble_audio_bap_stream_ops_t *ops)
Register Audio operations for a Common Audio Profile stream.
Register Audio operations for a stream.
- Parameters:
stream -- Stream object.
ops -- Stream operations structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_stream_send(esp_ble_audio_cap_stream_t *stream, const uint8_t *sdu, uint16_t sdu_len, uint16_t seq_num)
Send data to Common Audio Profile stream without timestamp.
Sends data over the specified CAP audio stream with a sequence number.
- Parameters:
stream -- Stream object.
sdu -- Buffer containing data to be sent.
sdu_len -- Length of data to be sent.
seq_num -- Packet Sequence number. This value shall be incremented for each call to this function and at least once per SDU interval for a specific channel.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_stream_send_ts(esp_ble_audio_cap_stream_t *stream, const uint8_t *sdu, uint16_t sdu_len, uint16_t seq_num, uint32_t ts)
Send data to Common Audio Profile stream with timestamp.
Sends data over the specified CAP audio stream with a sequence number.
- Parameters:
stream -- Stream object.
sdu -- Buffer containing data to be sent.
sdu_len -- Length of data to be sent.
seq_num -- Packet Sequence number. This value shall be incremented for each call to this function and at least once per SDU interval for a specific channel.
ts -- Timestamp of the SDU in microseconds (us). This value can be used to transmit multiple SDUs in the same SDU interval in a CIG or BIG.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_stream_get_tx_sync(esp_ble_audio_cap_stream_t *stream, esp_ble_iso_tx_info_t *info)
Get ISO transmission timing info for a Common Audio Profile stream.
- Parameters:
stream -- Stream object.
info -- Transmit info object.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_unicast_group_create(const esp_ble_audio_cap_unicast_group_param_t *param, esp_ble_audio_cap_unicast_group_t **unicast_group)
Create unicast group.
Create a new audio unicast group with one or more audio streams as a unicast client. All streams shall share the same framing. All streams in the same direction shall share the same interval and latency (see esp_ble_audio_bap_qos_cfg_t).
- Parameters:
param -- The unicast group create parameters.
unicast_group -- Pointer to the unicast group created.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_unicast_group_reconfig(esp_ble_audio_cap_unicast_group_t *unicast_group, const esp_ble_audio_cap_unicast_group_param_t *param)
Reconfigure unicast group.
Reconfigure a unicast group with one or more audio streams as a unicast client. All streams shall share the same framing. All streams in the same direction shall share the same interval and latency (see esp_ble_audio_bap_qos_cfg_t). All streams in
paramshall already belong tounicast_group. Use esp_ble_audio_cap_unicast_group_add_streams() to add additional streams.- Parameters:
unicast_group -- Pointer to the unicast group created.
param -- The unicast group reconfigure parameters.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_unicast_group_add_streams(esp_ble_audio_cap_unicast_group_t *unicast_group, const esp_ble_audio_cap_unicast_group_stream_pair_param_t params[], size_t num_param)
Add streams to a unicast group as a unicast client.
This function can be used to add additional streams to a esp_ble_audio_cap_unicast_group_t.
This can be called at any time before any of the streams in the group has been started (see esp_ble_audio_bap_stream_ops_t.started()). This can also be called after the streams have been stopped (see esp_ble_audio_bap_stream_ops_t.stopped()).
Once a stream has been added to a unicast group, it cannot be removed. To remove a stream from a group, the group must be deleted with esp_ble_audio_cap_unicast_group_delete(), but this will require all streams in the group to be released first.
- Parameters:
unicast_group -- Pointer to the unicast group
params -- Array of stream parameters with streams being added to the group.
num_param -- Number of parameters in
params.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_unicast_group_delete(esp_ble_audio_cap_unicast_group_t *unicast_group)
Delete audio unicast group.
Delete a audio unicast group as a client. All streams in the group shall be in the idle or configured state.
- Parameters:
unicast_group -- Pointer to the unicast group to delete.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_initiator_register_cb(const esp_ble_audio_cap_initiator_cb_t *cb)
Register Common Audio Profile Initiator callbacks.
- Parameters:
cb -- The callback structure. Shall remain static.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_initiator_unregister_cb(const esp_ble_audio_cap_initiator_cb_t *cb)
Unregister Common Audio Profile Initiator callbacks.
- Parameters:
cb -- The callback structure that was previously registered.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_initiator_unicast_audio_start(const esp_ble_audio_cap_unicast_audio_start_param_t *param)
Setup and start unicast audio streams for a set of devices.
- Parameters:
param -- Parameters to start the audio streams.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_initiator_unicast_audio_update(const esp_ble_audio_cap_unicast_audio_update_param_t *param)
Update unicast audio streams.
This will update the metadata of one or more streams.
- Parameters:
param -- Update parameters.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_initiator_unicast_audio_stop(const esp_ble_audio_cap_unicast_audio_stop_param_t *param)
Stop unicast audio streams.
This will stop one or more streams.
- Parameters:
param -- Stop parameters.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_initiator_unicast_audio_cancel(void)
Cancel any current Common Audio Profile procedure.
This will stop the current procedure from continuing and making it possible to run a new Common Audio Profile procedure.
It is recommended to do this if any existing procedure takes longer time than expected, which could indicate a missing response from the Common Audio Profile Acceptor.
This does not send any requests to any Common Audio Profile Acceptors involved with the current procedure, and thus notifications from the Common Audio Profile Acceptors may arrive after this has been called. It is thus recommended to either only use this if a procedure has stalled, or wait a short while before starting any new Common Audio Profile procedure after this has been called to avoid getting notifications from the cancelled procedure. The wait time depends on the connection interval, the number of devices in the previous procedure and the behavior of the Common Audio Profile Acceptors.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_initiator_broadcast_audio_create(const esp_ble_audio_cap_initiator_broadcast_create_param_t *param, esp_ble_audio_cap_broadcast_source_t **broadcast_source)
Create a Common Audio Profile broadcast source.
Create a new audio broadcast source with one or more audio streams.
- Parameters:
param -- Parameters to start the audio streams.
broadcast_source -- Pointer to the broadcast source created.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_initiator_broadcast_audio_start(esp_ble_audio_cap_broadcast_source_t *broadcast_source, uint8_t adv_handle)
Start Common Audio Profile broadcast source.
The broadcast source will be visible for scanners once this has been called, and the device will advertise audio announcements.
- Parameters:
broadcast_source -- Pointer to the broadcast source.
adv_handle -- Handle of an extended advertising set with periodic advertising configured.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_initiator_broadcast_audio_update(esp_ble_audio_cap_broadcast_source_t *broadcast_source, const uint8_t meta[], size_t meta_len)
Update broadcast audio streams for a Common Audio Profile broadcast source.
- Parameters:
broadcast_source -- The broadcast source to update.
meta -- The new metadata. The metadata shall contain a list of CCIDs as well as a non-0 context bitfield.
meta_len -- The length of
meta.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_initiator_broadcast_audio_stop(esp_ble_audio_cap_broadcast_source_t *broadcast_source)
Stop broadcast audio streams for a Common Audio Profile broadcast source.
- Parameters:
broadcast_source -- The broadcast source to stop. The audio streams in this will be stopped and reset.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_initiator_broadcast_audio_delete(esp_ble_audio_cap_broadcast_source_t *broadcast_source)
Delete Common Audio Profile broadcast source.
- Parameters:
broadcast_source -- The broadcast source to delete.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_initiator_broadcast_get_base(esp_ble_audio_cap_broadcast_source_t *broadcast_source, struct net_buf_simple *base_buf)
Get the Broadcast Audio Stream Endpoint of a Common Audio Profile broadcast source.
This will encode the BASE of a broadcast source into a buffer, that can be used for advertisement. The encoded BASE will thus be encoded as little-endian. The BASE shall be put into the periodic advertising data.
See table 3.15 in the Basic Audio Profile v1.0.1 for the structure.
- Parameters:
broadcast_source -- Pointer to the broadcast source.
base_buf -- Pointer to a buffer where the BASE will be inserted.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_handover_register_cb(const esp_ble_audio_cap_handover_cb_t *cb)
Register Common Audio Profile Handover callbacks.
- Parameters:
cb -- The callback structure. Shall remain static.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_handover_unregister_cb(const esp_ble_audio_cap_handover_cb_t *cb)
Unregister Common Audio Profile Handover callbacks.
- Parameters:
cb -- The callback structure that was previously registered.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_handover_unicast_to_broadcast(const esp_ble_audio_cap_handover_unicast_to_broadcast_param_t *param)
Hands over the sink streams in a unicast group to a broadcast source.
All streams in the provided unicast group will be stopped and released. The sink streams will be transferred to a broadcast source, and the broadcast source information will be shared with all accepters that are currently receiving audio. Any stream that is not in the streaming state will only be released.
esp_ble_audio_bap_broadcast_assistant_discover() must have been successfully perform for all members in
parambefore starting this procedure.- Parameters:
param -- The parameters for the handover.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_handover_broadcast_to_unicast(const esp_ble_audio_cap_handover_broadcast_to_unicast_param_t *param)
Hands over the data streams in a broadcast source to a unicast group.
The streams in the broadcast source will be stopped and the broadcast source will be deleted.
- Parameters:
param -- The parameters for the handover.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_commander_register_cb(const esp_ble_audio_cap_commander_cb_t *cb)
Register Common Audio Profile Commander callbacks.
- Parameters:
cb -- The callback structure. Shall remain static.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_commander_unregister_cb(const esp_ble_audio_cap_commander_cb_t *cb)
Unregister Common Audio Profile Commander callbacks.
- Parameters:
cb -- The callback structure that was previously registered.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_commander_discover(uint16_t conn_handle)
Discovers audio support on a remote device.
This will discover the Common Audio Service (CAS) on the remote device, to verify if the remote device supports the Common Audio Profile.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_commander_cancel(void)
Cancel any current Common Audio Profile commander procedure.
This will stop the current procedure from continuing and making it possible to run a new Common Audio Profile procedure.
It is recommended to do this if any existing procedure takes longer time than expected, which could indicate a missing response from the Common Audio Profile Acceptor.
This does not send any requests to any Common Audio Profile Acceptors involved with the current procedure, and thus notifications from the Common Audio Profile Acceptors may arrive after this has been called. It is thus recommended to either only use this if a procedure has stalled, or wait a short while before starting any new Common Audio Profile procedure after this has been called to avoid getting notifications from the cancelled procedure. The wait time depends on the connection interval, the number of devices in the previous procedure and the behavior of the Common Audio Profile Acceptors.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_commander_broadcast_reception_start(const esp_ble_audio_cap_commander_broadcast_reception_start_param_t *param)
Starts the reception of broadcast audio on one or more remote Common Audio Profile Acceptors.
- Parameters:
param -- The parameters to start the broadcast audio
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_commander_broadcast_reception_stop(const esp_ble_audio_cap_commander_broadcast_reception_stop_param_t *param)
Stops the reception of broadcast audio on one or more remote Common Audio Profile Acceptors.
- Parameters:
param -- The parameters to stop the broadcast audio
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_commander_distribute_broadcast_code(const esp_ble_audio_cap_commander_distribute_broadcast_code_param_t *param)
Distributes the broadcast code on one or more remote Common Audio Profile Acceptors.
- Parameters:
param -- The parameters for distributing the broadcast code.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_commander_change_volume(const esp_ble_audio_cap_commander_change_volume_param_t *param)
Change the volume on one or more Common Audio Profile Acceptors.
- Parameters:
param -- The parameters for the volume change.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_commander_change_volume_offset(const esp_ble_audio_cap_commander_change_volume_offset_param_t *param)
Change the volume offset on one or more Common Audio Profile Acceptors.
- Parameters:
param -- The parameters for the volume offset change.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_commander_change_volume_mute_state(const esp_ble_audio_cap_commander_change_volume_mute_state_param_t *param)
Change the volume mute state on one or more Common Audio Profile Acceptors.
- Parameters:
param -- The parameters for the volume mute state change.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_commander_change_microphone_mute_state(const esp_ble_audio_cap_commander_change_microphone_mute_state_param_t *param)
Change the microphone mute state on one or more Common Audio Profile Acceptors.
- Parameters:
param -- The parameters for the microphone mute state change.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_cap_commander_change_microphone_gain_setting(const esp_ble_audio_cap_commander_change_microphone_gain_setting_param_t *param)
Change the microphone gain setting on one or more Common Audio Profile Acceptors.
- Parameters:
param -- The parameters for the microphone gain setting change.
- Returns:
ESP_OK on success, or an error code on failure.
Macros
-
ESP_BLE_AUDIO_CAP_SET_TYPE_AD_HOC
< The set is an ad-hoc set The set is a CSIP Coordinated Set
-
ESP_BLE_AUDIO_CAP_SET_TYPE_CSIP
Type Definitions
-
typedef enum bt_cap_set_type esp_ble_audio_cap_set_type_t
Type of CAP set
-
typedef struct bt_cap_stream esp_ble_audio_cap_stream_t
Common Audio Profile stream structure
-
typedef struct bt_cap_broadcast_source esp_ble_audio_cap_broadcast_source_t
Common Audio Broadcast Source structure
-
typedef struct bt_cap_unicast_group esp_ble_audio_cap_unicast_group_t
Common Audio Unicast Group structure
-
typedef struct bt_cap_initiator_cb esp_ble_audio_cap_initiator_cb_t
Callback structure for CAP procedures
-
typedef union bt_cap_set_member esp_ble_audio_cap_set_member_t
Union represents a Common Audio Set member that are either in a Coordinated or ad-hoc set
-
typedef struct bt_cap_unicast_group_stream_param esp_ble_audio_cap_unicast_group_stream_param_t
Parameter structure for each stream in the unicast group
-
typedef struct bt_cap_unicast_group_stream_pair_param esp_ble_audio_cap_unicast_group_stream_pair_param_t
-
typedef struct bt_cap_unicast_group_param esp_ble_audio_cap_unicast_group_param_t
Parameters for the creating unicast groups
-
typedef struct bt_cap_unicast_audio_start_stream_param esp_ble_audio_cap_unicast_audio_start_stream_param_t
CAP unicast audio stream specific parameters for starting audio
-
typedef struct bt_cap_unicast_audio_start_param esp_ble_audio_cap_unicast_audio_start_param_t
CAP unicast audio specific parameters for starting audio
-
typedef struct bt_cap_unicast_audio_update_stream_param esp_ble_audio_cap_unicast_audio_update_stream_param_t
CAP unicast audio stream specific parameters for updating audio
-
typedef struct bt_cap_unicast_audio_update_param esp_ble_audio_cap_unicast_audio_update_param_t
CAP unicast audio specific parameters for updating audio
-
typedef struct bt_cap_unicast_audio_stop_param esp_ble_audio_cap_unicast_audio_stop_param_t
CAP unicast audio specific parameters for stopping audio
-
typedef struct bt_cap_initiator_broadcast_stream_param esp_ble_audio_cap_initiator_broadcast_stream_param_t
CAP Initiator broadcast audio stream specific parameters
-
typedef struct bt_cap_initiator_broadcast_subgroup_param esp_ble_audio_cap_initiator_broadcast_subgroup_param_t
CAP Initiator broadcast audio subgroup specific parameters
-
typedef struct bt_cap_initiator_broadcast_create_param esp_ble_audio_cap_initiator_broadcast_create_param_t
CAP Initiator broadcast audio specific parameters for creating audio
-
typedef struct bt_cap_handover_cb esp_ble_audio_cap_handover_cb_t
Callback structure for CAP Handover procedures
-
typedef struct bt_cap_handover_unicast_to_broadcast_param esp_ble_audio_cap_handover_unicast_to_broadcast_param_t
CAP Handover unicast audio to broadcast audio specific parameters
-
typedef struct bt_cap_handover_broadcast_to_unicast_param esp_ble_audio_cap_handover_broadcast_to_unicast_param_t
CAP Handover broadcast audio to unicast audio specific parameters
-
typedef struct bt_cap_commander_cb esp_ble_audio_cap_commander_cb_t
Callback structure for CAP Commander procedures
-
typedef struct bt_cap_commander_broadcast_reception_start_member_param esp_ble_audio_cap_commander_broadcast_reception_start_member_param_t
CAP Commander broadcast audio member specific parameters for starting audio reception
-
typedef struct bt_cap_commander_broadcast_reception_start_param esp_ble_audio_cap_commander_broadcast_reception_start_param_t
CAP Commander broadcast audio specific parameters for starting audio reception
-
typedef struct bt_cap_commander_broadcast_reception_stop_member_param esp_ble_audio_cap_commander_broadcast_reception_stop_member_param_t
CAP Commander broadcast audio member specific parameters for stopping audio reception
-
typedef struct bt_cap_commander_broadcast_reception_stop_param esp_ble_audio_cap_commander_broadcast_reception_stop_param_t
CAP Commander broadcast audio specific parameters for stopping audio reception
-
typedef struct bt_cap_commander_distribute_broadcast_code_member_param esp_ble_audio_cap_commander_distribute_broadcast_code_member_param_t
CAP Commander member parameters for distributing broadcast code
-
typedef struct bt_cap_commander_distribute_broadcast_code_param esp_ble_audio_cap_commander_distribute_broadcast_code_param_t
Parameters for distributing broadcast code
-
typedef struct bt_cap_commander_change_volume_param esp_ble_audio_cap_commander_change_volume_param_t
Parameters for changing absolute volume
-
typedef struct bt_cap_commander_change_volume_offset_member_param esp_ble_audio_cap_commander_change_volume_offset_member_param_t
Parameters for changing volume offset for a member
-
typedef struct bt_cap_commander_change_volume_offset_param esp_ble_audio_cap_commander_change_volume_offset_param_t
Parameters for changing volume offset
-
typedef struct bt_cap_commander_change_volume_mute_state_param esp_ble_audio_cap_commander_change_volume_mute_state_param_t
Parameters for changing volume mute state
-
typedef struct bt_cap_commander_change_microphone_mute_state_param esp_ble_audio_cap_commander_change_microphone_mute_state_param_t
Parameters for changing microphone mute state
-
typedef struct bt_cap_commander_change_microphone_gain_setting_member_param esp_ble_audio_cap_commander_change_microphone_gain_setting_member_param_t
Parameters for changing microphone gain setting for a member
-
typedef struct bt_cap_commander_change_microphone_gain_setting_param esp_ble_audio_cap_commander_change_microphone_gain_setting_param_t
Parameters for changing microphone gain setting
Call Control Profile (CCP)
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_ccp_api.h
This header file can be included with:
#include "esp_ble_audio_ccp_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_err_t esp_ble_audio_ccp_call_control_server_register_bearer(const esp_ble_audio_tbs_register_param_t *param, esp_ble_audio_ccp_call_control_server_bearer_t **bearer)
Register a Telephone Bearer.
This will register a Telephone Bearer Service (TBS) (or a Generic Telephone Bearer service (GTBS)) with the provided parameters.
As per the TBS specification, the GTBS shall be instantiated for the feature, and as such a GTBS shall always be registered before any TBS can be registered. Similarly, all TBS shall be unregistered before the GTBS can be unregistered with esp_ble_audio_ccp_call_control_server_unregister_bearer().
- Parameters:
param -- The parameters to initialize the bearer.
bearer -- Pointer to the initialized bearer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_ccp_call_control_server_unregister_bearer(esp_ble_audio_ccp_call_control_server_bearer_t *bearer)
Unregister a Telephone Bearer.
This will unregister a Telephone Bearer Service (TBS) (or a Generic Telephone Bearer service (GTBS)) with the provided parameters. The bearer shall be registered first by esp_ble_audio_ccp_call_control_server_register_bearer() before it can be unregistered.
All TBS shall be unregistered before the GTBS can be unregistered with.
- Parameters:
bearer -- The bearer to unregister.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_ccp_call_control_server_set_bearer_provider_name(esp_ble_audio_ccp_call_control_server_bearer_t *bearer, const char *name)
Set a new bearer provider name.
- Parameters:
bearer -- The bearer to set the name for.
name -- The new bearer provider name.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_ccp_call_control_server_get_bearer_provider_name(esp_ble_audio_ccp_call_control_server_bearer_t *bearer, const char **name)
Get the bearer provider name.
- Parameters:
bearer -- The bearer to get the name for.
name -- Pointer that will be updated to be the bearer provider name.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_ccp_call_control_client_discover(esp_ble_conn_t *conn, esp_ble_audio_ccp_call_control_client_t **out_client)
Discovers the Telephone Bearer Service (TBS) support on a remote device.
This will discover the Telephone Bearer Service (TBS) and Generic Telephone Bearer Service (GTBS) on the remote device.
- Parameters:
conn -- Connection to a remote server.
out_client -- Pointer to client instance on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_ccp_call_control_client_register_cb(esp_ble_audio_ccp_call_control_client_cb_t *cb)
Register callbacks for the Call Control Client.
- Parameters:
cb -- The callback struct.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_ccp_call_control_client_unregister_cb(esp_ble_audio_ccp_call_control_client_cb_t *cb)
Unregister callbacks for the Call Control Client.
- Parameters:
cb -- The callback struct.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_ccp_call_control_client_get_bearers(esp_ble_audio_ccp_call_control_client_t *client, esp_ble_audio_ccp_call_control_client_bearers_t *bearers)
Get the bearers of a client instance.
- Parameters:
client -- The client to get the bearers of.
bearers -- The bearers struct that will be populated with the bearers of
client.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_ccp_call_control_client_read_bearer_provider_name(esp_ble_audio_ccp_call_control_client_bearer_t *bearer)
Read the bearer provider name of a remote TBS bearer.
- Parameters:
bearer -- The bearer to read the name from.
- Returns:
ESP_OK on success, or an error code on failure.
Type Definitions
-
typedef struct bt_ccp_call_control_server_bearer esp_ble_audio_ccp_call_control_server_bearer_t
Abstract Call Control Server Telephone Bearer structure
-
typedef struct bt_ccp_call_control_client esp_ble_audio_ccp_call_control_client_t
Abstract Call Control Client structure.
-
typedef struct bt_ccp_call_control_client_bearer esp_ble_audio_ccp_call_control_client_bearer_t
Abstract Call Control Client bearer structure.
-
typedef struct bt_ccp_call_control_client_bearers esp_ble_audio_ccp_call_control_client_bearers_t
Struct with information about bearers of a client
-
typedef struct bt_ccp_call_control_client_cb esp_ble_audio_ccp_call_control_client_cb_t
Struct to hold the Telephone Bearer Service client callbacks
Basic Audio Profile (BAP)
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_bap_api.h
This header file can be included with:
#include "esp_ble_audio_bap_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_err_t esp_ble_audio_bap_unicast_server_register(const esp_ble_audio_bap_unicast_server_register_param_t *param)
Register the Unicast Server.
Register the Unicast Server. Only a single Unicast Server can be registered at any one time. This will register ASCS in the GATT database.
- Parameters:
param -- Registration parameters for ascs.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_unicast_server_unregister(void)
Unregister the Unicast Server.
Unregister the Unicast Server. This will unregister ASCS in the GATT database. Before calling this function, any callbacks registered through esp_ble_audio_bap_unicast_server_register_cb() needs to be unregistered with esp_ble_audio_bap_unicast_server_unregister_cb().
Calling this function will issue an release operation on any ASE in a non-idle state.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_unicast_server_register_cb(const esp_ble_audio_bap_unicast_server_cb_t *cb)
Register unicast server callbacks.
Only one callback structure can be registered, and attempting to registering more than one will result in an error. Prior to calling this function the Unicast Server needs to be registered with esp_ble_audio_bap_unicast_server_register().
- Parameters:
cb -- Unicast server callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_unicast_server_unregister_cb(const esp_ble_audio_bap_unicast_server_cb_t *cb)
Unregister unicast server callbacks.
May only unregister a callback structure that has previously been registered by esp_ble_audio_bap_unicast_server_register_cb().
Calling this function will issue an release operation on any ASE in a non-idle state.
- Parameters:
cb -- Unicast server callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_unicast_server_config_ase(uint16_t conn_handle, esp_ble_audio_bap_stream_t *stream, esp_ble_audio_codec_cfg_t *codec_cfg, const esp_ble_audio_bap_qos_cfg_pref_t *qos_pref)
Initialize and configure a new ASE.
- Parameters:
conn_handle -- Connection handle.
stream -- Configured stream object to be attached to the ASE.
codec_cfg -- Codec configuration.
qos_pref -- Audio Stream Quality of Service Preference.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_unicast_group_create(esp_ble_audio_bap_unicast_group_param_t *param, esp_ble_audio_bap_unicast_group_t **unicast_group)
Create unicast group.
Create a new audio unicast group with one or more audio streams as a unicast client. All streams shall share the same framing. All streams in the same direction shall share the same interval and latency.
- Parameters:
param -- The unicast group create parameters.
unicast_group -- Pointer to the unicast group created.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_unicast_group_reconfig(esp_ble_audio_bap_unicast_group_t *unicast_group, const esp_ble_audio_bap_unicast_group_param_t *param)
Reconfigure unicast group.
Reconfigure a unicast group with one or more audio streams as a unicast client. All streams shall share the same framing. All streams in the same direction shall share the same interval and latency. All streams in
paramshall already belong tounicast_group. Use esp_ble_audio_bap_unicast_group_add_streams() to add additional streams.- Parameters:
unicast_group -- Pointer to the unicast group created.
param -- The unicast group reconfigure parameters.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_unicast_group_add_streams(esp_ble_audio_bap_unicast_group_t *unicast_group, esp_ble_audio_bap_unicast_group_stream_pair_param_t params[], size_t num_param)
Add streams to a unicast group as a unicast client.
This function can be used to add additional streams to a BAP unicast group.
This can be called at any time before any of the streams in the group has been started. This can also be called after the streams have been stopped.
Once a stream has been added to a unicast group, it cannot be removed. To remove a stream from a group, the group must be deleted with esp_ble_audio_bap_unicast_group_delete(), but this will require all streams in the group to be released first.
- Parameters:
unicast_group -- Pointer to the unicast group.
params -- Array of stream parameters with streams being added to the group.
num_param -- Number of parameters in
params.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_unicast_group_delete(esp_ble_audio_bap_unicast_group_t *unicast_group)
Delete audio unicast group.
Delete an audio unicast group as a client. All streams in the group shall be in the idle or configured state.
- Parameters:
unicast_group -- Pointer to the unicast group to delete.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_unicast_client_register_cb(esp_ble_audio_bap_unicast_client_cb_t *cb)
Register unicast client callbacks.
Only one callback structure can be registered, and attempting to registering more than one will result in an error.
- Parameters:
cb -- Unicast client callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_unicast_client_unregister_cb(esp_ble_audio_bap_unicast_client_cb_t *cb)
Unregister unicast client callbacks.
- Parameters:
cb -- Unicast client callback structure to unregister.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_unicast_client_discover(uint16_t conn_handle, esp_ble_audio_dir_t dir)
Discover remote capabilities and endpoints.
This procedure is used by a client to discover remote capabilities and endpoints and notifies via params callback.
- Parameters:
conn_handle -- Connection handle.
dir -- The type of remote endpoints and capabilities to discover.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_stream_config(uint16_t conn_handle, esp_ble_audio_bap_stream_t *stream, esp_ble_audio_bap_ep_t *ep, esp_ble_audio_codec_cfg_t *codec_cfg)
Configure Audio Stream.
This procedure is used by a client to configure a new stream using the remote endpoint, local capability and codec configuration.
- Parameters:
conn_handle -- Connection handle.
stream -- Stream object being configured.
ep -- Remote Audio Endpoint being configured.
codec_cfg -- Codec configuration.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_stream_qos(uint16_t conn_handle, esp_ble_audio_bap_unicast_group_t *group)
Configure Audio Stream QoS.
This procedure is used by a client to configure the Quality of Service of streams in a unicast group. All streams in the group for the specified
conn_handlewill have the Quality of Service configured. This shall only be used to configure unicast streams.- Parameters:
conn_handle -- Connection handle.
group -- Unicast group object.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_stream_enable(esp_ble_audio_bap_stream_t *stream, const uint8_t meta[], size_t meta_len)
Enable Audio Stream.
This procedure is used by a client to enable a stream.
This shall only be called for unicast streams, as broadcast streams will always be enabled once created.
- Parameters:
stream -- Stream object.
meta -- Metadata.
meta_len -- Metadata length.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_stream_connect(esp_ble_audio_bap_stream_t *stream)
Connect unicast audio stream.
This procedure is used by a unicast client to connect the connected isochronous stream (CIS) associated with the audio stream. If two audio streams share a CIS, then this only needs to be done once for those streams. This can only be done for streams in the QoS configured or enabled states.
- Parameters:
stream -- Stream object.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_stream_stop(esp_ble_audio_bap_stream_t *stream)
Stop Audio Stream.
This procedure is used by a client to make a stream stop streaming.
This shall only be called for unicast streams. Broadcast sinks cannot be stopped.
- Parameters:
stream -- Stream object.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_stream_reconfig(esp_ble_audio_bap_stream_t *stream, esp_ble_audio_codec_cfg_t *codec_cfg)
Reconfigure Audio Stream.
This procedure is used by a unicast client or unicast server to reconfigure a stream to use a different local codec configuration.
This can only be done for unicast streams.
- Parameters:
stream -- Stream object being reconfigured.
codec_cfg -- Codec configuration.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_stream_metadata(esp_ble_audio_bap_stream_t *stream, const uint8_t meta[], size_t meta_len)
Change Audio Stream Metadata.
This procedure is used by a unicast client or unicast server to change the metadata of a stream.
- Parameters:
stream -- Stream object.
meta -- Metadata.
meta_len -- Metadata length.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_stream_disable(esp_ble_audio_bap_stream_t *stream)
Disable Audio Stream.
This procedure is used by a unicast client or unicast server to disable a stream.
This shall only be called for unicast streams, as broadcast streams will always be enabled once created.
- Parameters:
stream -- Stream object.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_stream_start(esp_ble_audio_bap_stream_t *stream)
Start Audio Stream.
This procedure is used by a unicast client or unicast server to make a stream start streaming.
For the unicast client, this will send the receiver start ready command to the unicast server for ESP_BLE_AUDIO_DIR_SOURCE ASEs. The CIS is required to be connected first by esp_ble_audio_bap_stream_connect() before the command can be sent.
For the unicast server, this will execute the receiver start ready command on the unicast server for ESP_BLE_AUDIO_DIR_SINK ASEs. If the CIS is not connected yet, the stream will go into the streaming state as soon as the CIS is connected.
This shall only be called for unicast streams.
Broadcast sinks will always be started once synchronized, and broadcast source streams shall be started with esp_ble_audio_bap_broadcast_source_start().
- Parameters:
stream -- Stream object.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_stream_release(esp_ble_audio_bap_stream_t *stream)
Release Audio Stream.
This procedure is used by a unicast client or unicast server to release a unicast stream.
Broadcast sink streams cannot be released, but can be deleted by esp_ble_audio_bap_broadcast_sink_delete(). Broadcast source streams cannot be released, but can be deleted by esp_ble_audio_bap_broadcast_source_delete().
- Parameters:
stream -- Stream object.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_source_register_cb(esp_ble_audio_bap_broadcast_source_cb_t *cb)
Registers callbacks for Broadcast Sources.
- Parameters:
cb -- Pointer to the callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_source_unregister_cb(esp_ble_audio_bap_broadcast_source_cb_t *cb)
Unregisters callbacks for Broadcast Sources.
- Parameters:
cb -- Pointer to the callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_source_create(esp_ble_audio_bap_broadcast_source_param_t *param, esp_ble_audio_bap_broadcast_source_t **source)
Create audio broadcast source.
Create a new audio broadcast source with one or more audio streams.
The broadcast source will be visible for scanners once this has been called, and the device will advertise audio announcements.
No audio data can be sent until esp_ble_audio_bap_broadcast_source_start() has been called and no audio information (BIGInfo) will be visible to scanners.
- Parameters:
param -- Pointer to parameters used to create the broadcast source.
source -- Pointer to the broadcast source created.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_source_reconfig(esp_ble_audio_bap_broadcast_source_t *source, esp_ble_audio_bap_broadcast_source_param_t *param)
Reconfigure audio broadcast source.
Reconfigure an audio broadcast source with a new codec and codec quality of service parameters. This can only be done when the source is stopped.
Since this may modify the Broadcast Audio Source Endpoint (BASE), esp_ble_audio_bap_broadcast_source_get_base() should be called after this to get the new BASE information.
If the
param.params_countis smaller than the number of subgroups that have been created in the Broadcast Source, only the firstparam.params_countsubgroups are updated. If a stream exist in a subgroup not part ofparam, then that stream is left as is (i.e. it is not removed; the only way to remove a stream from a Broadcast Source is to recreate the Broadcast Source).- Parameters:
source -- Pointer to the broadcast source.
param -- Pointer to parameters used to reconfigure the broadcast source.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_source_update_metadata(esp_ble_audio_bap_broadcast_source_t *source, const uint8_t meta[], size_t meta_len)
Modify the metadata of an audio broadcast source.
Modify the metadata an audio broadcast source. This can only be done when the source is started. To update the metadata in the stopped state, use esp_ble_audio_bap_broadcast_source_reconfig().
- Parameters:
source -- Pointer to the broadcast source.
meta -- Metadata.
meta_len -- Length of metadata.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_adv_add(esp_ble_audio_bap_broadcast_adv_info_t *info)
Add extended advertising for an audio broadcast source.
- Parameters:
info -- Extended advertising information.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_adv_delete(esp_ble_audio_bap_broadcast_adv_info_t *info)
Delete extended advertising for an audio broadcast source.
- Parameters:
info -- Extended advertising information.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_source_start(esp_ble_audio_bap_broadcast_source_t *source, uint8_t adv_handle)
Start audio broadcast source.
Start an audio broadcast source with one or more audio streams. The broadcast source will start advertising BIGInfo, and audio data can be streamed.
- Parameters:
source -- Pointer to the broadcast source.
adv_handle -- Handle of an extended advertising set with periodic advertising configured.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_source_stop(esp_ble_audio_bap_broadcast_source_t *source)
Stop audio broadcast source.
Stop an audio broadcast source. The broadcast source will stop advertising BIGInfo, and audio data can no longer be streamed.
- Parameters:
source -- Pointer to the broadcast source.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_source_delete(esp_ble_audio_bap_broadcast_source_t *source)
Delete audio broadcast source.
Delete an audio broadcast source. The broadcast source will stop advertising entirely, and the source can no longer be used.
- Parameters:
source -- Pointer to the broadcast source.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_source_get_base(esp_ble_audio_bap_broadcast_source_t *source, struct net_buf_simple *base_buf)
Get the Broadcast Audio Stream Endpoint of a broadcast source.
This will encode the BASE of a broadcast source into a buffer, that can be used for advertisement. The encoded BASE will thus be encoded as little-endian. The BASE shall be put into the periodic advertising data.
See table 3.15 in the Basic Audio Profile v1.0.1 for the structure.
- Parameters:
source -- Pointer to the broadcast source.
base_buf -- Pointer to a buffer where the BASE will be inserted.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_sink_register_cb(esp_ble_audio_bap_broadcast_sink_cb_t *cb)
Register Broadcast sink callbacks.
It is possible to register multiple struct of callbacks, but a single struct can only be registered once. Registering the same callback multiple times is undefined behavior and may break the stack.
- Parameters:
cb -- Broadcast sink callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_sink_create(uint16_t sync_handle, uint32_t broadcast_id, esp_ble_audio_bap_broadcast_sink_t **sink)
Create a Broadcast Sink from a periodic advertising sync.
This should only be done after verifying that the periodic advertising sync is from a Broadcast Source.
The created Broadcast Sink will need to be supplied to esp_ble_audio_bap_broadcast_sink_sync() in order to synchronize to the broadcast audio.
- Parameters:
sync_handle -- Sync handle.
broadcast_id -- 24-bit broadcast ID.
sink -- Pointer to the Broadcast Sink created.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_sink_sync(esp_ble_audio_bap_broadcast_sink_t *sink, uint32_t indexes_bitfield, esp_ble_audio_bap_stream_t *streams[], const uint8_t broadcast_code[ESP_BLE_ISO_BROADCAST_CODE_SIZE])
Sync to a broadcaster's audio.
Example: The string "Broadcast Code" shall be [42 72 6F 61 64 63 61 73 74 20 43 6F 64 65 00 00]
- Parameters:
sink -- Pointer to the sink object from the base_recv callback.
indexes_bitfield -- Bitfield of the BIS index to sync to. To sync to e.g. BIS index 1 and 2, this should have the value of BIT(1) | BIT(2).
streams -- Stream object pointers to be used for the receiver. If multiple BIS indexes shall be synchronized, multiple streams shall be provided.
broadcast_code -- The 16-octet broadcast code. Shall be supplied if the broadcast is encrypted. If the value is a string or a the value is less than 16 octets, the remaining octets shall be 0.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_sink_stop(esp_ble_audio_bap_broadcast_sink_t *sink)
Stop audio broadcast sink.
Stop an audio broadcast sink. The broadcast sink will stop receiving BIGInfo, and audio data can no longer be streamed.
- Parameters:
sink -- Pointer to the broadcast sink.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_sink_delete(esp_ble_audio_bap_broadcast_sink_t *sink)
Release a broadcast sink.
Once a broadcast sink has been allocated, it can be deleted using this function. If the sink has synchronized to any broadcast audio streams, these must first be stopped using esp_ble_audio_bap_stream_stop.
- Parameters:
sink -- Pointer to the sink object to delete.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_scan_delegator_register(esp_ble_audio_bap_scan_delegator_cb_t *cb)
Register the Basic Audio Profile Scan Delegator and BASS.
Register the scan delegator and Broadcast Audio Scan Service (BASS) dynamically at runtime.
Only one set of callbacks can be registered at any one time, and calling this function multiple times will override any previously registered callbacks.
- Parameters:
cb -- Pointer to the callback struct.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_scan_delegator_unregister(void)
Unregister the Basic Audio Profile Scan Delegator and BASS.
Unregister the scan delegator and Broadcast Audio Scan Service (BASS) dynamically at runtime.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_scan_delegator_set_pa_state(uint8_t src_id, esp_ble_audio_bap_pa_state_t pa_state)
Set the periodic advertising sync state to syncing.
Set the periodic advertising sync state for a receive state to syncing, notifying Broadcast Assistants.
- Parameters:
src_id -- The source id used to identify the receive state.
pa_state -- The Periodic Advertising sync state to set. ESP_BLE_AUDIO_BAP_PA_STATE_NOT_SYNCED and ESP_BLE_AUDIO_BAP_PA_STATE_SYNCED is not necessary to provide, as they are handled internally.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_scan_delegator_set_bis_sync_state(uint8_t src_id, uint32_t bis_synced[CONFIG_BT_BAP_BASS_MAX_SUBGROUPS])
Set the sync state of a receive state in the server.
- Parameters:
src_id -- The source id used to identify the receive state.
bis_synced -- Array of bitfields to set the BIS sync state for each subgroup.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_scan_delegator_add_src(const esp_ble_audio_bap_scan_delegator_add_src_param_t *param, uint8_t *src_id)
Add a receive state source locally.
This will notify any connected clients about the new source. This allows them to modify and even remove it.
- Parameters:
param -- The parameters for adding the new source.
src_id -- Source ID on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_scan_delegator_mod_src(const esp_ble_audio_bap_scan_delegator_mod_src_param_t *param)
Modify a receive state source.
This will modify the receive state.
- Parameters:
param -- The parameters for modifying the source.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_scan_delegator_rem_src(uint8_t src_id)
Remove a receive state source.
This will remove the receive state.
- Parameters:
src_id -- The source ID to remove.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_assistant_discover(uint16_t conn_handle)
Discover Broadcast Audio Scan Service on the server.
Warning: Only one connection can be active at any time; discovering for a new connection, will delete all previous data.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_assistant_scan_start(uint16_t conn_handle, bool start_scan)
Scan start for BISes for a remote server.
This will let the Broadcast Audio Scan Service server know that this device is actively scanning for broadcast sources. The function can optionally also start scanning, if the caller does not want to start scanning itself.
- Parameters:
conn_handle -- Connection handle.
start_scan -- Start scanning if true. If false, the application should enable scan itself.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_assistant_scan_stop(uint16_t conn_handle)
Stop remote scanning for BISes for a server.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_assistant_register_cb(esp_ble_audio_bap_broadcast_assistant_cb_t *cb)
Registers the callbacks used by Broadcast Audio Scan Service client.
- Parameters:
cb -- The callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_assistant_unregister_cb(esp_ble_audio_bap_broadcast_assistant_cb_t *cb)
Unregisters the callbacks used by the Broadcast Audio Scan Service client.
- Parameters:
cb -- The callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_assistant_add_src(uint16_t conn_handle, const esp_ble_audio_bap_broadcast_assistant_add_src_param_t *param)
Add a source on the server.
- Parameters:
conn_handle -- Connection handle.
param -- Parameter struct.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_assistant_mod_src(uint16_t conn_handle, const esp_ble_audio_bap_broadcast_assistant_mod_src_param_t *param)
Modify a source on the server.
- Parameters:
conn_handle -- Connection handle.
param -- Parameter struct.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_assistant_set_broadcast_code(uint16_t conn_handle, uint8_t src_id, const uint8_t broadcast_code[ESP_BLE_ISO_BROADCAST_CODE_SIZE])
Set a broadcast code to the specified receive state.
- Parameters:
conn_handle -- Connection handle.
src_id -- Source ID of the receive state.
broadcast_code -- The broadcast code.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_assistant_rem_src(uint16_t conn_handle, uint8_t src_id)
Remove a source from the server.
- Parameters:
conn_handle -- Connection handle.
src_id -- Source ID of the receive state.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_broadcast_assistant_read_recv_state(uint16_t conn_handle, uint8_t idx)
Read the specified receive state from the server.
- Parameters:
conn_handle -- Connection handle.
idx -- The index of the receive start.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_ep_get_info(const esp_ble_audio_bap_ep_t *ep, esp_ble_audio_bap_ep_info_t *info)
Return structure holding information of audio stream endpoint.
- Parameters:
ep -- The audio stream endpoint object.
info -- The structure object to be filled with the info.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_stream_cb_register(esp_ble_audio_bap_stream_t *stream, esp_ble_audio_bap_stream_ops_t *ops)
Register Audio callbacks for a stream.
Register Audio callbacks for a stream.
- Parameters:
stream -- Stream object.
ops -- Stream operations structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_stream_send(esp_ble_audio_bap_stream_t *stream, const uint8_t *sdu, uint16_t sdu_len, uint16_t seq_num)
Send data to Audio stream without timestamp.
Send data from buffer to the stream.
- Parameters:
stream -- Stream object.
sdu -- Buffer containing data to be sent.
sdu_len -- length of data to be sent.
seq_num -- Packet Sequence number. This value shall be incremented for each call to this function and at least once per SDU interval for a specific channel.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_stream_send_ts(esp_ble_audio_bap_stream_t *stream, const uint8_t *sdu, uint16_t sdu_len, uint16_t seq_num, uint32_t ts)
Send data to Audio stream with timestamp.
- Parameters:
stream -- Stream object.
sdu -- Buffer containing data to be sent.
sdu_len -- length of data to be sent.
seq_num -- Packet Sequence number. This value shall be incremented for each call to this function and at least once per SDU interval for a specific channel.
ts -- Timestamp of the SDU in microseconds (us). This value can be used to transmit multiple SDUs in the same SDU interval in a CIG or BIG.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_stream_get_tx_sync(esp_ble_audio_bap_stream_t *stream, esp_ble_iso_tx_info_t *info)
Get ISO transmission timing info for a Basic Audio Profile stream.
Reads timing information for transmitted ISO packet on an ISO channel. The HCI_LE_Read_ISO_TX_Sync HCI command is used to retrieve this information from the controller.
Note
An SDU must have already been successfully transmitted on the ISO channel for this function to return successfully.
- Parameters:
stream -- Stream object.
info -- Transmit info object.
- Returns:
ESP_OK on success, or an error code on failure.
-
const esp_ble_audio_bap_base_t *esp_ble_audio_bap_base_get_base_from_ad(uint8_t data_type, const uint8_t *data, uint8_t data_len)
Generate a pointer to a BASE from periodic advertising data.
- Parameters:
data_type -- Type of the periodic advertising data.
data -- Pointer of the periodic advertising data.
data_len -- Length of the periodic advertising data.
- Returns:
NULL if the data does not contain a BASE. Pointer to an esp_ble_audio_bap_base_t structure.
-
esp_err_t esp_ble_audio_bap_base_get_size(const esp_ble_audio_bap_base_t *base, size_t *base_size)
Get the size of a BASE.
- Parameters:
base -- The BASE pointer.
base_size -- The size of the BASE on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_base_get_pres_delay(const esp_ble_audio_bap_base_t *base, uint32_t *pres_delay)
Get the presentation delay value of a BASE.
- Parameters:
base -- The BASE pointer.
pres_delay -- The 24-bit presentation delay value on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_base_get_subgroup_count(const esp_ble_audio_bap_base_t *base, uint8_t *subgroup_count)
Get the subgroup count of a BASE.
- Parameters:
base -- The BASE pointer.
subgroup_count -- The 8-bit subgroup count value on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_base_get_bis_indexes(const esp_ble_audio_bap_base_t *base, uint32_t *bis_indexes)
Get all BIS indexes of a BASE.
- Parameters:
base -- The BASE pointer.
bis_indexes -- 32-bit BIS index bitfield that will be populated.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_base_foreach_subgroup(const esp_ble_audio_bap_base_t *base, bool (*func)(const esp_ble_audio_bap_base_subgroup_t *subgroup, void *user_data), void *user_data)
Iterate on all subgroups in the BASE.
- Parameters:
base -- The BASE pointer.
func -- Callback function. Return true to continue iterating, or false to stop.
user_data -- User data supplied to
func.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_base_get_subgroup_codec_id(const esp_ble_audio_bap_base_subgroup_t *subgroup, esp_ble_audio_bap_base_codec_id_t *codec_id)
Get the codec ID of a subgroup.
- Parameters:
subgroup -- The subgroup pointer.
codec_id -- Pointer to the struct where the results are placed.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_base_get_subgroup_codec_data(const esp_ble_audio_bap_base_subgroup_t *subgroup, uint8_t **data)
Get the codec configuration data of a subgroup.
- Parameters:
subgroup -- The subgroup pointer.
data -- Pointer that will point to the resulting codec configuration data.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_base_get_subgroup_codec_meta(const esp_ble_audio_bap_base_subgroup_t *subgroup, uint8_t **meta)
Get the codec metadata of a subgroup.
- Parameters:
subgroup -- The subgroup pointer.
meta -- Pointer that will point to the resulting codec metadata.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_base_subgroup_codec_to_codec_cfg(const esp_ble_audio_bap_base_subgroup_t *subgroup, esp_ble_audio_codec_cfg_t *codec_cfg)
Store subgroup codec data in a esp_ble_audio_codec_cfg_t.
- Parameters:
subgroup -- The subgroup pointer.
codec_cfg -- Pointer to the struct where the results are placed.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_base_get_subgroup_bis_count(const esp_ble_audio_bap_base_subgroup_t *subgroup, uint8_t *bis_count)
Get the BIS count of a subgroup.
- Parameters:
subgroup -- The subgroup pointer.
bis_count -- The 8-bit BIS count value on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_base_subgroup_get_bis_indexes(const esp_ble_audio_bap_base_subgroup_t *subgroup, uint32_t *bis_indexes)
Get all BIS indexes of a subgroup.
- Parameters:
subgroup -- The subgroup pointer.
bis_indexes -- 32-bit BIS index bitfield that will be populated.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_base_subgroup_foreach_bis(const esp_ble_audio_bap_base_subgroup_t *subgroup, bool (*func)(const esp_ble_audio_bap_base_subgroup_bis_t *bis, void *user_data), void *user_data)
Iterate on all BIS in the subgroup.
- Parameters:
subgroup -- The subgroup pointer.
func -- Callback function. Return true to continue iterating, or false to stop.
user_data -- User data supplied to
func.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_bap_base_subgroup_bis_codec_to_codec_cfg(const esp_ble_audio_bap_base_subgroup_bis_t *bis, esp_ble_audio_codec_cfg_t *codec_cfg)
Store BIS codec configuration data in a esp_ble_audio_codec_cfg_t.
This only sets the esp_ble_audio_codec_cfg_t data and esp_ble_audio_codec_cfg_t data_len, but is useful to use the BIS codec configuration data with the esp_ble_audio_codec_cfg_* functions.
- Parameters:
bis -- The BIS pointer.
codec_cfg -- Pointer to the struct where the results are placed.
- Returns:
ESP_OK on success, or an error code on failure.
Macros
-
ESP_BLE_AUDIO_BAP_BASS_VALID_BIT_BITFIELD(_bis_bitfield)
Check if a BAP BASS BIS_Sync bitfield is valid.
Valid options are either a bitmask of valid BIS indices, including none (0x00000000) or no ref (0xFFFFFFFF).
- Parameters:
_bis_bitfield -- BIS_Sync bitfield (uint32).
-
ESP_BLE_AUDIO_BAP_QOS_CFG(_interval, _framing, _phy, _sdu, _rtn, _latency, _pd)
Helper to declare elements of BAP QoS Configuration.
- Parameters:
_interval -- SDU interval (usec).
_framing -- Framing.
_phy -- Target PHY.
_sdu -- Maximum SDU Size.
_rtn -- Retransmission number.
_latency -- Maximum Transport Latency (msec).
_pd -- Presentation Delay (usec).
-
ESP_BLE_AUDIO_BAP_QOS_CFG_UNFRAMED(_interval, _sdu, _rtn, _latency, _pd)
Helper to declare Input Unframed BAP QoS Configuration.
- Parameters:
_interval -- SDU interval (usec).
_sdu -- Maximum SDU Size.
_rtn -- Retransmission number.
_latency -- Maximum Transport Latency (msec).
_pd -- Presentation Delay (usec).
-
ESP_BLE_AUDIO_BAP_QOS_CFG_FRAMED(_interval, _sdu, _rtn, _latency, _pd)
Helper to declare Input Framed BAP QoS Configuration.
- Parameters:
_interval -- SDU interval (usec).
_sdu -- Maximum SDU Size.
_rtn -- Retransmission number.
_latency -- Maximum Transport Latency (msec).
_pd -- Presentation Delay (usec).
-
ESP_BLE_AUDIO_BAP_QOS_CFG_PREF(_unframed_supported, _phy, _rtn, _latency, _pd_min, _pd_max, _pref_pd_min, _pref_pd_max)
Helper to declare elements of BAP QoS Configuration Preference.
- Parameters:
_unframed_supported -- Unframed PDUs supported.
_phy -- Preferred Target PHY.
_rtn -- Preferred Retransmission number.
_latency -- Preferred Maximum Transport Latency (msec).
_pd_min -- Minimum Presentation Delay (usec).
_pd_max -- Maximum Presentation Delay (usec).
_pref_pd_min -- Preferred Minimum Presentation Delay (usec).
_pref_pd_max -- Preferred Maximum Presentation Delay (usec).
-
ESP_BLE_AUDIO_BAP_ASCS_RSP(c, r)
Macro used to initialise the object storing values of ASE Control Point notification.
- Parameters:
c -- Response Code field.
r -- Reason field. LE 1M PHY
-
ESP_BLE_AUDIO_BAP_QOS_CFG_1M
LE 2M PHY
-
ESP_BLE_AUDIO_BAP_QOS_CFG_2M
LE Coded PHY
-
ESP_BLE_AUDIO_BAP_QOS_CFG_CODED
An invalid Broadcast ID
-
ESP_BLE_AUDIO_BAP_INVALID_BROADCAST_ID
Value indicating that the periodic advertising interval is unknown
-
ESP_BLE_AUDIO_BAP_PA_INTERVAL_UNKNOWN
Indicate that the Broadcast Assistant has no preference to which BIS the Scan Delegator syncs to
-
ESP_BLE_AUDIO_BAP_BIS_SYNC_NO_PREF
BIS sync value indicating that the BIG sync has failed for any reason
-
ESP_BLE_AUDIO_BAP_BIS_SYNC_FAILED
Packets may be framed or unframed
-
ESP_BLE_AUDIO_BAP_QOS_CFG_FRAMING_UNFRAMED
Packets are always framed
-
ESP_BLE_AUDIO_BAP_QOS_CFG_FRAMING_FRAMED
-
ESP_BLE_AUDIO_BAP_PA_STATE_NOT_SYNCED
Waiting for SyncInfo from Broadcast Assistant
-
ESP_BLE_AUDIO_BAP_PA_STATE_INFO_REQ
Synchronized to periodic advertising
-
ESP_BLE_AUDIO_BAP_PA_STATE_SYNCED
Failed to synchronized to periodic advertising
-
ESP_BLE_AUDIO_BAP_PA_STATE_FAILED
No periodic advertising sync transfer receiver from Broadcast Assistant
-
ESP_BLE_AUDIO_BAP_PA_STATE_NO_PAST
-
ESP_BLE_AUDIO_BAP_BIG_ENC_STATE_NO_ENC
The Broadcast Isochronous Group broadcast code requested
-
ESP_BLE_AUDIO_BAP_BIG_ENC_STATE_BCODE_REQ
The Broadcast Isochronous Group decrypted
-
ESP_BLE_AUDIO_BAP_BIG_ENC_STATE_DEC
The Broadcast Isochronous Group bad broadcast code
-
ESP_BLE_AUDIO_BAP_BIG_ENC_STATE_BAD_CODE
-
ESP_BLE_AUDIO_BAP_EP_STATE_IDLE
Audio Stream Endpoint Codec Configured state
-
ESP_BLE_AUDIO_BAP_EP_STATE_CODEC_CONFIGURED
Audio Stream Endpoint QoS Configured state
-
ESP_BLE_AUDIO_BAP_EP_STATE_QOS_CONFIGURED
Audio Stream Endpoint Enabling state
-
ESP_BLE_AUDIO_BAP_EP_STATE_ENABLING
Audio Stream Endpoint Streaming state
-
ESP_BLE_AUDIO_BAP_EP_STATE_STREAMING
Audio Stream Endpoint Disabling state
-
ESP_BLE_AUDIO_BAP_EP_STATE_DISABLING
Audio Stream Endpoint Releasing state
-
ESP_BLE_AUDIO_BAP_EP_STATE_RELEASING
-
ESP_BLE_AUDIO_BAP_ASCS_REASON_NONE
Codec ID
-
ESP_BLE_AUDIO_BAP_ASCS_REASON_CODEC
Codec configuration
-
ESP_BLE_AUDIO_BAP_ASCS_REASON_CODEC_DATA
SDU interval
-
ESP_BLE_AUDIO_BAP_ASCS_REASON_INTERVAL
Framing
-
ESP_BLE_AUDIO_BAP_ASCS_REASON_FRAMING
PHY
-
ESP_BLE_AUDIO_BAP_ASCS_REASON_PHY
Maximum SDU size
-
ESP_BLE_AUDIO_BAP_ASCS_REASON_SDU
RTN
-
ESP_BLE_AUDIO_BAP_ASCS_REASON_RTN
Max transport latency
-
ESP_BLE_AUDIO_BAP_ASCS_REASON_LATENCY
Presentation delay
-
ESP_BLE_AUDIO_BAP_ASCS_REASON_PD
Invalid CIS mapping
-
ESP_BLE_AUDIO_BAP_ASCS_REASON_CIS
-
ESP_BLE_AUDIO_BAP_ASCS_RSP_CODE_SUCCESS
Server did not support operation by client
-
ESP_BLE_AUDIO_BAP_ASCS_RSP_CODE_NOT_SUPPORTED
Server rejected due to invalid operation length
-
ESP_BLE_AUDIO_BAP_ASCS_RSP_CODE_INVALID_LENGTH
Invalid ASE ID
-
ESP_BLE_AUDIO_BAP_ASCS_RSP_CODE_INVALID_ASE
Invalid ASE state
-
ESP_BLE_AUDIO_BAP_ASCS_RSP_CODE_INVALID_ASE_STATE
Invalid operation for direction
-
ESP_BLE_AUDIO_BAP_ASCS_RSP_CODE_INVALID_DIR
Capabilities not supported by server
-
ESP_BLE_AUDIO_BAP_ASCS_RSP_CODE_CAP_UNSUPPORTED
Configuration parameters not supported by server
-
ESP_BLE_AUDIO_BAP_ASCS_RSP_CODE_CONF_UNSUPPORTED
Configuration parameters rejected by server
-
ESP_BLE_AUDIO_BAP_ASCS_RSP_CODE_CONF_REJECTED
Invalid Configuration parameters
-
ESP_BLE_AUDIO_BAP_ASCS_RSP_CODE_CONF_INVALID
Unsupported metadata
-
ESP_BLE_AUDIO_BAP_ASCS_RSP_CODE_METADATA_UNSUPPORTED
Metadata rejected by server
-
ESP_BLE_AUDIO_BAP_ASCS_RSP_CODE_METADATA_REJECTED
Invalid metadata
-
ESP_BLE_AUDIO_BAP_ASCS_RSP_CODE_METADATA_INVALID
Server has insufficient resources
-
ESP_BLE_AUDIO_BAP_ASCS_RSP_CODE_NO_MEM
Unspecified error
-
ESP_BLE_AUDIO_BAP_ASCS_RSP_CODE_UNSPECIFIED
Type Definitions
-
typedef enum bt_bap_qos_cfg_framing esp_ble_audio_bap_qos_cfg_framing_t
QoS Framing The periodic advertising has not been synchronized
-
typedef enum bt_bap_pa_state esp_ble_audio_bap_pa_state_t
Periodic advertising state reported by the Scan Delegator The Broadcast Isochronous Group not encrypted
-
typedef enum bt_bap_big_enc_state esp_ble_audio_bap_big_enc_state_t
Broadcast Isochronous Group encryption state reported by the Scan Delegator Audio Stream Endpoint Idle state
-
typedef enum bt_bap_ep_state esp_ble_audio_bap_ep_state_t
Endpoint states No reason
-
typedef enum bt_bap_ascs_reason esp_ble_audio_bap_ascs_reason_t
Response Reasons Server completed operation successfully
-
typedef enum bt_bap_ascs_rsp_code esp_ble_audio_bap_ascs_rsp_code_t
Response Status Code
-
typedef struct bt_bap_base esp_ble_audio_bap_base_t
Broadcast Audio Source Endpoint (BASE) structure
-
typedef struct bt_bap_base_subgroup esp_ble_audio_bap_base_subgroup_t
Broadcast Audio Source Endpoint (BASE) subgroup structure
-
typedef struct bt_bap_base_codec_id esp_ble_audio_bap_base_codec_id_t
Codec ID structure for a Broadcast Audio Source Endpoint (BASE)
-
typedef struct bt_bap_base_subgroup_bis esp_ble_audio_bap_base_subgroup_bis_t
BIS structure for each BIS in a Broadcast Audio Source Endpoint (BASE) subgroup
-
typedef struct bt_bap_qos_cfg esp_ble_audio_bap_qos_cfg_t
QoS configuration structure
-
typedef struct bt_bap_qos_cfg_pref esp_ble_audio_bap_qos_cfg_pref_t
Audio Stream Quality of Service Preference structure
-
typedef struct bt_bap_ep esp_ble_audio_bap_ep_t
Audio Endpoint structure
-
typedef struct bt_bap_ep_info esp_ble_audio_bap_ep_info_t
Structure holding information of audio stream endpoint
-
typedef struct bt_bap_stream esp_ble_audio_bap_stream_t
Basic Audio Profile stream structure
-
typedef struct bt_bap_stream_ops esp_ble_audio_bap_stream_ops_t
Stream operation
-
typedef struct bt_bap_ascs_rsp esp_ble_audio_bap_ascs_rsp_t
Structure storing values of fields of ASE Control Point notification
-
typedef struct bt_bap_bass_subgroup esp_ble_audio_bap_bass_subgroup_t
Struct to hold subgroup specific information for the receive state
-
typedef struct bt_bap_unicast_group esp_ble_audio_bap_unicast_group_t
Audio Unicast Group structure
-
typedef struct bt_bap_unicast_group_stream_param esp_ble_audio_bap_unicast_group_stream_param_t
Parameter struct for each stream in the unicast group
-
typedef struct bt_bap_unicast_group_stream_pair_param esp_ble_audio_bap_unicast_group_stream_pair_param_t
Parameter struct for the unicast group functions
-
typedef struct bt_bap_unicast_group_param esp_ble_audio_bap_unicast_group_param_t
Parameters for creating unicast groups
-
typedef struct bt_bap_unicast_server_register_param esp_ble_audio_bap_unicast_server_register_param_t
Structure for registering Unicast Server
-
typedef struct bt_bap_unicast_server_cb esp_ble_audio_bap_unicast_server_cb_t
Unicast Server callback structure
-
typedef struct bt_bap_unicast_client_cb esp_ble_audio_bap_unicast_client_cb_t
Unicast Client callback structure
-
typedef esp_ble_iso_ext_adv_info_t esp_ble_audio_bap_broadcast_adv_info_t
Broadcast Source advertising information
-
typedef struct bt_bap_broadcast_source_cb esp_ble_audio_bap_broadcast_source_cb_t
Broadcast Source callback structure
-
typedef struct bt_bap_broadcast_source esp_ble_audio_bap_broadcast_source_t
Broadcast Source structure
-
typedef struct bt_bap_broadcast_source_stream_param esp_ble_audio_bap_broadcast_source_stream_param_t
Broadcast Source stream parameters
-
typedef struct bt_bap_broadcast_source_subgroup_param esp_ble_audio_bap_broadcast_source_subgroup_param_t
Broadcast Source subgroup parameters
-
typedef struct bt_bap_broadcast_source_param esp_ble_audio_bap_broadcast_source_param_t
Broadcast Source create parameters
-
typedef struct bt_bap_broadcast_sink esp_ble_audio_bap_broadcast_sink_t
Broadcast Sink handle
-
typedef struct bt_bap_broadcast_sink_cb esp_ble_audio_bap_broadcast_sink_cb_t
Broadcast Audio Sink callback structure
-
typedef struct bt_bap_broadcast_assistant_cb esp_ble_audio_bap_broadcast_assistant_cb_t
Struct to hold the Basic Audio Profile Broadcast Assistant callbacks
-
typedef struct bt_bap_broadcast_assistant_add_src_param esp_ble_audio_bap_broadcast_assistant_add_src_param_t
Parameters for adding a source to a Broadcast Audio Scan Service server
-
typedef struct bt_bap_broadcast_assistant_mod_src_param esp_ble_audio_bap_broadcast_assistant_mod_src_param_t
Parameters for modifying a source
-
typedef struct bt_bap_scan_delegator_cb esp_ble_audio_bap_scan_delegator_cb_t
Struct to hold the Basic Audio Profile Scan Delegator callbacks
-
typedef struct bt_bap_scan_delegator_recv_state esp_ble_audio_bap_scan_delegator_recv_state_t
Represents the Broadcast Audio Scan Service receive state
-
typedef struct bt_bap_scan_delegator_add_src_param esp_ble_audio_bap_scan_delegator_add_src_param_t
Parameters for adding a source by Scan Delegator
-
typedef struct bt_bap_scan_delegator_mod_src_param esp_ble_audio_bap_scan_delegator_mod_src_param_t
Parameters for modifying a source by Scan Delegator
Published Audio Capabilities (PACS)
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_pacs_api.h
This header file can be included with:
#include "esp_ble_audio_pacs_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_err_t esp_ble_audio_pacs_register(const esp_ble_audio_pacs_register_param_t *param)
Register the Published Audio Capability Service instance.
- Parameters:
param -- PACS register parameters.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_pacs_unregister(void)
Unregister the Published Audio Capability Service instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_pacs_cap_register(esp_ble_audio_dir_t dir, esp_ble_audio_pacs_cap_t *cap)
Register Published Audio Capability.
Register Audio Local Capability.
- Parameters:
dir -- Direction of the endpoint to register capability for.
cap -- Capability structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_pacs_cap_unregister(esp_ble_audio_dir_t dir, esp_ble_audio_pacs_cap_t *cap)
Unregister Published Audio Capability.
Unregister Audio Local Capability.
- Parameters:
dir -- Direction of the endpoint to unregister capability for.
cap -- Capability structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_pacs_set_location(esp_ble_audio_dir_t dir, esp_ble_audio_location_t location)
Set the location for an endpoint type.
- Parameters:
dir -- Direction of the endpoints to change location for.
location -- The location to be set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_pacs_set_available_contexts(esp_ble_audio_dir_t dir, esp_ble_audio_context_t contexts)
Set the available contexts for an endpoint type.
- Parameters:
dir -- Direction of the endpoints to change available contexts for.
contexts -- The contexts to be set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_ble_audio_context_t esp_ble_audio_pacs_get_available_contexts(esp_ble_audio_dir_t dir)
Get the available contexts for an endpoint type.
- Parameters:
dir -- Direction of the endpoints to get contexts for.
- Returns:
Bitmask of available contexts.
-
esp_err_t esp_ble_audio_pacs_conn_set_available_contexts_for_conn(uint16_t conn_handle, esp_ble_audio_dir_t dir, esp_ble_audio_context_t *contexts)
Set the available contexts for a given connection.
This function sets the available contexts value for a given connection. The Available Context Value is reset to default on ACL disconnection.
- Parameters:
conn_handle -- Connection handle.
dir -- Direction of the endpoints to change available contexts for.
contexts -- The contexts to be set or NULL to reset to default.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_ble_audio_context_t esp_ble_audio_pacs_get_available_contexts_for_conn(uint16_t conn_handle, esp_ble_audio_dir_t dir)
Get the available contexts for a given connection.
This server function returns the available contexts value for a given connection.
- Parameters:
conn_handle -- Connection handle.
dir -- Direction of the endpoints to get contexts for.
- Returns:
Bitmask of available contexts.
-
esp_err_t esp_ble_audio_pacs_set_supported_contexts(esp_ble_audio_dir_t dir, esp_ble_audio_context_t contexts)
Set the supported contexts for an endpoint type.
- Parameters:
dir -- Direction of the endpoints to change available contexts for.
contexts -- The contexts to be set.
- Returns:
ESP_OK on success, or an error code on failure.
Type Definitions
-
typedef struct bt_pacs_register_param esp_ble_audio_pacs_register_param_t
Structure for registering PACS
-
typedef struct bt_pacs_cap esp_ble_audio_pacs_cap_t
Published Audio Capability structure.
Gaming Audio Profile (GMAP)
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_gmap_api.h
This header file can be included with:
#include "esp_ble_audio_gmap_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_err_t esp_ble_audio_gmap_cb_register(const esp_ble_audio_gmap_cb_t *cb)
Registers the callbacks used by the Gaming Audio Profile.
- Parameters:
cb -- The callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_gmap_discover(uint16_t conn_handle)
Discover Gaming Service on a remote device.
Procedure to find a Gaming Service on a server identified by
conn_handle.- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_gmap_register(esp_ble_audio_gmap_role_t role, esp_ble_audio_gmap_feat_t features)
Adds GMAS instance to database and sets the received Gaming Audio Profile role(s).
- Parameters:
role -- Gaming Audio Profile role(s) of the device (one or multiple).
features -- Features of the roles. If a role is not in the
roleparameter, then the feature value for that role is simply ignored.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_gmap_set_role(esp_ble_audio_gmap_role_t role, esp_ble_audio_gmap_feat_t features)
Set one or multiple Gaming Audio Profile roles and features dynamically.
Previously registered value will be overwritten. If there is a role change, this will trigger a Gaming Audio Service (GMAS) service change. If there is only a feature change, no service change will happen.
- Parameters:
role -- Gaming Audio Profile role(s).
features -- Features of the roles. If a role is not in the
roleparameter, then the feature value for that role is simply ignored.
- Returns:
ESP_OK on success, or an error code on failure.
Macros
-
ESP_BLE_AUDIO_GMAP_ROLE_UGG
< Gaming Role Unicast Game Gateway Gaming Role Unicast Game Terminal
-
ESP_BLE_AUDIO_GMAP_ROLE_UGT
Gaming Role Broadcast Game Sender
-
ESP_BLE_AUDIO_GMAP_ROLE_BGS
Gaming Role Broadcast Game Receiver
-
ESP_BLE_AUDIO_GMAP_ROLE_BGR
-
ESP_BLE_AUDIO_GMAP_UGG_FEAT_MULTIPLEX
96 kbps source support
-
ESP_BLE_AUDIO_GMAP_UGG_FEAT_96KBPS_SOURCE
Support for receiving at least two channels of audio, each in a separate CIS
-
ESP_BLE_AUDIO_GMAP_UGG_FEAT_MULTISINK
-
ESP_BLE_AUDIO_GMAP_UGT_FEAT_SOURCE
80 kbps source support
-
ESP_BLE_AUDIO_GMAP_UGT_FEAT_80KBPS_SOURCE
Sink support
-
ESP_BLE_AUDIO_GMAP_UGT_FEAT_SINK
64 kbps sink support
-
ESP_BLE_AUDIO_GMAP_UGT_FEAT_64KBPS_SINK
Support for receiving multiple LC3 codec frames per block in an SDU
-
ESP_BLE_AUDIO_GMAP_UGT_FEAT_MULTIPLEX
Support for receiving at least two audio channels, each in a separate CIS
-
ESP_BLE_AUDIO_GMAP_UGT_FEAT_MULTISINK
Support for sending at least two audio channels, each in a separate CIS
-
ESP_BLE_AUDIO_GMAP_UGT_FEAT_MULTISOURCE
-
ESP_BLE_AUDIO_GMAP_BGS_FEAT_96KBPS
-
ESP_BLE_AUDIO_GMAP_BGR_FEAT_MULTISINK
Support for receiving multiple LC3 codec frames per block in an SDU
-
ESP_BLE_AUDIO_GMAP_BGR_FEAT_MULTIPLEX
Type Definitions
-
typedef enum bt_gmap_role esp_ble_audio_gmap_role_t
Gaming Role bitfield Support transmitting multiple LC3 codec frames per block in an SDU
-
typedef enum bt_gmap_ugg_feat esp_ble_audio_gmap_ugg_feat_t
Unicast Game Gateway Feature bitfield Source support
-
typedef enum bt_gmap_ugt_feat esp_ble_audio_gmap_ugt_feat_t
Unicast Game Terminal Feature bitfield 96 kbps support
-
typedef enum bt_gmap_bgs_feat esp_ble_audio_gmap_bgs_feat_t
Broadcast Game Receiver Feature bitfield Support for receiving at least two audio channels, each in a separate BIS
-
typedef enum bt_gmap_bgr_feat esp_ble_audio_gmap_bgr_feat_t
Broadcast Game Receiver Feature bitfield
-
typedef struct bt_gmap_cb esp_ble_audio_gmap_cb_t
Hearing Access Service Client callback structure
-
typedef struct bt_gmap_feat esp_ble_audio_gmap_feat_t
Broadcast Game Receiver Feature bitfield
Volume Control Profile (VCP)
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_vcp_api.h
This header file can be included with:
#include "esp_ble_audio_vcp_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_err_t esp_ble_audio_vcp_vol_rend_included_get(esp_ble_audio_vcp_included_t *included)
Get Volume Control Service included services.
Returns a pointer to a struct that contains information about the Volume Control Service included service instances, such as pointers to the Volume Offset Control Service (Volume Offset Control Service) or Audio Input Control Service (AICS) instances.
- Parameters:
included -- Pointer to store the result in.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_rend_register(esp_ble_audio_vcp_vol_rend_register_param_t *param)
Register the Volume Control Service.
This will register and enable the service and make it discoverable by clients.
- Parameters:
param -- Volume Control Service register parameters.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_rend_set_step(uint8_t volume_step)
Set the Volume Control Service volume step size.
This can only be done as the server.
- Parameters:
volume_step -- The volume step size (1-255).
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_rend_get_state(void)
Get the Volume Control Service volume state.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_rend_get_flags(void)
Get the Volume Control Service flags.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_rend_vol_down(void)
Turn the volume down by one step on the server.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_rend_vol_up(void)
Turn the volume up by one step on the server.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_rend_unmute_vol_down(void)
Turn the volume down and unmute the server.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_rend_unmute_vol_up(void)
Turn the volume up and unmute the server.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_rend_set_vol(uint8_t volume)
Set the volume on the server.
- Parameters:
volume -- The absolute volume to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_rend_unmute(void)
Unmute the server.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_rend_mute(void)
Mute the server.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_ctlr_cb_register(esp_ble_audio_vcp_vol_ctlr_cb_t *cb)
Registers the callbacks used by the Volume Controller.
- Parameters:
cb -- The callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_ctlr_cb_unregister(esp_ble_audio_vcp_vol_ctlr_cb_t *cb)
Unregisters the callbacks used by the Volume Controller.
- Parameters:
cb -- The callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_ctlr_discover(uint16_t conn_handle, esp_ble_audio_vcp_vol_ctlr_t **vol_ctlr)
Discover Volume Control Service and included services.
This will start a GATT discovery and setup handles and subscriptions. This shall be called once before any other actions can be executed for the peer device.
This shall only be done as the client,
- Parameters:
conn_handle -- Connection handle.
vol_ctlr -- Valid remote instance object on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_ble_audio_vcp_vol_ctlr_t *esp_ble_audio_vcp_vol_ctlr_get_by_conn(uint16_t conn_handle)
Get the volume controller from a connection pointer.
Get the Volume Control Profile Volume Controller pointer from a connection. Only volume controllers that have been initiated can be retrieved.
- Parameters:
conn_handle -- Connection handle.
- Returns:
Pointer to a Volume Control Profile Volume Controller instance. NULL if the connection has not been found has not done discovery yet.
-
esp_err_t esp_ble_audio_vcp_vol_ctlr_included_get(esp_ble_audio_vcp_vol_ctlr_t *vol_ctlr, esp_ble_audio_vcp_included_t *included)
Get Volume Control Service included services.
Returns a pointer to a struct that contains information about the Volume Control Service included service instances, such as pointers to the Volume Offset Control Service (Volume Offset Control Service) or Audio Input Control Service (AICS) instances.
- Parameters:
vol_ctlr -- Volume Controller instance pointer.
included -- Pointer to store the result in.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_ctlr_read_state(esp_ble_audio_vcp_vol_ctlr_t *vol_ctlr)
Read the volume state of a remote Volume Renderer.
- Parameters:
vol_ctlr -- Volume Controller instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_ctlr_read_flags(esp_ble_audio_vcp_vol_ctlr_t *vol_ctlr)
Read the volume flags of a remote Volume Renderer.
- Parameters:
vol_ctlr -- Volume Controller instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_ctlr_vol_down(esp_ble_audio_vcp_vol_ctlr_t *vol_ctlr)
Turn the volume down one step on a remote Volume Renderer.
- Parameters:
vol_ctlr -- Volume Controller instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_ctlr_vol_up(esp_ble_audio_vcp_vol_ctlr_t *vol_ctlr)
Turn the volume up one step on a remote Volume Renderer.
- Parameters:
vol_ctlr -- Volume Controller instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_ctlr_unmute_vol_down(esp_ble_audio_vcp_vol_ctlr_t *vol_ctlr)
Turn the volume down one step and unmute on a remote Volume Renderer.
- Parameters:
vol_ctlr -- Volume Controller instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_ctlr_unmute_vol_up(esp_ble_audio_vcp_vol_ctlr_t *vol_ctlr)
Turn the volume up one step and unmute on a remote Volume Renderer.
- Parameters:
vol_ctlr -- Volume Controller instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_ctlr_set_vol(esp_ble_audio_vcp_vol_ctlr_t *vol_ctlr, uint8_t volume)
Set the absolute volume on a remote Volume Renderer.
- Parameters:
vol_ctlr -- Volume Controller instance pointer.
volume -- The absolute volume to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_ctlr_unmute(esp_ble_audio_vcp_vol_ctlr_t *vol_ctlr)
Unmute a remote Volume Renderer.
- Parameters:
vol_ctlr -- Volume Controller instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vcp_vol_ctlr_mute(esp_ble_audio_vcp_vol_ctlr_t *vol_ctlr)
Mute a remote Volume Renderer.
- Parameters:
vol_ctlr -- Volume Controller instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
Macros
-
ESP_BLE_AUDIO_VCP_STATE_UNMUTED
< The volume state is unmuted The volume state is muted
-
ESP_BLE_AUDIO_VCP_STATE_MUTED
Type Definitions
-
typedef struct bt_vcp_included esp_ble_audio_vcp_included_t
Volume Control Service included services
-
typedef struct bt_vcp_vol_ctlr esp_ble_audio_vcp_vol_ctlr_t
Volume Control Service instance
-
typedef struct bt_vcp_vol_ctlr_cb esp_ble_audio_vcp_vol_ctlr_cb_t
Struct to hold the Volume Controller callbacks
-
typedef struct bt_vcp_vol_rend_cb esp_ble_audio_vcp_vol_rend_cb_t
Struct to hold the Volume Renderer callbacks
-
typedef struct bt_vcp_vol_rend_register_param esp_ble_audio_vcp_vol_rend_register_param_t
Register structure for Volume Control Service
Volume Offset Control Service (VOCS)
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_vocs_api.h
This header file can be included with:
#include "esp_ble_audio_vocs_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_ble_audio_vocs_t *esp_ble_audio_vocs_free_instance_get(void)
Get a free service instance of Volume Offset Control Service from the pool.
- Returns:
Volume Offset Control Service instance in case of success or NULL in case of error.
-
void *esp_ble_audio_vocs_svc_decl_get(esp_ble_audio_vocs_t *vocs)
Get the service declaration attribute.
The first service attribute returned can be included in any other GATT service.
- Parameters:
vocs -- Volume Offset Control Service instance.
- Returns:
Pointer to the attributes of the service.
-
esp_err_t esp_ble_audio_vocs_register(esp_ble_audio_vocs_t *vocs, const esp_ble_audio_vocs_register_param_t *param)
Register the Volume Offset Control Service instance.
- Parameters:
vocs -- Volume Offset Control Service instance.
param -- Volume Offset Control Service register parameters.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vocs_state_get(esp_ble_audio_vocs_t *inst)
Read the Volume Offset Control Service offset state.
- Parameters:
inst -- Pointer to the Volume Offset Control Service instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vocs_state_set(esp_ble_audio_vocs_t *inst, int16_t offset)
Set the Volume Offset Control Service offset state.
- Parameters:
inst -- Pointer to the Volume Offset Control Service instance.
offset -- The offset to set (-255 to 255).
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vocs_location_get(esp_ble_audio_vocs_t *inst)
Read the Volume Offset Control Service location.
- Parameters:
inst -- Pointer to the Volume Offset Control Service instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vocs_location_set(esp_ble_audio_vocs_t *inst, uint32_t location)
Set the Volume Offset Control Service location.
- Parameters:
inst -- Pointer to the Volume Offset Control Service instance.
location -- The location to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vocs_description_get(esp_ble_audio_vocs_t *inst)
Read the Volume Offset Control Service output description.
- Parameters:
inst -- Pointer to the Volume Offset Control Service instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vocs_description_set(esp_ble_audio_vocs_t *inst, const char *description)
Set the Volume Offset Control Service description.
- Parameters:
inst -- Pointer to the Volume Offset Control Service instance.
description -- The UTF-8 encoded string description to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_vocs_client_cb_register(esp_ble_audio_vocs_t *inst, esp_ble_audio_vocs_cb_t *cb)
Registers the callbacks for the Volume Offset Control Service client.
- Parameters:
inst -- Pointer to the Volume Offset Control Service client instance.
cb -- Pointer to the callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_ble_audio_vocs_t *esp_ble_audio_vocs_client_free_instance_get(void)
Returns a pointer to a Volume Offset Control Service client instance.
- Returns:
Pointer to the instance, or NULL if no free instances are left.
-
esp_err_t esp_ble_audio_vocs_discover(uint16_t conn_handle, esp_ble_audio_vocs_t *inst, const esp_ble_audio_vocs_discover_param_t *param)
Discover a Volume Offset Control Service.
Attempts to discover a Volume Offset Control Service on a server given the
param.- Parameters:
conn_handle -- Connection handle.
inst -- Pointer to the Volume Offset Control Service client instance.
param -- Pointer to the parameters.
- Returns:
ESP_OK on success, or an error code on failure.
Macros
-
ESP_BLE_AUDIO_VOCS_MIN_OFFSET
< Minimum offset value Maximum offset value
-
ESP_BLE_AUDIO_VOCS_MAX_OFFSET
Type Definitions
-
typedef struct bt_vocs esp_ble_audio_vocs_t
Volume Offset Control Service instance
-
typedef struct bt_vocs_cb esp_ble_audio_vocs_cb_t
Struct to hold the Volume Offset Control Service callbacks
-
typedef struct bt_vocs_register_param esp_ble_audio_vocs_register_param_t
Structure for registering a Volume Offset Control Service instance
-
typedef struct bt_vocs_discover_param esp_ble_audio_vocs_discover_param_t
Structure for discovering a Volume Offset Control Service instance
Audio Input Control Service (AICS)
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_aics_api.h
This header file can be included with:
#include "esp_ble_audio_aics_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_ble_audio_aics_t *esp_ble_audio_aics_free_instance_get(void)
Get a free instance of Audio Input Control Service from the pool.
- Returns:
Audio Input Control Service instance in case of success or NULL in case of error.
-
void *esp_ble_audio_aics_svc_decl_get(esp_ble_audio_aics_t *aics)
Get the service declaration attribute.
The first service attribute returned can be included in any other GATT service.
- Parameters:
aics -- Audio Input Control Service instance.
- Returns:
Pointer to the attributes of the service.
-
esp_err_t esp_ble_audio_aics_register(esp_ble_audio_aics_t *aics, esp_ble_audio_aics_register_param_t *param)
Initialize the Audio Input Control Service instance.
- Parameters:
aics -- Audio Input Control Service instance.
param -- Audio Input Control Service register parameters.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_activate(esp_ble_audio_aics_t *inst)
Activates an Audio Input Control Service instance.
Audio Input Control Services are activated by default, but this will allow the server reactivate an Audio Input Control Service instance after it has been deactivated.
- Parameters:
inst -- The instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_deactivate(esp_ble_audio_aics_t *inst)
Deactivates an Audio Input Control Service instance.
Audio Input Control Services are activated by default, but this will allow the server to deactivate an Audio Input Control Service.
- Parameters:
inst -- The instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_state_get(esp_ble_audio_aics_t *inst)
Read the Audio Input Control Service input state.
- Parameters:
inst -- The instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_gain_setting_get(esp_ble_audio_aics_t *inst)
Read the Audio Input Control Service gain settings.
- Parameters:
inst -- The instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_type_get(esp_ble_audio_aics_t *inst)
Read the Audio Input Control Service input type.
- Parameters:
inst -- The instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_status_get(esp_ble_audio_aics_t *inst)
Read the Audio Input Control Service input status.
- Parameters:
inst -- The instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_disable_mute(esp_ble_audio_aics_t *inst)
Disable mute in the Audio Input Control Service.
- Parameters:
inst -- The instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_unmute(esp_ble_audio_aics_t *inst)
Unmute the Audio Input Control Service input.
- Parameters:
inst -- The instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_mute(esp_ble_audio_aics_t *inst)
Mute the Audio Input Control Service input.
- Parameters:
inst -- The instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_gain_set_manual_only(esp_ble_audio_aics_t *inst)
Set manual only gain mode in Audio Input Control Service.
- Parameters:
inst -- The instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_gain_set_auto_only(esp_ble_audio_aics_t *inst)
Set automatic only gain mode in Audio Input Control Service.
- Parameters:
inst -- The instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_manual_gain_set(esp_ble_audio_aics_t *inst)
Set input gain to manual.
- Parameters:
inst -- The instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_automatic_gain_set(esp_ble_audio_aics_t *inst)
Set the input gain to automatic.
- Parameters:
inst -- The instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_gain_set(esp_ble_audio_aics_t *inst, int8_t gain)
Set the input gain.
- Parameters:
inst -- The instance pointer.
gain -- The gain to set (-128 to 127) in gain setting units.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_description_get(esp_ble_audio_aics_t *inst)
Read the Audio Input Control Service description.
- Parameters:
inst -- The instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_description_set(esp_ble_audio_aics_t *inst, const char *description)
Set the Audio Input Control Service description.
- Parameters:
inst -- The instance pointer.
description -- The description as an UTF-8 encoded string.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_aics_discover(uint16_t conn_handle, esp_ble_audio_aics_t *inst, const esp_ble_audio_aics_discover_param_t *param)
Discover an Audio Input Control Service.
Attempts to discover an Audio Input Control Service on a server given the
param.- Parameters:
conn_handle -- Connection handle.
inst -- The instance pointer.
param -- Pointer to the parameters.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_ble_audio_aics_t *esp_ble_audio_aics_client_free_instance_get(void)
Get a new Audio Input Control Service client instance.
- Returns:
Pointer to the instance, or NULL if no free instances are left.
-
esp_err_t esp_ble_audio_aics_client_cb_register(esp_ble_audio_aics_t *inst, esp_ble_audio_aics_cb_t *cb)
Registers the callbacks for the Audio Input Control Service client.
- Parameters:
inst -- The instance pointer.
cb -- Pointer to the callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
Macros
-
ESP_BLE_AUDIO_AICS_STATE_UNMUTED
< The mute state is unmuted The mute state is muted
-
ESP_BLE_AUDIO_AICS_STATE_MUTED
The mute state is disabled
-
ESP_BLE_AUDIO_AICS_STATE_MUTE_DISABLED
The gain mode is manual only and cannot be changed to automatic
-
ESP_BLE_AUDIO_AICS_MODE_MANUAL_ONLY
The gain mode is automatic only and cannot be changed to manual
-
ESP_BLE_AUDIO_AICS_MODE_AUTO_ONLY
The gain mode is manual
-
ESP_BLE_AUDIO_AICS_MODE_MANUAL
The gain mode is automatic
-
ESP_BLE_AUDIO_AICS_MODE_AUTO
The input is unspecified
-
ESP_BLE_AUDIO_AICS_INPUT_TYPE_UNSPECIFIED
The input is a Bluetooth Audio Stream
-
ESP_BLE_AUDIO_AICS_INPUT_TYPE_BLUETOOTH
The input is a microphone
-
ESP_BLE_AUDIO_AICS_INPUT_TYPE_MICROPHONE
The input is analog
-
ESP_BLE_AUDIO_AICS_INPUT_TYPE_ANALOG
The input is digital
-
ESP_BLE_AUDIO_AICS_INPUT_TYPE_DIGITAL
The input is a radio (AM/FM/XM/etc.)
-
ESP_BLE_AUDIO_AICS_INPUT_TYPE_RADIO
The input is a Streaming Audio Source
-
ESP_BLE_AUDIO_AICS_INPUT_TYPE_STREAMING
The input is transparent / pass-through
-
ESP_BLE_AUDIO_AICS_INPUT_TYPE_AMBIENT
Type Definitions
-
typedef struct bt_aics esp_ble_audio_aics_t
Audio Input Control Service instance.
-
typedef struct bt_aics_cb esp_ble_audio_aics_cb_t
Structure to hold callbacks for Audio Input Control Service.
-
typedef struct bt_aics_register_param esp_ble_audio_aics_register_param_t
Structure for initializing an Audio Input Control Service instance.
-
typedef struct bt_aics_discover_param esp_ble_audio_aics_discover_param_t
Structure for discovering an Audio Input Control Service instance.
Microphone Control Profile (MICP)
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_micp_api.h
This header file can be included with:
#include "esp_ble_audio_micp_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_err_t esp_ble_audio_micp_mic_dev_register(esp_ble_audio_micp_mic_dev_register_param_t *param)
Initialize the Microphone Control Profile Microphone Device.
This will enable the Microphone Control Service instance and make it discoverable by Microphone Controllers.
- Parameters:
param -- Pointer to an initialization structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_micp_mic_dev_included_get(esp_ble_audio_micp_included_t *included)
Get Microphone Device included services.
Returns a pointer to a struct that contains information about the Microphone Device included Audio Input Control Service instances.
- Parameters:
included -- Pointer to store the result in.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_micp_mic_dev_unmute(void)
Unmute the Microphone Device.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_micp_mic_dev_mute(void)
Mute the Microphone Device.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_micp_mic_dev_mute_disable(void)
Disable the mute functionality on the Microphone Device.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_micp_mic_dev_mute_get(void)
Read the mute state on the Microphone Device.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_micp_mic_ctlr_included_get(esp_ble_audio_micp_mic_ctlr_t *mic_ctlr, esp_ble_audio_micp_included_t *included)
Get Microphone Control Profile included services.
Returns a pointer to a struct that contains information about the Microphone Control Profile included services instances, such as pointers to the Audio Input Control Service instances.
- Parameters:
mic_ctlr -- Microphone Controller instance pointer.
included -- Pointer to store the result in.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_ble_audio_micp_mic_ctlr_t *esp_ble_audio_micp_mic_ctlr_get_by_conn(uint16_t conn_handle)
Get the Microphone controller from a connection pointer.
Only Microphone controllers that have been initiated can be retrieved.
- Parameters:
conn_handle -- Connection handle.
- Returns:
Pointer to a Microphone controller instance or NULL if not found.
-
esp_err_t esp_ble_audio_micp_mic_ctlr_discover(uint16_t conn_handle, esp_ble_audio_micp_mic_ctlr_t **mic_ctlr)
Discover Microphone Control Service.
This will start a GATT discovery and setup handles and subscriptions. This shall be called once before any other actions can be executed for the peer device.
- Parameters:
conn_handle -- Connection handle.
mic_ctlr -- Valid remote instance object on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_micp_mic_ctlr_unmute(esp_ble_audio_micp_mic_ctlr_t *mic_ctlr)
Unmute a remote Microphone Device.
- Parameters:
mic_ctlr -- Microphone Controller instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_micp_mic_ctlr_mute(esp_ble_audio_micp_mic_ctlr_t *mic_ctlr)
Mute a remote Microphone Device.
- Parameters:
mic_ctlr -- Microphone Controller instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_micp_mic_ctlr_mute_get(esp_ble_audio_micp_mic_ctlr_t *mic_ctlr)
Read the mute state of a remote Microphone Device.
- Parameters:
mic_ctlr -- Microphone Controller instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_micp_mic_ctlr_cb_register(esp_ble_audio_micp_mic_ctlr_cb_t *cb)
Registers the callbacks used by Microphone Controller.
This can only be done as the client.
- Parameters:
cb -- The callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
Macros
-
ESP_BLE_AUDIO_MICP_MUTE_UNMUTED
< The microphone state is unmuted The microphone state is muted
-
ESP_BLE_AUDIO_MICP_MUTE_MUTED
The microphone state is disabled and cannot be muted or unmuted
-
ESP_BLE_AUDIO_MICP_MUTE_DISABLED
Type Definitions
-
typedef struct bt_micp_mic_ctlr esp_ble_audio_micp_mic_ctlr_t
Microphone Controller instance
-
typedef struct bt_micp_mic_ctlr_cb esp_ble_audio_micp_mic_ctlr_cb_t
Struct to hold the Microphone Controller callbacks
-
typedef struct bt_micp_mic_dev_cb esp_ble_audio_micp_mic_dev_cb_t
Struct to hold the Microphone Device callbacks
-
typedef struct bt_micp_mic_dev_register_param esp_ble_audio_micp_mic_dev_register_param_t
Register parameters structure for Microphone Control Service
-
typedef struct bt_micp_included esp_ble_audio_micp_included_t
Microphone Control Profile included services
Hearing Access Profile (HAP)
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_has_api.h
This header file can be included with:
#include "esp_ble_audio_has_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_err_t esp_ble_audio_has_client_cb_register(const esp_ble_audio_has_client_cb_t *cb)
Registers the callbacks used by the Hearing Access Service client.
- Parameters:
cb -- The callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_has_client_discover(uint16_t conn_handle)
Discover Hearing Access Service on a remote device.
Client method to find a Hearing Access Service on a server identified by
conn_handle.- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_has_client_presets_read(esp_ble_audio_has_t *has, uint8_t index, uint8_t max_count)
Read Preset Records.
Client method to read up to
max_countpresets starting from givenindex.- Parameters:
has -- Pointer to the Hearing Access Service object.
index -- The index to start with.
max_count -- Maximum number of presets to read.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_has_client_preset_set(esp_ble_audio_has_t *has, uint8_t index, bool sync)
Set Active Preset.
Client procedure to set preset identified by
indexas active.- Parameters:
has -- Pointer to the Hearing Access Service object.
index -- Preset index to activate.
sync -- Request active preset synchronization in set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_has_client_preset_next(esp_ble_audio_has_t *has, bool sync)
Activate Next Preset.
Client procedure to set next available preset as active.
- Parameters:
has -- Pointer to the Hearing Access Service object.
sync -- Request active preset synchronization in set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_has_client_preset_prev(esp_ble_audio_has_t *has, bool sync)
Activate Previous Preset.
Client procedure to set previous available preset as active.
- Parameters:
has -- Pointer to the Hearing Access Service object.
sync -- Request active preset synchronization in set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_has_register(const esp_ble_audio_has_features_param_t *features)
Register the Hearing Access Service instance.
- Parameters:
features -- Hearing Access Service register parameters.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_has_preset_register(const esp_ble_audio_has_preset_register_param_t *param)
Register preset.
Register preset. The preset will be added to the list of exposed preset records.
- Parameters:
param -- Preset registration parameter.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_has_preset_unregister(uint8_t index)
Unregister Preset.
Unregister preset. The preset will be removed from the list of preset records.
- Parameters:
index -- The index of preset that's being requested to unregister.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_has_preset_available(uint8_t index)
Set the preset as available.
This will notify preset availability to peer devices. Only available preset can be selected as active preset.
- Parameters:
index -- The index of preset that's became available.
- Returns:
ESP_OK on success, or an error code on failure.
Set the preset as unavailable.
This will notify preset availability to peer devices. Unavailable preset cannot be selected as active preset.
- Parameters:
index -- The index of preset that's became unavailable.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_has_preset_active_set(uint8_t index)
Set active preset.
Function used to set the preset identified by the
indexas the active preset. The preset index will be notified to peer devices.- Parameters:
index -- Preset index.
- Returns:
ESP_OK on success, or an error code on failure.
-
uint8_t esp_ble_audio_has_preset_active_get(void)
Get active preset.
Function used to get the currently active preset index.
- Returns:
Active preset index.
-
esp_err_t esp_ble_audio_has_preset_name_change(uint8_t index, const char *name)
Change the Preset Name.
Change the name of the preset identified by
index.- Parameters:
index -- The index of the preset to change the name of.
name -- Name to write.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_has_features_set(const esp_ble_audio_has_features_param_t *features)
Change the Hearing Aid Features.
Change the hearing aid features.
- Parameters:
features -- The features to be set.
- Returns:
ESP_OK on success, or an error code on failure.
Macros
-
ESP_BLE_AUDIO_HAS_PRESET_INDEX_NONE
< No index First preset index
-
ESP_BLE_AUDIO_HAS_PRESET_INDEX_FIRST
Last preset index
-
ESP_BLE_AUDIO_HAS_PRESET_INDEX_LAST
Preset name minimum length
-
ESP_BLE_AUDIO_HAS_PRESET_NAME_MIN
Preset name maximum length
-
ESP_BLE_AUDIO_HAS_PRESET_NAME_MAX
No properties set
-
ESP_BLE_AUDIO_HAS_PROP_NONE
Preset name can be written by the client
-
ESP_BLE_AUDIO_HAS_PROP_WRITABLE
Preset availability
-
ESP_BLE_AUDIO_HAS_PROP_AVAILABLE
-
ESP_BLE_AUDIO_HAS_PRESET_SUPPORT
-
ESP_BLE_AUDIO_HAS_HEARING_AID_TYPE_BINAURAL
Two hearing aids that form a Coordinated Set, one for the right ear and one for the left ear of the user. Typically used by a user with bilateral hearing loss.
-
ESP_BLE_AUDIO_HAS_HEARING_AID_TYPE_MONAURAL
A single hearing aid for the left or the right ear. Typically used by a user with unilateral hearing loss.
-
ESP_BLE_AUDIO_HAS_HEARING_AID_TYPE_BANDED
Two hearing aids with a connection to one another that expose a single Bluetooth radio interface.
Type Definitions
-
typedef enum bt_has_properties esp_ble_audio_has_properties_t
Preset Properties values Indicate support for presets
-
typedef enum bt_has_capabilities esp_ble_audio_has_capabilities_t
Hearing Aid device capabilities
-
typedef enum bt_has_hearing_aid_type esp_ble_audio_has_hearing_aid_type_t
Hearing Aid device type
-
typedef struct bt_has esp_ble_audio_has_t
Hearing Access Service object
-
typedef struct bt_has_client_cb esp_ble_audio_has_client_cb_t
Hearing Access Service Client callback structure
-
typedef struct bt_has_features_param esp_ble_audio_has_features_param_t
Structure for registering features of a Hearing Access Service instance
-
typedef struct bt_has_preset_ops esp_ble_audio_has_preset_ops_t
Preset operations structure
-
typedef struct bt_has_preset_record esp_ble_audio_has_preset_record_t
Preset record definition
-
typedef struct bt_has_preset_register_param esp_ble_audio_has_preset_register_param_t
Register structure for preset
Coordinated Set Identification Profile (CSIP)
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_csip_api.h
This header file can be included with:
#include "esp_ble_audio_csip_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
void *esp_ble_audio_csip_set_member_svc_decl_get(const esp_ble_audio_csip_set_member_svc_inst_t *svc_inst)
Get the service declaration attribute.
The first service attribute can be included in any other GATT service.
- Parameters:
svc_inst -- Pointer to the Coordinated Set Identification Service.
- Returns:
The first CSIS attribute instance.
-
esp_err_t esp_ble_audio_csip_set_member_register(const esp_ble_audio_csip_set_member_register_param_t *param, esp_ble_audio_csip_set_member_svc_inst_t **svc_inst)
Register a Coordinated Set Identification Service instance.
This will register and enable the service and make it discoverable by clients.
This shall only be done as a server.
- Parameters:
param -- Coordinated Set Identification Service register parameters.
svc_inst -- Pointer to the registered Coordinated Set Identification Service.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_csip_set_member_unregister(esp_ble_audio_csip_set_member_svc_inst_t *svc_inst)
Unregister a Coordinated Set Identification Service instance.
This will unregister and disable the service instance.
- Parameters:
svc_inst -- Pointer to the registered Coordinated Set Identification Service.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_csip_set_member_sirk(esp_ble_audio_csip_set_member_svc_inst_t *svc_inst, const uint8_t sirk[ESP_BLE_AUDIO_CSIP_SIRK_SIZE])
Set the SIRK of a service instance.
- Parameters:
svc_inst -- Pointer to the registered Coordinated Set Identification Service.
sirk -- The new SIRK.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_csip_set_member_set_size_and_rank(esp_ble_audio_csip_set_member_svc_inst_t *svc_inst, uint8_t size, uint8_t rank)
Set a new size and rank for a service instance.
This function can be used to dynamically change the size and rank of a service instance. It is important to note that a set cannot have multiple devices with the same rank in a set, and it is up to the caller of this function to ensure that. Similarly, it is important that the size is updated on all devices in the set at the same time.
If CONFIG_BT_CSIP_SET_MEMBER_SIZE_NOTIFIABLE is enabled, this will also send a notification to all connected or bonded clients.
- Parameters:
svc_inst -- The service instance.
size -- The new set size.
rank -- The new rank. Ignored if the
svc_instis not lockable.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_csip_set_member_get_info(const esp_ble_audio_csip_set_member_svc_inst_t *svc_inst, esp_ble_audio_csip_set_member_set_info_t *info)
Get information about a service instances.
- Parameters:
svc_inst -- The service instance.
info -- Pointer to a struct to store the information in.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_csip_set_member_generate_rsi(const esp_ble_audio_csip_set_member_svc_inst_t *svc_inst, uint8_t rsi[ESP_BLE_AUDIO_CSIP_RSI_SIZE])
Generate the Resolvable Set Identifier (RSI) value.
This will generate RSI for given
svc_instinstance.- Parameters:
svc_inst -- Pointer to the Coordinated Set Identification Service.
rsi -- Pointer to the 6-octet newly generated RSI data in little-endian.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_csip_set_member_lock(esp_ble_audio_csip_set_member_svc_inst_t *svc_inst, bool lock, bool force)
Locks a specific Coordinated Set Identification Service instance on the server.
- Parameters:
svc_inst -- Pointer to the Coordinated Set Identification Service.
lock -- If true lock the set, if false release the set.
force -- This argument only have meaning when
lockis false (release) and will force release the lock, regardless of who took the lock.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_csip_set_coordinator_discover(uint16_t conn_handle)
Initialise the csip_set_coordinator instance for a connection. This will do a discovery on the device and prepare the instance for following commands.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_ble_audio_csip_set_coordinator_set_member_t *esp_ble_audio_csip_set_coordinator_set_member_by_conn(uint16_t conn_handle)
Get the set member from a connection pointer.
Get the Coordinated Set Identification Profile Set Coordinator pointer from connection handle. Only Set Coordinators that have been initiated can be retrieved.
- Parameters:
conn_handle -- Connection handle.
- Returns:
Pointer to a Coordinated Set Identification Profile Set Coordinator instance. NULL if the connection has not been found or has not done discovery yet.
-
bool esp_ble_audio_csip_set_coordinator_is_set_member(const uint8_t sirk[ESP_BLE_AUDIO_CSIP_SIRK_SIZE], uint8_t data_type, const uint8_t *data, uint8_t data_len)
Check if advertising data indicates a set member.
- Parameters:
sirk -- The SIRK of the set to check against.
data_type -- Type of the advertising data.
data -- Pointer of the advertising data.
data_len -- Length of the advertising data.
- Returns:
True if the advertising data indicates a set member, false otherwise.
-
esp_err_t esp_ble_audio_csip_set_coordinator_register_cb(esp_ble_audio_csip_set_coordinator_cb_t *cb)
Registers callbacks for csip_set_coordinator.
- Parameters:
cb -- Pointer to the callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_csip_set_coordinator_ordered_access(const esp_ble_audio_csip_set_coordinator_set_member_t *members[], uint8_t count, const esp_ble_audio_csip_set_coordinator_set_info_t *set_info, bt_csip_set_coordinator_ordered_access_t cb)
Access Coordinated Set devices in an ordered manner as a client.
This function will read the lock state of all devices and if all devices are in the unlocked state, then
cbwill be called with the same members as provided bymembers, but where the members are ordered by rank (if present).This procedure only works if all the members have the lock characteristic, and all either has rank = 0 or unique ranks.
If any of the members are in the locked state, the procedure will be cancelled.
This can only be done on members that are bonded.
- Parameters:
members -- Array of set members to access.
count -- Number of set members in
members.set_info -- Pointer to the a specific set_info struct, as a member may be part of multiple sets.
cb -- The callback function to be called for each member.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_csip_set_coordinator_lock(const esp_ble_audio_csip_set_coordinator_set_member_t **members, uint8_t count, const esp_ble_audio_csip_set_coordinator_set_info_t *set_info)
Lock an array of set members.
The members will be locked starting from lowest rank going up.
- Parameters:
members -- Array of set members to lock.
count -- Number of set members in
members.set_info -- Pointer to the a specific set_info struct, as a member may be part of multiple sets.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_csip_set_coordinator_release(const esp_ble_audio_csip_set_coordinator_set_member_t **members, uint8_t count, const esp_ble_audio_csip_set_coordinator_set_info_t *set_info)
Release an array of set members.
The members will be released starting from highest rank going down.
- Parameters:
members -- Array of set members to lock.
count -- Number of set members in
members.set_info -- Pointer to the a specific set_info struct, as a member may be part of multiple sets.
- Returns:
ESP_OK on success, or an error code on failure.
Macros
-
ESP_BLE_AUDIO_CSIP_SIRK_SIZE
< Size of the Set Identification Resolving Key (SIRK) Size of the Resolvable Set Identifier (RSI)
-
ESP_BLE_AUDIO_CSIP_RSI_SIZE
Accept the request to read the SIRK as plaintext
-
ESP_BLE_AUDIO_CSIP_READ_SIRK_REQ_RSP_ACCEPT
Accept the request to read the SIRK, but return encrypted SIRK
-
ESP_BLE_AUDIO_CSIP_READ_SIRK_REQ_RSP_ACCEPT_ENC
Reject the request to read the SIRK
-
ESP_BLE_AUDIO_CSIP_READ_SIRK_REQ_RSP_REJECT
SIRK is available only via an OOB procedure
-
ESP_BLE_AUDIO_CSIP_READ_SIRK_REQ_RSP_OOB_ONLY
-
ESP_BLE_AUDIO_CSIP_DATA_RSI(_rsi)
Helper to declare bt_data array including RSI.
This macro is mainly for creating an array of struct bt_data elements.
- Parameters:
_rsi -- Pointer to the RSI value.
Type Definitions
-
typedef struct bt_csip_set_member_cb esp_ble_audio_csip_set_member_cb_t
Callback structure for the Coordinated Set Identification Service
-
typedef struct bt_csip_set_member_svc_inst esp_ble_audio_csip_set_member_svc_inst_t
Coordinated Set Identification Service instance
-
typedef struct bt_csip_set_member_register_param esp_ble_audio_csip_set_member_register_param_t
Register structure for Coordinated Set Identification Service
-
typedef struct bt_csip_set_member_set_info esp_ble_audio_csip_set_member_set_info_t
Struct to hold information about a service instance
-
typedef struct bt_csip_set_coordinator_cb esp_ble_audio_csip_set_coordinator_cb_t
Struct to hold the Coordinated Set Identification Profile Set Coordinator callbacks
-
typedef struct bt_csip_set_coordinator_set_info esp_ble_audio_csip_set_coordinator_set_info_t
Information about a specific set
-
typedef struct bt_csip_set_coordinator_csis_inst esp_ble_audio_csip_set_coordinator_csis_inst_t
Struct representing a coordinated set instance on a remote device
-
typedef struct bt_csip_set_coordinator_set_member esp_ble_audio_csip_set_coordinator_set_member_t
Struct representing a remote device as a set member
Telephone Bearer Service (TBS)
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_tbs_api.h
This header file can be included with:
#include "esp_ble_audio_tbs_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_err_t esp_ble_audio_tbs_accept(uint8_t call_index)
Accept an alerting call.
- Parameters:
call_index -- The index of the call that will be accepted.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_hold(uint8_t call_index)
Hold a call.
- Parameters:
call_index -- The index of the call that will be held.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_retrieve(uint8_t call_index)
Retrieve a call.
- Parameters:
call_index -- The index of the call that will be retrieved.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_terminate(uint8_t call_index)
Terminate a call.
- Parameters:
call_index -- The index of the call that will be terminated.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_originate(uint8_t bearer_index, char *uri, uint8_t *call_index)
Originate a call.
- Parameters:
bearer_index -- The index of the Telephone Bearer.
uri -- The remote URI.
call_index -- Pointer to a value where the new call_index will be stored.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_join(uint8_t call_index_cnt, uint8_t *call_indexes)
Join calls.
- Parameters:
call_index_cnt -- The number of call indexes to join.
call_indexes -- Array of call indexes to join.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_remote_answer(uint8_t call_index)
Notify the server that the remote party answered the call.
- Parameters:
call_index -- The index of the call that was answered.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_remote_hold(uint8_t call_index)
Notify the server that the remote party held the call.
- Parameters:
call_index -- The index of the call that was held.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_remote_retrieve(uint8_t call_index)
Notify the server that the remote party retrieved the call.
- Parameters:
call_index -- The index of the call that was retrieved.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_remote_terminate(uint8_t call_index)
Notify the server that the remote party terminated the call.
- Parameters:
call_index -- The index of the call that was terminated.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_remote_incoming(uint8_t bearer_index, const char *to, const char *from, const char *friendly_name, uint8_t *call_index)
Notify the server of an incoming call.
- Parameters:
bearer_index -- The index of the Telephone Bearer.
to -- The URI that is receiving the call.
from -- The URI of the remote caller.
friendly_name -- The friendly name of the remote caller.
call_index -- The call index on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_set_bearer_provider_name(uint8_t bearer_index, const char *name)
Set a new bearer provider.
- Parameters:
bearer_index -- The index of the Telephone Bearer or ESP_BLE_AUDIO_TBS_GTBS_INDEX for GTBS.
name -- The new bearer provider name.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_set_bearer_technology(uint8_t bearer_index, uint8_t new_technology)
Set a new bearer technology.
- Parameters:
bearer_index -- The index of the Telephone Bearer or ESP_BLE_AUDIO_TBS_GTBS_INDEX for GTBS.
new_technology -- The new bearer technology.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_set_signal_strength(uint8_t bearer_index, uint8_t new_signal_strength)
Update the signal strength reported by the server.
- Parameters:
bearer_index -- The index of the Telephone Bearer or ESP_BLE_AUDIO_TBS_GTBS_INDEX for GTBS.
new_signal_strength -- The new signal strength.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_set_status_flags(uint8_t bearer_index, uint16_t status_flags)
Sets the feature and status value.
- Parameters:
bearer_index -- The index of the Telephone Bearer or ESP_BLE_AUDIO_TBS_GTBS_INDEX for GTBS.
status_flags -- The new feature and status value.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_set_uri_scheme_list(uint8_t bearer_index, const char **uri_list, uint8_t uri_count)
Sets the URI scheme list of a bearer.
- Parameters:
bearer_index -- The index of the Telephone Bearer.
uri_list -- List of URI prefixes (e.g. {"skype", "tel"}).
uri_count -- Number of URI prefixes in
uri_list.
- Returns:
ESP_OK on success, or an error code on failure.
-
void esp_ble_audio_tbs_register_cb(esp_ble_audio_tbs_cb_t *cbs)
Register the callbacks for TBS.
- Parameters:
cbs -- Pointer to the callback structure.
-
esp_err_t esp_ble_audio_tbs_register_bearer(const esp_ble_audio_tbs_register_param_t *param, uint8_t *bearer_index)
Register a Telephone Bearer.
This will register a Telephone Bearer Service (TBS) (or a Generic Telephone Bearer service (GTBS)) with the provided parameters.
As per the TBS specification, the GTBS shall be instantiated for the feature, and as such a GTBS shall always be registered before any TBS can be registered.
- Parameters:
param -- The parameters to initialize the bearer.
bearer_index -- The registered bearer index on success.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_unregister_bearer(uint8_t bearer_index)
Unregister a Telephone Bearer.
This will unregister a Telephone Bearer Service (TBS) (or a Generic Telephone Bearer service (GTBS)) with the provided parameters.
Similarly, all TBS shall be unregistered before the GTBS can be unregistered with.
- Parameters:
bearer_index -- The index of the bearer to unregister.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_discover(uint16_t conn_handle)
Discover TBS for a connection. This will start a GATT discover and setup handles and subscriptions.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_set_signal_strength_interval(uint16_t conn_handle, uint8_t inst_index, uint8_t interval)
Set the signal strength reporting interval for a TBS instance.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
interval -- The interval to write (0-255 seconds).
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_originate_call(uint16_t conn_handle, uint8_t inst_index, const char *uri)
Request to originate a call.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
uri -- The URI of the callee.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_terminate_call(uint16_t conn_handle, uint8_t inst_index, uint8_t call_index)
Request to terminate a call.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
call_index -- The call index to terminate.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_hold_call(uint16_t conn_handle, uint8_t inst_index, uint8_t call_index)
Request to hold a call.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
call_index -- The call index to place on hold.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_accept_call(uint16_t conn_handle, uint8_t inst_index, uint8_t call_index)
Accept an incoming call.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
call_index -- The call index to accept.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_retrieve_call(uint16_t conn_handle, uint8_t inst_index, uint8_t call_index)
Retrieve call from (local) hold.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
call_index -- The call index to retrieve.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_join_calls(uint16_t conn_handle, uint8_t inst_index, const uint8_t *call_indexes, uint8_t count)
Join multiple calls.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
call_indexes -- Array of call indexes.
count -- Number of call indexes in the call_indexes array.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_read_bearer_provider_name(uint16_t conn_handle, uint8_t inst_index)
Read the bearer provider name of a TBS instance.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_read_bearer_uci(uint16_t conn_handle, uint8_t inst_index)
Read the UCI of a TBS instance.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_read_technology(uint16_t conn_handle, uint8_t inst_index)
Read the technology of a TBS instance.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_read_uri_list(uint16_t conn_handle, uint8_t inst_index)
Read the URI schemes list of a TBS instance.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_read_signal_strength(uint16_t conn_handle, uint8_t inst_index)
Read the current signal strength of a TBS instance.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_read_signal_interval(uint16_t conn_handle, uint8_t inst_index)
Read the signal strength reporting interval of a TBS instance.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_read_current_calls(uint16_t conn_handle, uint8_t inst_index)
Read the list of current calls of a TBS instance.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_read_ccid(uint16_t conn_handle, uint8_t inst_index)
Read the content ID of a TBS instance.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_read_call_uri(uint16_t conn_handle, uint8_t inst_index)
Read the call target URI of a TBS instance.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_read_status_flags(uint16_t conn_handle, uint8_t inst_index)
Read the feature and status value of a TBS instance.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_read_call_state(uint16_t conn_handle, uint8_t inst_index)
Read the states of the current calls of a TBS instance.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_read_remote_uri(uint16_t conn_handle, uint8_t inst_index)
Read the remote URI of a TBS instance.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_read_friendly_name(uint16_t conn_handle, uint8_t inst_index)
Read the friendly name of a call for a TBS instance.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_read_optional_opcodes(uint16_t conn_handle, uint8_t inst_index)
Read the supported opcode of a TBS instance.
- Parameters:
conn_handle -- Connection handle.
inst_index -- The index of the TBS instance.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tbs_client_register_cb(esp_ble_audio_tbs_client_cb_t *cbs)
Register the callbacks for CCP.
- Parameters:
cbs -- Pointer to the callback structure.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_ble_audio_tbs_instance_t *esp_ble_audio_tbs_client_get_by_ccid(uint16_t conn_handle, uint8_t ccid)
Look up Telephone Bearer Service instance by CCID.
- Parameters:
conn_handle -- Connection handle.
ccid -- The CCID to lookup a service instance for.
- Returns:
Pointer to TBS instance if found, NULL otherwise.
Macros
-
ESP_BLE_AUDIO_TBS_GTBS_INDEX
The GTBS index denotes whenever a callback is from a Generic Telephone Bearer Service (GTBS) instance, or whenever the client should perform on action on the GTBS instance of the server, rather than any of the specific Telephone Bearer Service instances. A remote party is calling (incoming call).
-
ESP_BLE_AUDIO_TBS_CALL_STATE_INCOMING
-
ESP_BLE_AUDIO_TBS_CALL_STATE_DIALING
The process to call the remote party has started on the server, but the remote party is not being alerted (outgoing call). A remote party is being alerted (outgoing call).
-
ESP_BLE_AUDIO_TBS_CALL_STATE_ALERTING
The call is in an active conversation.
-
ESP_BLE_AUDIO_TBS_CALL_STATE_ACTIVE
-
ESP_BLE_AUDIO_TBS_CALL_STATE_LOCALLY_HELD
The call is connected but held locally. Locally Held implies that either the server or the client can affect the state.
-
ESP_BLE_AUDIO_TBS_CALL_STATE_REMOTELY_HELD
The call is connected but held remotely. Remotely Held means that the state is controlled by the remote party of a call. The call is connected but held both locally and remotely.
-
ESP_BLE_AUDIO_TBS_CALL_STATE_LOCALLY_AND_REMOTELY_HELD
The URI value used to originate a call was formed improperly.
-
ESP_BLE_AUDIO_TBS_REASON_BAD_REMOTE_URI
The call failed.
-
ESP_BLE_AUDIO_TBS_REASON_CALL_FAILED
The remote party ended the call.
-
ESP_BLE_AUDIO_TBS_REASON_REMOTE_ENDED_CALL
The call ended from the server.
-
ESP_BLE_AUDIO_TBS_REASON_SERVER_ENDED_CALL
The line was busy.
-
ESP_BLE_AUDIO_TBS_REASON_LINE_BUSY
Network congestion.
-
ESP_BLE_AUDIO_TBS_REASON_NETWORK_CONGESTED
The client terminated the call.
-
ESP_BLE_AUDIO_TBS_REASON_CLIENT_TERMINATED
No service.
-
ESP_BLE_AUDIO_TBS_REASON_NO_SERVICE
No answer.
-
ESP_BLE_AUDIO_TBS_REASON_NO_ANSWER
Unspecified.
-
ESP_BLE_AUDIO_TBS_REASON_UNSPECIFIED
The opcode write was successful.
-
ESP_BLE_AUDIO_TBS_RESULT_CODE_SUCCESS
An invalid opcode was used for the Call Control Point write.
-
ESP_BLE_AUDIO_TBS_RESULT_CODE_OPCODE_NOT_SUPPORTED
The requested operation cannot be completed.
-
ESP_BLE_AUDIO_TBS_RESULT_CODE_OPERATION_NOT_POSSIBLE
The Call Index used for the Call Control Point write is invalid.
-
ESP_BLE_AUDIO_TBS_RESULT_CODE_INVALID_CALL_INDEX
-
ESP_BLE_AUDIO_TBS_RESULT_CODE_STATE_MISMATCH
The opcode written to the Call Control Point was received when the current Call State for the Call Index was not in the expected state. Lack of internal resources to complete the requested action.
-
ESP_BLE_AUDIO_TBS_RESULT_CODE_OUT_OF_RESOURCES
The Outgoing URI is incorrect or invalid when an Originate opcode is sent.
-
ESP_BLE_AUDIO_TBS_RESULT_CODE_INVALID_URI
Local Hold and Local Retrieve Call Control Point Opcodes supported
-
ESP_BLE_AUDIO_TBS_FEATURE_HOLD
Join Call Control Point Opcode supported
-
ESP_BLE_AUDIO_TBS_FEATURE_JOIN
All Control Point Opcodes supported
-
ESP_BLE_AUDIO_TBS_FEATURE_ALL
No service
-
ESP_BLE_AUDIO_TBS_SIGNAL_STRENGTH_NO_SERVICE
Maximum signal strength
-
ESP_BLE_AUDIO_TBS_SIGNAL_STRENGTH_MAX
Signal strength is unknown
-
ESP_BLE_AUDIO_TBS_SIGNAL_STRENGTH_UNKNOWN
3G
-
ESP_BLE_AUDIO_TBS_TECHNOLOGY_3G
4G
-
ESP_BLE_AUDIO_TBS_TECHNOLOGY_4G
Long-term evolution (LTE)
-
ESP_BLE_AUDIO_TBS_TECHNOLOGY_LTE
Wifi
-
ESP_BLE_AUDIO_TBS_TECHNOLOGY_WIFI
5G
-
ESP_BLE_AUDIO_TBS_TECHNOLOGY_5G
Global System for Mobile Communications (GSM)
-
ESP_BLE_AUDIO_TBS_TECHNOLOGY_GSM
Code-Division Multiple Access (CDMA)
-
ESP_BLE_AUDIO_TBS_TECHNOLOGY_CDMA
2G
-
ESP_BLE_AUDIO_TBS_TECHNOLOGY_2G
Wideband Code-Division Multiple Access (WCDMA)
-
ESP_BLE_AUDIO_TBS_TECHNOLOGY_WCDMA
Inband ringtone enabled
-
ESP_BLE_AUDIO_TBS_STATUS_FLAG_INBAND_RINGTONE
Server is in silent mod
-
ESP_BLE_AUDIO_TBS_STATUS_FLAG_SILENT_MOD
If set, call is outgoing else incoming
-
ESP_BLE_AUDIO_TBS_CALL_FLAG_OUTGOING
If set call is withheld, else not withheld
-
ESP_BLE_AUDIO_TBS_CALL_FLAG_WITHHELD
If set call is withheld by network, else provided by network
-
ESP_BLE_AUDIO_TBS_CALL_FLAG_WITHHELD_BY_NETWORK
Type Definitions
-
typedef struct bt_tbs_cb esp_ble_audio_tbs_cb_t
Struct to hold the Telephone Bearer Service callbacks
-
typedef struct bt_tbs_instance esp_ble_audio_tbs_instance_t
Telephone Bearer Service instance
-
typedef struct bt_tbs_register_param esp_ble_audio_tbs_register_param_t
Struct to hold the parameters to initialize the bearer
-
typedef struct bt_tbs_client_cb esp_ble_audio_tbs_client_cb_t
Struct to hold the Telephone Bearer Service client callbacks
-
typedef struct bt_tbs_client_call esp_ble_audio_tbs_client_call_t
Struct to hold a call as the Telephone Bearer Service client
-
typedef struct bt_tbs_client_call_state esp_ble_audio_tbs_client_call_state_t
Struct to hold a call state
Media Control Client (MCC)
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_mcc_api.h
This header file can be included with:
#include "esp_ble_audio_mcc_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_err_t esp_ble_audio_mcc_init(esp_ble_audio_mcc_cb_t *cb)
Initialize Media Control Client.
- Parameters:
cb -- Callbacks to be used.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_discover_mcs(uint16_t conn_handle, bool subscribe)
Discover Media Control Service.
Discover Media Control Service (MCS) on the server given by the connection Optionally subscribe to notifications.
Shall be called once, after media control client initialization and before using other media control client functionality.
- Parameters:
conn_handle -- Connection handle.
subscribe -- Whether to subscribe to notifications.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_player_name(uint16_t conn_handle)
Read Media Player Name.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_icon_obj_id(uint16_t conn_handle)
Read Icon Object ID.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_icon_url(uint16_t conn_handle)
Read Icon Object URL.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_track_title(uint16_t conn_handle)
Read Track Title.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_track_duration(uint16_t conn_handle)
Read Track Duration.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_track_position(uint16_t conn_handle)
Read Track Position.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_set_track_position(uint16_t conn_handle, int32_t pos)
Set Track position.
- Parameters:
conn_handle -- Connection handle.
pos -- Track position.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_playback_speed(uint16_t conn_handle)
Read Playback speed.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_set_playback_speed(uint16_t conn_handle, int8_t speed)
Set Playback Speed.
- Parameters:
conn_handle -- Connection handle.
speed -- Playback speed.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_seeking_speed(uint16_t conn_handle)
Read Seeking speed.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_segments_obj_id(uint16_t conn_handle)
Read Track Segments Object ID.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_current_track_obj_id(uint16_t conn_handle)
Read Current Track Object ID.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_set_current_track_obj_id(uint16_t conn_handle, uint64_t id)
Set Current Track Object ID.
Set the Current Track to the track given by the
idparameter.- Parameters:
conn_handle -- Connection handle.
id -- Object Transfer Service ID (UINT48) of the track to set as the current track.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_next_track_obj_id(uint16_t conn_handle)
Read Next Track Object ID.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_set_next_track_obj_id(uint16_t conn_handle, uint64_t id)
Set Next Track Object ID.
- Parameters:
conn_handle -- Connection handle.
id -- Object Transfer Service ID (UINT48) of the track to set as the next track.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_current_group_obj_id(uint16_t conn_handle)
Read Current Group Object ID.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_set_current_group_obj_id(uint16_t conn_handle, uint64_t id)
Set Current Group Object ID.
- Parameters:
conn_handle -- Connection handle.
id -- Object Transfer Service ID (UINT48) of the group to set as the current group.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_parent_group_obj_id(uint16_t conn_handle)
Read Parent Group Object ID.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_playing_order(uint16_t conn_handle)
Read Playing Order.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_set_playing_order(uint16_t conn_handle, uint8_t order)
Set Playing Order.
- Parameters:
conn_handle -- Connection handle.
order -- Playing order.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_playing_orders_supported(uint16_t conn_handle)
Read Playing Orders Supported.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_media_state(uint16_t conn_handle)
Read Media State.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_send_cmd(uint16_t conn_handle, const esp_ble_audio_mpl_cmd_t *cmd)
Send a command.
Write a command (e.g. "play", "pause") to the server's media control point.
- Parameters:
conn_handle -- Connection handle.
cmd -- The command to send.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_opcodes_supported(uint16_t conn_handle)
Read Opcodes Supported.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_send_search(uint16_t conn_handle, const esp_ble_audio_mpl_search_t *search)
Send a Search command.
Write a search to the server's search control point.
- Parameters:
conn_handle -- Connection handle.
search -- The search.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_search_results_obj_id(uint16_t conn_handle)
Search Results Group Object ID.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_read_content_control_id(uint16_t conn_handle)
Read Content Control ID.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_otc_read_object_metadata(uint16_t conn_handle)
Read the current object metadata.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_otc_read_icon_object(uint16_t conn_handle)
Read the Icon Object.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_otc_read_track_segments_object(uint16_t conn_handle)
Read the Track Segments Object.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_otc_read_current_track_object(uint16_t conn_handle)
Read the Current Track Object.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_otc_read_next_track_object(uint16_t conn_handle)
Read the Next Track Object.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_otc_read_current_group_object(uint16_t conn_handle)
Read the Current Group Object.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_mcc_otc_read_parent_group_object(uint16_t conn_handle)
Read the Parent Group Object.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
struct bt_ots_client *esp_ble_audio_mcc_otc_inst(uint16_t conn_handle)
Look up MCC OTC instance.
- Parameters:
conn_handle -- Connection handle.
- Returns:
Pointer to a MCC OTC instance if found else NULL.
Type Definitions
-
typedef struct bt_mcc_cb esp_ble_audio_mcc_cb_t
Media control client callbacks
Media Proxy
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_media_proxy_api.h
This header file can be included with:
#include "esp_ble_audio_media_proxy_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_err_t esp_ble_audio_media_proxy_ctrl_register(esp_ble_audio_media_proxy_ctrl_cbs_t *ctrl_cbs)
Register a controller with the media_proxy.
- Parameters:
ctrl_cbs -- Callbacks to the controller.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_discover_player(uint16_t conn_handle)
Discover a remote media player.
Discover a remote media player instance. The remote player instance will be discovered, and accessed, using Bluetooth, via the media control client and a remote media control service. This call will start a GATT discovery of the Media Control Service on the peer, and setup handles and subscriptions.
This shall be called once before any other actions can be executed for the remote player. The remote player instance will be returned in the discover_player() callback.
- Parameters:
conn_handle -- Connection handle.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_player_name(esp_ble_audio_media_player_t *player)
Read Media Player Name.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_icon_id(esp_ble_audio_media_player_t *player)
Read Icon Object ID.
Get an ID (48 bit) that can be used to retrieve the Icon Object from an Object Transfer Service.
See the Media Control Service spec v1.0 sections 3.2 and 4.1 for a description of the Icon Object.
Requires Object Transfer Service
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_icon_url(esp_ble_audio_media_player_t *player)
Read Icon URL.
Get a URL to the media player's icon.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_track_title(esp_ble_audio_media_player_t *player)
Read Track Title.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_track_duration(esp_ble_audio_media_player_t *player)
Read Track Duration.
The duration of a track is measured in hundredths of a second.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_track_position(esp_ble_audio_media_player_t *player)
Read Track Position.
The position of the player (the playing position) is measured in hundredths of a second from the beginning of the track.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_set_track_position(esp_ble_audio_media_player_t *player, int32_t position)
Set Track Position.
Set the playing position of the media player in the current track. The position is given in hundredths of a second, from the beginning of the track of the track for positive values, and (backwards) from the end of the track for negative values.
- Parameters:
player -- Media player instance pointer.
position -- The track position to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_playback_speed(esp_ble_audio_media_player_t *player)
Get Playback Speed.
The playback speed parameter is related to the actual playback speed as follows: actual playback speed = 2^(speed_parameter/64)
A speed parameter of 0 corresponds to unity speed playback (i.e. playback at "normal" speed). A speed parameter of -128 corresponds to playback at one fourth of normal speed, 127 corresponds to playback at almost four times the normal speed.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_set_playback_speed(esp_ble_audio_media_player_t *player, int8_t speed)
Set Playback Speed.
See the get_playback_speed() function for an explanation of the playback speed parameter.
Note that the media player may not support all possible values of the playback speed parameter. If the value given is not supported, and is higher than the current value, the player should set the playback speed to the next higher supported value. (And correspondingly to the next lower supported value for given values lower than the current value.)
- Parameters:
player -- Media player instance pointer.
speed -- The playback speed parameter to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_seeking_speed(esp_ble_audio_media_player_t *player)
Get Seeking Speed.
The seeking speed gives the speed with which the player is seeking. It is a factor, relative to real-time playback speed - a factor four means seeking happens at four times the real-time playback speed. Positive values are for forward seeking, negative values for backwards seeking.
The seeking speed is not settable - a non-zero seeking speed is the result of "fast rewind" of "fast forward" commands.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_track_segments_id(esp_ble_audio_media_player_t *player)
Read Current Track Segments Object ID.
Get an ID (48 bit) that can be used to retrieve the Current Track Segments Object from an Object Transfer Service.
See the Media Control Service spec v1.0 sections 3.10 and 4.2 for a description of the Track Segments Object.
Requires Object Transfer Service.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_current_track_id(esp_ble_audio_media_player_t *player)
Read Current Track Object ID.
Get an ID (48 bit) that can be used to retrieve the Current Track Object from an Object Transfer Service.
See the Media Control Service spec v1.0 sections 3.11 and 4.3 for a description of the Current Track Object.
Requires Object Transfer Service.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_set_current_track_id(esp_ble_audio_media_player_t *player, uint64_t id)
Set Current Track Object ID.
Change the player's current track to the track given by the ID. (Behaves similarly to the goto track command.)
Requires Object Transfer Service.
- Parameters:
player -- Media player instance pointer.
id -- The ID of a track object.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_next_track_id(esp_ble_audio_media_player_t *player)
Read Next Track Object ID.
Get an ID (48 bit) that can be used to retrieve the Next Track Object from an Object Transfer Service.
Requires Object Transfer Service.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_set_next_track_id(esp_ble_audio_media_player_t *player, uint64_t id)
Set Next Track Object ID.
Change the player's next track to the track given by the ID.
Requires Object Transfer Service.
- Parameters:
player -- Media player instance pointer.
id -- The ID of a track object.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_parent_group_id(esp_ble_audio_media_player_t *player)
Read Parent Group Object ID.
Get an ID (48 bit) that can be used to retrieve the Parent Track Object from an Object Transfer Service.
The parent group is the parent of the current group.
See the Media Control Service spec v1.0 sections 3.14 and 4.4 for a description of the Current Track Object.
Requires Object Transfer Service.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_current_group_id(esp_ble_audio_media_player_t *player)
Read Current Group Object ID.
Get an ID (48 bit) that can be used to retrieve the Current Track Object from an Object Transfer Service
See the Media Control Service spec v1.0 sections 3.14 and 4.4 for a description of the Current Group Object.
Requires Object Transfer Service.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_set_current_group_id(esp_ble_audio_media_player_t *player, uint64_t id)
Set Current Group Object ID.
Change the player's current group to the group given by the ID, and the current track to the first track in that group.
Requires Object Transfer Service.
- Parameters:
player -- Media player instance pointer.
id -- The ID of a group object.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_playing_order(esp_ble_audio_media_player_t *player)
Read Playing Order.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_set_playing_order(esp_ble_audio_media_player_t *player, uint8_t order)
Set Playing Order.
Set the media player's playing order.
- Parameters:
player -- Media player instance pointer.
order -- The playing order to set.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_playing_orders_supported(esp_ble_audio_media_player_t *player)
Read Playing Orders Supported.
Read a bitmap containing the media player's supported playing orders.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_media_state(esp_ble_audio_media_player_t *player)
Read Media State.
Read the media player's state.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_send_command(esp_ble_audio_media_player_t *player, const esp_ble_audio_mpl_cmd_t *command)
Send Command.
Send a command to the media player. Commands may cause the media player to change its state. May result in two callbacks - one for the actual sending of the command to the player, one for the result of the command from the player.
- Parameters:
player -- Media player instance pointer.
command -- The command to send.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_commands_supported(esp_ble_audio_media_player_t *player)
Read Commands Supported.
Read a bitmap containing the media player's supported command opcodes.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_send_search(esp_ble_audio_media_player_t *player, const esp_ble_audio_mpl_search_t *search)
Set Search.
Write a search to the media player. If the search is successful, the search results will be available as a group object in the Object Transfer Service (OTS).
May result in up to three callbacks:
one for the actual sending of the search to the player;
one for the result code for the search from the player;
if the search is successful, one for the search results object ID in the OTs.
Requires Object Transfer Service.
- Parameters:
player -- Media player instance pointer.
search -- The search to write.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_search_results_id(esp_ble_audio_media_player_t *player)
Read Search Results Object ID.
Get an ID (48 bit) that can be used to retrieve the Search Results Object from an Object Transfer Service.
The search results object is a group object. The search results object only exists if a successful search operation has been done.
Requires Object Transfer Service.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_ctrl_get_content_ctrl_id(esp_ble_audio_media_player_t *player)
Read Content Control ID.
The content control ID identifies a content control service on a device, and links it to the corresponding audio stream.
- Parameters:
player -- Media player instance pointer.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_pl_register(esp_ble_audio_media_proxy_pl_calls_t *pl_calls)
Register a player with the media proxy.
Register a player with the media proxy module, for use by media controllers.
The media proxy may call any non-NULL function pointers in the supplied media_proxy_pl_calls structure.
- Parameters:
pl_calls -- Function pointers to the media player's calls.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_media_proxy_pl_init(void)
Initialize player.
- Returns:
ESP_OK on success, or an error code on failure.
-
struct bt_ots *esp_ble_audio_mcs_get_ots(void)
Get the pointer of the Object Transfer Service used by the Media Control Service.
- Returns:
Pointer to an OTS instance if found else NULL.
Macros
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYBACK_SPEED_MIN
< Minimum playback speed, resulting in 25% speed Quarter playback speed, resulting in 25% speed
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYBACK_SPEED_QUARTER
Half playback speed, resulting in 50% speed
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYBACK_SPEED_HALF
Unity playback speed, resulting in 100% speed
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYBACK_SPEED_UNITY
Double playback speed, resulting in 200% speed
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYBACK_SPEED_DOUBLE
Max playback speed, resulting in 395.7% speed (nearly 400%)
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYBACK_SPEED_MAX
The current track is invalid, and no track has been selected.
-
ESP_BLE_AUDIO_MEDIA_PROXY_STATE_INACTIVE
The media player is playing the current track.
-
ESP_BLE_AUDIO_MEDIA_PROXY_STATE_PLAYING
The current track is paused. The media player has a current track, but it is not being played
-
ESP_BLE_AUDIO_MEDIA_PROXY_STATE_PAUSED
The current track is fast forwarding or fast rewinding.
-
ESP_BLE_AUDIO_MEDIA_PROXY_STATE_SEEKING
Used internally as the last state value
-
ESP_BLE_AUDIO_MEDIA_PROXY_STATE_LAST
Start playing the current track.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_PLAY
Pause playing the current track.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_PAUSE
Fast rewind the current track.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_FAST_REWIND
Fast forward the current track.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_FAST_FORWARD
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_STOP
Stop current activity and return to the paused state and set the current track position to the start of the current track. Set a new current track position relative to the current track position.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_MOVE_RELATIVE
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_PREV_SEGMENT
Set the current track position to the starting position of the previous segment of the current track.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_NEXT_SEGMENT
Set the current track position to the starting position of the next segment of the current track.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_FIRST_SEGMENT
Set the current track position to the starting position of the first segment of the current track.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_LAST_SEGMENT
Set the current track position to the starting position of the last segment of the current track.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_GOTO_SEGMENT
Set the current track position to the starting position of the nth segment of the current track. Set the current track to the previous track based on the playing order.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_PREV_TRACK
Set the current track to the next track based on the playing order.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_NEXT_TRACK
Set the current track to the first track based on the playing order.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_FIRST_TRACK
Set the current track to the last track based on the playing order.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_LAST_TRACK
Set the current track to the nth track based on the playing order.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_GOTO_TRACK
Set the current group to the previous group in the sequence of groups.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_PREV_GROUP
Set the current group to the next group in the sequence of groups.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_NEXT_GROUP
Set the current group to the first group in the sequence of groups.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_FIRST_GROUP
Set the current group to the last group in the sequence of groups.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_LAST_GROUP
Set the current group to the nth group in the sequence of groups.
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_GOTO_GROUP
Media player supported opcodes length
-
ESP_BLE_AUDIO_MEDIA_PROXY_OPCODES_SUPPORTED_LEN
Support the Play opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_PLAY
Support the Pause opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_PAUSE
Support the Fast Rewind opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_FAST_REWIND
Support the Fast Forward opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_FAST_FORWARD
Support the Stop opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_STOP
Support the Move Relative opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_MOVE_RELATIVE
Support the Previous Segment opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_PREV_SEGMENT
Support the Next Segment opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_NEXT_SEGMENT
Support the First Segment opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_FIRST_SEGMENT
Support the Last Segment opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_LAST_SEGMENT
Support the Goto Segment opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_GOTO_SEGMENT
Support the Previous Track opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_PREV_TRACK
Support the Next Track opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_NEXT_TRACK
Support the First Track opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_FIRST_TRACK
Support the Last Track opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_LAST_TRACK
Support the Goto Track opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_GOTO_TRACK
Support the Previous Group opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_PREV_GROUP
Support the Next Group opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_NEXT_GROUP
Support the First Group opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_FIRST_GROUP
Support the Last Group opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_LAST_GROUP
Support the Goto Group opcode
-
ESP_BLE_AUDIO_MEDIA_PROXY_OP_SUP_GOTO_GROUP
Action requested by the opcode write was completed successfully.
-
ESP_BLE_AUDIO_MEDIA_PROXY_CMD_SUCCESS
An invalid or unsupported opcode was used for the Media Control Point write.
-
ESP_BLE_AUDIO_MEDIA_PROXY_CMD_NOT_SUPPORTED
-
ESP_BLE_AUDIO_MEDIA_PROXY_CMD_PLAYER_INACTIVE
The Media Player State characteristic value is Inactive when the opcode is received or the result of the requested action of the opcode results in the Media Player State characteristic being set to Inactive.
-
ESP_BLE_AUDIO_MEDIA_PROXY_CMD_CANNOT_BE_COMPLETED
The requested action of any Media Control Point write cannot be completed successfully because of a condition within the player. Search for Track Name
-
ESP_BLE_AUDIO_MEDIA_PROXY_SEARCH_TYPE_TRACK_NAME
Search for Artist Name
-
ESP_BLE_AUDIO_MEDIA_PROXY_SEARCH_TYPE_ARTIST_NAME
Search for Album Name
-
ESP_BLE_AUDIO_MEDIA_PROXY_SEARCH_TYPE_ALBUM_NAME
Search for Group Name
-
ESP_BLE_AUDIO_MEDIA_PROXY_SEARCH_TYPE_GROUP_NAME
Search for Earliest Year
-
ESP_BLE_AUDIO_MEDIA_PROXY_SEARCH_TYPE_EARLIEST_YEAR
Search for Latest Year
-
ESP_BLE_AUDIO_MEDIA_PROXY_SEARCH_TYPE_LATEST_YEAR
Search for Genre
-
ESP_BLE_AUDIO_MEDIA_PROXY_SEARCH_TYPE_GENRE
Search for Tracks only
-
ESP_BLE_AUDIO_MEDIA_PROXY_SEARCH_TYPE_ONLY_TRACKS
Search for Groups only
-
ESP_BLE_AUDIO_MEDIA_PROXY_SEARCH_TYPE_ONLY_GROUPS
Search request was accepted; search has started.
-
ESP_BLE_AUDIO_MEDIA_PROXY_SEARCH_SUCCESS
Search request was invalid; no search started.
-
ESP_BLE_AUDIO_MEDIA_PROXY_SEARCH_FAILURE
Group object type is track
-
ESP_BLE_AUDIO_MEDIA_PROXY_GROUP_OBJECT_TRACK_TYPE
Group object type is group
-
ESP_BLE_AUDIO_MEDIA_PROXY_GROUP_OBJECT_GROUP_TYPE
Maximum seeking speed - Can be negated
-
ESP_BLE_AUDIO_MEDIA_PROXY_SEEKING_SPEED_FACTOR_MAX
Minimum seeking speed - Can be negated
-
ESP_BLE_AUDIO_MEDIA_PROXY_SEEKING_SPEED_FACTOR_MIN
No seeking
-
ESP_BLE_AUDIO_MEDIA_PROXY_SEEKING_SPEED_FACTOR_ZERO
A single track is played once; there is no next track.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDER_SINGLE_ONCE
A single track is played repeatedly; the next track is the current track.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDER_SINGLE_REPEAT
The tracks within a group are played once in track order.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDER_INORDER_ONCE
The tracks within a group are played in track order repeatedly.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDER_INORDER_REPEAT
The tracks within a group are played once only from the oldest first.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDER_OLDEST_ONCE
The tracks within a group are played from the oldest first repeatedly.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDER_OLDEST_REPEAT
The tracks within a group are played once only from the newest first.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDER_NEWEST_ONCE
The tracks within a group are played from the newest first repeatedly.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDER_NEWEST_REPEAT
The tracks within a group are played in random order once.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDER_SHUFFLE_ONCE
The tracks within a group are played in random order repeatedly.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDER_SHUFFLE_REPEAT
A single track is played once; there is no next track.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SINGLE_ONCE
A single track is played repeatedly; the next track is the current track.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SINGLE_REPEAT
The tracks within a group are played once in track order.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_INORDER_ONCE
The tracks within a group are played in track order repeatedly.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_INORDER_REPEAT
The tracks within a group are played once only from the oldest first.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_OLDEST_ONCE
The tracks within a group are played from the oldest first repeatedly.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_OLDEST_REPEAT
The tracks within a group are played once only from the newest first.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_NEWEST_ONCE
The tracks within a group are played from the newest first repeatedly.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_NEWEST_REPEAT
The tracks within a group are played in random order once.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SHUFFLE_ONCE
The tracks within a group are played in random order repeatedly.
-
ESP_BLE_AUDIO_MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SHUFFLE_REPEAT
Type Definitions
-
typedef struct mpl_cmd esp_ble_audio_mpl_cmd_t
Media player command
-
typedef struct mpl_cmd_ntf esp_ble_audio_mpl_cmd_ntf_t
Media command notification
-
typedef struct mpl_sci esp_ble_audio_mpl_sci_t
Search control item
-
typedef struct mpl_search esp_ble_audio_mpl_search_t
Search
-
typedef struct media_player esp_ble_audio_media_player_t
Media player instance
-
typedef struct media_proxy_ctrl_cbs esp_ble_audio_media_proxy_ctrl_cbs_t
Callbacks to a controller, from the media proxy
-
typedef struct media_proxy_pl_calls esp_ble_audio_media_proxy_pl_calls_t
Available calls in a player, that the media proxy can call
Telephony and Media Audio Profile (TMAP)
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_tmap_api.h
This header file can be included with:
#include "esp_ble_audio_tmap_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_err_t esp_ble_audio_tmap_register(esp_ble_audio_tmap_role_t role)
Adds TMAS instance to database and sets the received TMAP role(s).
- Parameters:
role -- TMAP role(s) of the device (one or multiple).
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_tmap_discover(uint16_t conn_handle, const esp_ble_audio_tmap_cb_t *tmap_cb)
Perform service discovery as TMAP Client.
- Parameters:
conn_handle -- Connection handle.
tmap_cb -- Pointer to struct of TMAP callbacks.
- Returns:
ESP_OK on success, or an error code on failure.
-
void esp_ble_audio_tmap_set_role(esp_ble_audio_tmap_role_t role)
Set one or multiple TMAP roles dynamically. Previously registered value will be overwritten.
- Parameters:
role -- TMAP role(s).
Macros
-
ESP_BLE_AUDIO_TMAP_ROLE_CG
< TMAP Call Gateway role TMAP Call Terminal role
-
ESP_BLE_AUDIO_TMAP_ROLE_CT
TMAP Unicast Media Sender role
-
ESP_BLE_AUDIO_TMAP_ROLE_UMS
TMAP Unicast Media Receiver role
-
ESP_BLE_AUDIO_TMAP_ROLE_UMR
TMAP Broadcast Media Sender role
-
ESP_BLE_AUDIO_TMAP_ROLE_BMS
TMAP Broadcast Media Receiver role
-
ESP_BLE_AUDIO_TMAP_ROLE_BMR
Type Definitions
-
typedef enum bt_tmap_role esp_ble_audio_tmap_role_t
TMAP Role characteristic
-
typedef struct bt_tmap_cb esp_ble_audio_tmap_cb_t
TMAP callback structure
Public Broadcast Profile (PBP)
Header File
components/bt/esp_ble_audio/api/include/esp_ble_audio_pbp_api.h
This header file can be included with:
#include "esp_ble_audio_pbp_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
-
esp_err_t esp_ble_audio_pbp_get_announcement(const uint8_t meta[], size_t meta_len, esp_ble_audio_pbp_announcement_feature_t features, struct net_buf_simple *pba_data_buf)
Creates a Public Broadcast Announcement based on the information received in the features parameter.
- Parameters:
meta -- Metadata to be included in the advertising data.
meta_len -- Size of the metadata fields to be included in the advertising data.
features -- Public Broadcast Announcement features.
pba_data_buf -- Pointer to store the PBA advertising data. Buffer size needs to be meta_len + ESP_BLE_AUDIO_PBP_MIN_PBA_SIZE.
- Returns:
ESP_OK on success, or an error code on failure.
-
esp_err_t esp_ble_audio_pbp_parse_announcement(uint8_t data_type, const uint8_t *data, uint8_t data_len, esp_ble_audio_pbp_announcement_feature_t *features, uint8_t **meta, uint8_t *meta_len)
Parses the received advertising data corresponding to a Public Broadcast Announcement. Returns the advertised Public Broadcast Announcement features and metadata.
- Parameters:
data_type -- Type of advertising data to be checked.
data -- Pointer of advertising data to be checked.
data_len -- Length of advertising data to be checked.
features -- Pointer to public broadcast source features to store the parsed features in.
meta -- Pointer to the metadata present in the advertising data.
meta_len -- Size of the metadata fields to be included in the advertising data.
- Returns:
ESP_OK on success, or an error code on failure.
Macros
-
ESP_BLE_AUDIO_PBP_MIN_PBA_SIZE
Minimum size of the Public Broadcast Announcement Broadcast Streams encryption status
-
ESP_BLE_AUDIO_PBP_ANNOUNCEMENT_FEATURE_ENCRYPTION
Standard Quality Public Broadcast Audio configuration
-
ESP_BLE_AUDIO_PBP_ANNOUNCEMENT_FEATURE_STANDARD_QUALITY
High Quality Public Broadcast Audio configuration
-
ESP_BLE_AUDIO_PBP_ANNOUNCEMENT_FEATURE_HIGH_QUALITY
Type Definitions
-
typedef enum bt_pbp_announcement_feature esp_ble_audio_pbp_announcement_feature_t
Public Broadcast Announcement features