Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
cap.h
Go to the documentation of this file.
1
6/*
7 * Copyright (c) 2022-2024 Nordic Semiconductor ASA
8 *
9 * SPDX-License-Identifier: Apache-2.0
10 */
11
12#ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_CAP_H_
13#define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_CAP_H_
14
33#include <stdbool.h>
34#include <stddef.h>
35#include <stdint.h>
36
44#include <zephyr/net/buf.h>
45
46#ifdef __cplusplus
47extern "C" {
48#endif
49
51struct bt_cap_broadcast_source;
52
72 struct bt_csip_set_member_svc_inst **svc_inst);
73
76#if defined(CONFIG_BT_BAP_UNICAST_CLIENT) || defined(__DOXYGEN__)
91 struct bt_conn *conn, int err,
92 const struct bt_csip_set_coordinator_set_member *member,
93 const struct bt_csip_set_coordinator_csis_inst *csis_inst);
94
105 void (*unicast_start_complete)(int err, struct bt_conn *conn);
106
117 void (*unicast_update_complete)(int err, struct bt_conn *conn);
118
129 void (*unicast_stop_complete)(int err, struct bt_conn *conn);
130#endif /* CONFIG_BT_BAP_UNICAST_CLIENT */
131};
132
146int bt_cap_initiator_unicast_discover(struct bt_conn *conn);
147
155
159 struct bt_conn *member;
160
163};
164
178
188
204int bt_cap_stream_send(struct bt_cap_stream *stream, struct net_buf *buf, uint16_t seq_num);
205
223int bt_cap_stream_send_ts(struct bt_cap_stream *stream, struct net_buf *buf, uint16_t seq_num,
224 uint32_t ts);
225
240
264
276
292
304
316
325
335
352
367
382
407
425
440
445
448
451
460
463
477
478#if defined(CONFIG_BT_ISO_TEST_PARAMS) || defined(__DOXYGEN__)
487
496
505#endif /* CONFIG_BT_ISO_TEST_PARAMS */
506};
507
523 const struct bt_cap_initiator_broadcast_create_param *param,
524 struct bt_cap_broadcast_source **broadcast_source);
525
545int bt_cap_initiator_broadcast_audio_start(struct bt_cap_broadcast_source *broadcast_source,
546 struct bt_le_ext_adv *adv);
561int bt_cap_initiator_broadcast_audio_update(struct bt_cap_broadcast_source *broadcast_source,
562 const uint8_t meta[], size_t meta_len);
563
576int bt_cap_initiator_broadcast_audio_stop(struct bt_cap_broadcast_source *broadcast_source);
577
595int bt_cap_initiator_broadcast_audio_delete(struct bt_cap_broadcast_source *broadcast_source);
596
611int bt_cap_initiator_broadcast_get_id(const struct bt_cap_broadcast_source *broadcast_source,
612 uint32_t *const broadcast_id);
613
629int bt_cap_initiator_broadcast_get_base(struct bt_cap_broadcast_source *broadcast_source,
630 struct net_buf_simple *base_buf);
631
659
677 struct bt_cap_broadcast_source **source);
678
686 struct bt_cap_broadcast_source *broadcast_source;
687
690
698 size_t count;
699
702};
703
721 struct bt_bap_unicast_group **unicast_group);
722
738 void (*discovery_complete)(struct bt_conn *conn, int err,
739 const struct bt_csip_set_coordinator_set_member *member,
740 const struct bt_csip_set_coordinator_csis_inst *csis_inst);
741
742#if defined(CONFIG_BT_VCP_VOL_CTLR) || defined(__DOXYGEN__)
753 void (*volume_changed)(struct bt_conn *conn, int err);
754
765 void (*volume_mute_changed)(struct bt_conn *conn, int err);
766
767#if defined(CONFIG_BT_VCP_VOL_CTLR_VOCS) || defined(__DOXYGEN__)
778 void (*volume_offset_changed)(struct bt_conn *conn, int err);
779#endif /* CONFIG_BT_VCP_VOL_CTLR_VOCS */
780#endif /* CONFIG_BT_VCP_VOL_CTLR */
781#if defined(CONFIG_BT_MICP_MIC_CTLR) || defined(__DOXYGEN__)
792 void (*microphone_mute_changed)(struct bt_conn *conn, int err);
793#if defined(CONFIG_BT_MICP_MIC_CTLR_AICS) || defined(__DOXYGEN__)
804 void (*microphone_gain_changed)(struct bt_conn *conn, int err);
805#endif /* CONFIG_BT_MICP_MIC_CTLR_AICS */
806#endif /* CONFIG_BT_MICP_MIC_CTLR */
807
808#if defined(CONFIG_BT_BAP_BROADCAST_ASSISTANT) || defined(__DOXYGEN__)
819 void (*broadcast_reception_start)(struct bt_conn *conn, int err);
820#endif /* CONFIG_BT_BAP_BROADCAST_ASSISTANT */
821};
822
833
843
862int bt_cap_commander_discover(struct bt_conn *conn);
863
888
923
935
946
958
969
984
993
1009
1021
1031
1050
1060
1079
1089
1101
1113
1123#ifdef __cplusplus
1124}
1125#endif
1126
1131#endif /* ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_CAP_H_ */
Bluetooth device address definitions and utilities.
Header for Bluetooth BAP.
Bluetooth Audio handling.
Bluetooth subsystem core APIs.
Bluetooth connection handling.
Bluetooth Coordinated Set Identification Profile (CSIP) APIs.
#define BT_AUDIO_BROADCAST_CODE_SIZE
Maximum size of the broadcast code in octets.
Definition audio.h:51
int bt_cap_commander_discover(struct bt_conn *conn)
Discovers audio support on a remote device.
int bt_cap_commander_change_microphone_mute_state(const struct bt_cap_commander_change_microphone_mute_state_param *param)
Change the microphone mute state on one or more Common Audio Profile Acceptors.
int bt_cap_stream_send_ts(struct bt_cap_stream *stream, struct net_buf *buf, uint16_t seq_num, uint32_t ts)
Send data to Common Audio Profile stream with timestamp.
int bt_cap_commander_broadcast_reception_start(const struct bt_cap_commander_broadcast_reception_start_param *param)
Starts the reception of broadcast audio on one or more remote Common Audio Profile Acceptors.
int bt_cap_initiator_broadcast_audio_start(struct bt_cap_broadcast_source *broadcast_source, struct bt_le_ext_adv *adv)
Start Common Audio Profile broadcast source.
int bt_cap_stream_send(struct bt_cap_stream *stream, struct net_buf *buf, uint16_t seq_num)
Send data to Common Audio Profile stream without timestamp.
int bt_cap_initiator_broadcast_to_unicast(const struct bt_cap_broadcast_to_unicast_param *param, struct bt_bap_unicast_group **unicast_group)
Hands over the data streams in a broadcast source to a unicast group.
int bt_cap_commander_unregister_cb(const struct bt_cap_commander_cb *cb)
Unregister Common Audio Profile Commander callbacks.
int bt_cap_initiator_register_cb(const struct bt_cap_initiator_cb *cb)
Register Common Audio Profile Initiator callbacks.
int bt_cap_initiator_unicast_to_broadcast(const struct bt_cap_unicast_to_broadcast_param *param, struct bt_cap_broadcast_source **source)
Hands over the data streams in a unicast group to a broadcast source.
int bt_cap_initiator_broadcast_get_base(struct bt_cap_broadcast_source *broadcast_source, struct net_buf_simple *base_buf)
Get the Broadcast Audio Stream Endpoint of a Common Audio Profile broadcast source.
int bt_cap_initiator_broadcast_audio_create(const struct bt_cap_initiator_broadcast_create_param *param, struct bt_cap_broadcast_source **broadcast_source)
Create a Common Audio Profile broadcast source.
int bt_cap_commander_cancel(void)
Cancel any current Common Audio Profile commander procedure.
int bt_cap_stream_get_tx_sync(struct bt_cap_stream *stream, struct bt_iso_tx_info *info)
Get ISO transmission timing info for a Common Audio Profile stream.
int bt_cap_initiator_broadcast_audio_update(struct bt_cap_broadcast_source *broadcast_source, const uint8_t meta[], size_t meta_len)
Update broadcast audio streams for a Common Audio Profile broadcast source.
int bt_cap_initiator_unicast_audio_update(const struct bt_cap_unicast_audio_update_param *param)
Update unicast audio streams.
int bt_cap_commander_change_microphone_gain_setting(const struct bt_cap_commander_change_microphone_gain_setting_param *param)
Change the microphone gain setting on one or more Common Audio Profile Acceptors.
int bt_cap_initiator_unicast_audio_cancel(void)
Cancel any current Common Audio Profile procedure.
int bt_cap_initiator_unregister_cb(const struct bt_cap_initiator_cb *cb)
Unregister Common Audio Profile Initiator callbacks.
int bt_cap_commander_register_cb(const struct bt_cap_commander_cb *cb)
Register Common Audio Profile Commander callbacks.
int bt_cap_initiator_unicast_discover(struct bt_conn *conn)
Discovers audio support on a remote device.
int bt_cap_commander_broadcast_reception_stop(const struct bt_cap_commander_broadcast_reception_stop_param *param)
Stops the reception of broadcast audio on one or more remote Common Audio Profile Acceptors.
int bt_cap_commander_change_volume_mute_state(const struct bt_cap_commander_change_volume_mute_state_param *param)
Change the volume mute state on one or more Common Audio Profile Acceptors.
void bt_cap_stream_ops_register(struct bt_cap_stream *stream, struct bt_bap_stream_ops *ops)
Register Audio operations for a Common Audio Profile stream.
int bt_cap_initiator_broadcast_audio_delete(struct bt_cap_broadcast_source *broadcast_source)
Delete Common Audio Profile broadcast source.
bt_cap_set_type
Type of CAP set.
Definition cap.h:149
int bt_cap_initiator_unicast_audio_start(const struct bt_cap_unicast_audio_start_param *param)
Setup and start unicast audio streams for a set of devices.
int bt_cap_commander_change_volume_offset(const struct bt_cap_commander_change_volume_offset_param *param)
Change the volume offset on one or more Common Audio Profile Acceptors.
int bt_cap_initiator_broadcast_audio_stop(struct bt_cap_broadcast_source *broadcast_source)
Stop broadcast audio streams for a Common Audio Profile broadcast source.
int bt_cap_acceptor_register(const struct bt_csip_set_member_register_param *param, struct bt_csip_set_member_svc_inst **svc_inst)
Register the Common Audio Service.
int bt_cap_initiator_unicast_audio_stop(const struct bt_cap_unicast_audio_stop_param *param)
Stop unicast audio streams.
int bt_cap_initiator_broadcast_get_id(const struct bt_cap_broadcast_source *broadcast_source, uint32_t *const broadcast_id)
Get the broadcast ID of a Common Audio Profile broadcast source.
int bt_cap_commander_change_volume(const struct bt_cap_commander_change_volume_param *param)
Change the volume on one or more Common Audio Profile Acceptors.
@ BT_CAP_SET_TYPE_CSIP
The set is a CSIP Coordinated Set.
Definition cap.h:153
@ BT_CAP_SET_TYPE_AD_HOC
The set is an ad-hoc set.
Definition cap.h:151
#define BT_ISO_BROADCAST_CODE_SIZE
Broadcast code size.
Definition iso.h:112
Bluetooth ISO handling.
Buffer management.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
__INT8_TYPE__ int8_t
Definition stdint.h:72
__INT16_TYPE__ int16_t
Definition stdint.h:73
Bluetooth LE Device Address.
Definition addr.h:49
Codec specific configuration structure.
Definition audio.h:703
Codec QoS structure.
Definition audio.h:849
Struct to hold subgroup specific information for the receive state.
Definition bap.h:265
Stream operation.
Definition bap.h:495
Basic Audio Profile stream structure.
Definition bap.h:454
Parameters for bt_cap_initiator_broadcast_to_unicast()
Definition cap.h:680
union bt_cap_set_member ** members
Coordinated or ad-hoc set members.
Definition cap.h:701
enum bt_cap_set_type type
The type of the set.
Definition cap.h:689
size_t count
The number of set members in members.
Definition cap.h:698
struct bt_cap_broadcast_source * broadcast_source
The source broadcast source with the streams.
Definition cap.h:686
Parameters part of bt_cap_commander_broadcast_reception_start_param for bt_cap_commander_broadcast_re...
Definition cap.h:893
size_t num_subgroups
Number of subgroups.
Definition cap.h:921
uint16_t pa_interval
Periodic advertising interval in milliseconds.
Definition cap.h:908
uint32_t broadcast_id
24-bit broadcast ID
Definition cap.h:911
bt_addr_le_t addr
Address of the advertiser.
Definition cap.h:898
union bt_cap_set_member member
Coordinated or ad-hoc set member.
Definition cap.h:895
uint8_t adv_sid
SID of the advertising set.
Definition cap.h:901
struct bt_bap_bass_subgroup subgroups[CONFIG_BT_BAP_BASS_MAX_SUBGROUPS]
Pointer to array of subgroups.
Definition cap.h:918
Parameters for starting broadcast reception
Definition cap.h:925
struct bt_cap_commander_broadcast_reception_start_member_param * param
The set of devices for this procedure.
Definition cap.h:930
size_t count
The number of parameters in param.
Definition cap.h:933
enum bt_cap_set_type type
The type of the set.
Definition cap.h:927
Parameters for stopping broadcast reception
Definition cap.h:948
union bt_cap_set_member * members
Coordinated or ad-hoc set member.
Definition cap.h:953
enum bt_cap_set_type type
The type of the set.
Definition cap.h:950
size_t count
The number of members in members.
Definition cap.h:956
Callback structure for CAP procedures.
Definition cap.h:724
void(* broadcast_reception_start)(struct bt_conn *conn, int err)
Callback for bt_cap_commander_broadcast_reception_start().
Definition cap.h:819
void(* microphone_gain_changed)(struct bt_conn *conn, int err)
Callback for bt_cap_commander_change_microphone_gain_setting().
Definition cap.h:804
void(* volume_changed)(struct bt_conn *conn, int err)
Callback for bt_cap_commander_change_volume().
Definition cap.h:753
void(* volume_offset_changed)(struct bt_conn *conn, int err)
Callback for bt_cap_commander_change_volume_offset().
Definition cap.h:778
void(* microphone_mute_changed)(struct bt_conn *conn, int err)
Callback for bt_cap_commander_change_microphone_mute_state().
Definition cap.h:792
void(* volume_mute_changed)(struct bt_conn *conn, int err)
Callback for bt_cap_commander_change_volume_mute_state().
Definition cap.h:765
void(* discovery_complete)(struct bt_conn *conn, int err, const struct bt_csip_set_coordinator_set_member *member, const struct bt_csip_set_coordinator_csis_inst *csis_inst)
Callback for bt_cap_initiator_unicast_discover().
Definition cap.h:738
Parameters part of bt_cap_commander_change_microphone_gain_setting_param for bt_cap_commander_change_...
Definition cap.h:1094
union bt_cap_set_member member
Coordinated or ad-hoc set member.
Definition cap.h:1096
int8_t gain
The microphone gain setting to set.
Definition cap.h:1099
Parameters for changing microphone mute state.
Definition cap.h:1103
enum bt_cap_set_type type
The type of the set.
Definition cap.h:1105
struct bt_cap_commander_change_microphone_gain_setting_member_param * param
The set of devices for this procedure.
Definition cap.h:1108
size_t count
The number of parameters in param.
Definition cap.h:1111
Parameters for changing microphone mute state.
Definition cap.h:1062
bool mute
The microphone mute state to set.
Definition cap.h:1077
size_t count
The number of members in members.
Definition cap.h:1070
union bt_cap_set_member * members
Coordinated or ad-hoc set member.
Definition cap.h:1067
enum bt_cap_set_type type
The type of the set.
Definition cap.h:1064
Parameters for changing volume mute state.
Definition cap.h:1033
size_t count
The number of members in members.
Definition cap.h:1041
bool mute
The volume mute state to set.
Definition cap.h:1048
enum bt_cap_set_type type
The type of the set.
Definition cap.h:1035
union bt_cap_set_member * members
Coordinated or ad-hoc set member.
Definition cap.h:1038
Parameters part of bt_cap_commander_change_volume_offset_param for bt_cap_commander_change_volume_off...
Definition cap.h:998
int16_t offset
The offset to set.
Definition cap.h:1007
union bt_cap_set_member member
Coordinated or ad-hoc set member.
Definition cap.h:1000
Parameters for changing volume offset.
Definition cap.h:1011
struct bt_cap_commander_change_volume_offset_member_param * param
The set of devices for this procedure.
Definition cap.h:1016
enum bt_cap_set_type type
The type of the set.
Definition cap.h:1013
size_t count
The number of parameters in param.
Definition cap.h:1019
Parameters for changing absolute volume
Definition cap.h:971
size_t count
The number of members in members.
Definition cap.h:979
union bt_cap_set_member * members
Coordinated or ad-hoc set member.
Definition cap.h:976
enum bt_cap_set_type type
The type of the set.
Definition cap.h:973
uint8_t volume
The absolute volume to set.
Definition cap.h:982
Parameters for * bt_cap_initiator_broadcast_audio_create()
Definition cap.h:442
uint8_t pto
Pre-transmission offset.
Definition cap.h:495
struct bt_cap_initiator_broadcast_subgroup_param * subgroup_params
Array of stream parameters.
Definition cap.h:447
bool encryption
Whether or not to encrypt the streams.
Definition cap.h:462
uint8_t irc
Immediate Repetition Count.
Definition cap.h:486
uint16_t iso_interval
ISO interval.
Definition cap.h:504
uint8_t broadcast_code[BT_AUDIO_BROADCAST_CODE_SIZE]
16-octet broadcast code.
Definition cap.h:476
uint8_t packing
Broadcast Source packing mode.
Definition cap.h:459
size_t subgroup_count
The number of parameters in subgroup_params.
Definition cap.h:444
struct bt_audio_codec_qos * qos
Quality of Service configuration.
Definition cap.h:450
Parameters part of bt_cap_initiator_broadcast_subgroup_param for bt_cap_initiator_broadcast_audio_cre...
Definition cap.h:412
uint8_t * data
BIS Codec Specific Configuration.
Definition cap.h:423
struct bt_cap_stream * stream
Audio stream.
Definition cap.h:414
size_t data_len
The length of the p data array.
Definition cap.h:420
Parameters part of bt_cap_initiator_broadcast_create_param for bt_cap_initiator_broadcast_audio_creat...
Definition cap.h:430
struct bt_cap_initiator_broadcast_stream_param * stream_params
Array of stream parameters.
Definition cap.h:435
size_t stream_count
The number of parameters in stream_params.
Definition cap.h:432
struct bt_audio_codec_cfg * codec_cfg
Subgroup Codec configuration.
Definition cap.h:438
Callback structure for CAP procedures.
Definition cap.h:75
void(* unicast_stop_complete)(int err, struct bt_conn *conn)
Callback for bt_cap_initiator_unicast_audio_stop().
Definition cap.h:129
void(* unicast_discovery_complete)(struct bt_conn *conn, int err, const struct bt_csip_set_coordinator_set_member *member, const struct bt_csip_set_coordinator_csis_inst *csis_inst)
Callback for bt_cap_initiator_unicast_discover().
Definition cap.h:90
void(* unicast_update_complete)(int err, struct bt_conn *conn)
Callback for bt_cap_initiator_unicast_audio_update().
Definition cap.h:117
void(* unicast_start_complete)(int err, struct bt_conn *conn)
Callback for bt_cap_initiator_unicast_audio_start().
Definition cap.h:105
Common Audio Profile stream structure.
Definition cap.h:171
struct bt_bap_stream_ops * ops
Audio stream operations.
Definition cap.h:176
struct bt_bap_stream bap_stream
The underlying BAP audio stream.
Definition cap.h:173
Parameters for the bt_cap_initiator_unicast_audio_start() function.
Definition cap.h:266
enum bt_cap_set_type type
The type of the set.
Definition cap.h:268
size_t count
The number of parameters in stream_params.
Definition cap.h:271
struct bt_cap_unicast_audio_start_stream_param * stream_params
Array of stream parameters.
Definition cap.h:274
Stream specific parameters for the bt_cap_initiator_unicast_audio_start() function.
Definition cap.h:242
struct bt_cap_stream * stream
Stream for the member.
Definition cap.h:247
struct bt_audio_codec_cfg * codec_cfg
Codec configuration.
Definition cap.h:262
union bt_cap_set_member member
Coordinated or ad-hoc set member.
Definition cap.h:244
struct bt_bap_ep * ep
Endpoint reference for the stream.
Definition cap.h:250
Parameters for the bt_cap_initiator_unicast_audio_stop() function.
Definition cap.h:306
size_t count
The number of streams in streams.
Definition cap.h:311
enum bt_cap_set_type type
The type of the set.
Definition cap.h:308
struct bt_cap_stream ** streams
Array of streams to stop.
Definition cap.h:314
Parameters for the bt_cap_initiator_unicast_audio_update() function.
Definition cap.h:294
struct bt_cap_unicast_audio_update_stream_param * stream_params
Array of stream parameters.
Definition cap.h:302
enum bt_cap_set_type type
The type of the set.
Definition cap.h:296
size_t count
The number of parameters in stream_params.
Definition cap.h:299
Stream specific parameters for the bt_cap_initiator_unicast_audio_update() function.
Definition cap.h:278
size_t meta_len
The length of meta.
Definition cap.h:283
struct bt_cap_stream * stream
Stream to update.
Definition cap.h:280
uint8_t * meta
The new metadata.
Definition cap.h:290
Parameters for bt_cap_initiator_unicast_to_broadcast()
Definition cap.h:633
struct bt_bap_unicast_group * unicast_group
The source unicast group with the streams.
Definition cap.h:635
uint8_t broadcast_code[BT_ISO_BROADCAST_CODE_SIZE]
16-octet broadcast code.
Definition cap.h:657
bool encrypt
Whether or not to encrypt the streams.
Definition cap.h:643
Struct representing a coordinated set instance on a remote device.
Definition csip.h:301
Struct representing a remote device as a set member.
Definition csip.h:310
Register structure for Coordinated Set Identification Service.
Definition csip.h:133
ISO Meta Data structure for transmitted ISO packets.
Definition iso.h:321
Simple network buffer representation.
Definition buf.h:87
Network buffer representation.
Definition buf.h:1004
Represents a Common Audio Set member that are either in a Coordinated or ad-hoc set.
Definition cap.h:157
struct bt_conn * member
Connection pointer if the type is BT_CAP_SET_TYPE_AD_HOC.
Definition cap.h:159
struct bt_csip_set_coordinator_csis_inst * csip
CSIP Coordinated Set struct used if type is BT_CAP_SET_TYPE_CSIP.
Definition cap.h:162