Zephyr API Documentation  3.6.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
cap.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022-2023 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_CAP_H_
8#define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_CAP_H_
9
22#include <stdint.h>
23
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
34struct bt_cap_broadcast_source;
35
55 struct bt_csip_set_member_svc_inst **svc_inst);
56
59#if defined(CONFIG_BT_BAP_UNICAST_CLIENT)
73 void (*unicast_discovery_complete)(
74 struct bt_conn *conn, int err,
75 const struct bt_csip_set_coordinator_set_member *member,
76 const struct bt_csip_set_coordinator_csis_inst *csis_inst);
77
88 void (*unicast_start_complete)(int err, struct bt_conn *conn);
89
100 void (*unicast_update_complete)(int err, struct bt_conn *conn);
101
112 void (*unicast_stop_complete)(int err, struct bt_conn *conn);
113#endif /* CONFIG_BT_BAP_UNICAST_CLIENT */
114};
115
129int bt_cap_initiator_unicast_discover(struct bt_conn *conn);
130
137};
138
142 struct bt_conn *member;
143
146};
147
151};
152
161
177int bt_cap_stream_send(struct bt_cap_stream *stream, struct net_buf *buf, uint16_t seq_num);
178
196int bt_cap_stream_send_ts(struct bt_cap_stream *stream, struct net_buf *buf, uint16_t seq_num,
197 uint32_t ts);
198
213
218
221
223 struct bt_bap_ep *ep;
224
236};
237
242
244 size_t count;
245
248};
249
254
256 size_t meta_len;
257
264};
265
270
272 size_t count;
273
276};
277
282
284 size_t count;
285
288};
289
298
315
330
345
369
373
378 size_t data_len;
379
382};
383
387
390
393};
394
398
401
404
413
416
430
431#if defined(CONFIG_BT_ISO_TEST_PARAMS)
439 uint8_t irc;
440
447 uint8_t pto;
448
456 uint16_t iso_interval;
457#endif /* CONFIG_BT_ISO_TEST_PARAMS */
458};
459
475 const struct bt_cap_initiator_broadcast_create_param *param,
476 struct bt_cap_broadcast_source **broadcast_source);
477
497int bt_cap_initiator_broadcast_audio_start(struct bt_cap_broadcast_source *broadcast_source,
498 struct bt_le_ext_adv *adv);
513int bt_cap_initiator_broadcast_audio_update(struct bt_cap_broadcast_source *broadcast_source,
514 const uint8_t meta[], size_t meta_len);
515
528int bt_cap_initiator_broadcast_audio_stop(struct bt_cap_broadcast_source *broadcast_source);
529
547int bt_cap_initiator_broadcast_audio_delete(struct bt_cap_broadcast_source *broadcast_source);
548
563int bt_cap_initiator_broadcast_get_id(const struct bt_cap_broadcast_source *broadcast_source,
564 uint32_t *const broadcast_id);
565
581int bt_cap_initiator_broadcast_get_base(struct bt_cap_broadcast_source *broadcast_source,
582 struct net_buf_simple *base_buf);
583
586 struct bt_bap_unicast_group *unicast_group;
587
595
609};
610
628 struct bt_cap_broadcast_source **source);
629
636 struct bt_cap_broadcast_source *broadcast_source;
637
640
648 size_t count;
649
652};
653
671 struct bt_bap_unicast_group **unicast_group);
672
688 void (*discovery_complete)(struct bt_conn *conn, int err,
689 const struct bt_csip_set_coordinator_set_member *member,
690 const struct bt_csip_set_coordinator_csis_inst *csis_inst);
691
692#if defined(CONFIG_BT_VCP_VOL_CTLR)
703 void (*volume_changed)(struct bt_conn *conn, int err);
704
715 void (*volume_mute_changed)(struct bt_conn *conn, int err);
716
717#if defined(CONFIG_BT_VCP_VOL_CTLR_VOCS)
728 void (*volume_offset_changed)(struct bt_conn *conn, int err);
729#endif /* CONFIG_BT_VCP_VOL_CTLR_VOCS */
730#endif /* CONFIG_BT_VCP_VOL_CTLR */
731#if defined(CONFIG_BT_MICP_MIC_CTLR)
742 void (*microphone_mute_changed)(struct bt_conn *conn, int err);
743#if defined(CONFIG_BT_MICP_MIC_CTLR_AICS)
754 void (*microphone_gain_changed)(struct bt_conn *conn, int err);
755#endif /* CONFIG_BT_MICP_MIC_CTLR_AICS */
756#endif /* CONFIG_BT_MICP_MIC_CTLR */
757
758#if defined(CONFIG_BT_BAP_BROADCAST_ASSISTANT)
769 void (*broadcast_reception_start)(struct bt_conn *conn, int err);
770#endif /* CONFIG_BT_BAP_BROADCAST_ASSISTANT */
771};
772
783
793
812int bt_cap_commander_discover(struct bt_conn *conn);
813
837
841
844
847
854
857
863 struct bt_bap_bass_subgroup subgroups[CONFIG_BT_BAP_BASS_MAX_SUBGROUPS];
864
867};
868
873
876
878 size_t count;
879};
880
891
896
899
901 size_t count;
902};
903
914
919
922
924 size_t count;
925
928};
929
938
942
949};
950
955
958
960 size_t count;
961};
962
972
977
980
982 size_t count;
983
989 bool mute;
990};
991
1001
1006
1009
1011 size_t count;
1012
1018 bool mute;
1019};
1020
1030
1034
1037};
1038
1043
1046
1048 size_t count;
1049};
1050
1060#ifdef __cplusplus
1061}
1062#endif
1063
1068#endif /* ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_CAP_H_ */
Header for Bluetooth BAP.
Bluetooth Audio handling.
#define BT_AUDIO_BROADCAST_CODE_SIZE
Definition: audio.h:42
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_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:132
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:136
@ BT_CAP_SET_TYPE_AD_HOC
The set is an ad-hoc set.
Definition: cap.h:134
#define BT_ISO_BROADCAST_CODE_SIZE
Broadcast code size.
Definition: iso.h:111
Bluetooth ISO handling.
__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:584
Codec QoS structure.
Definition: audio.h:704
Struct to hold subgroup specific information for the receive state.
Definition: bap.h:249
Stream operation.
Definition: bap.h:474
Basic Audio Profile stream structure.
Definition: bap.h:434
union bt_cap_set_member ** members
Coordinated or ad-hoc set members.
Definition: cap.h:651
enum bt_cap_set_type type
The type of the set.
Definition: cap.h:639
size_t count
The number of set members in members.
Definition: cap.h:648
struct bt_cap_broadcast_source * broadcast_source
The source broadcast source with the streams.
Definition: cap.h:636
size_t num_subgroups
Number of subgroups.
Definition: cap.h:866
uint16_t pa_interval
Periodic advertising interval in milliseconds.
Definition: cap.h:853
uint32_t broadcast_id
24-bit broadcast ID
Definition: cap.h:856
bt_addr_le_t addr
Address of the advertiser.
Definition: cap.h:843
union bt_cap_set_member member
Coordinated or ad-hoc set member.
Definition: cap.h:840
uint8_t adv_sid
SID of the advertising set.
Definition: cap.h:846
struct bt_bap_bass_subgroup subgroups[CONFIG_BT_BAP_BASS_MAX_SUBGROUPS]
Pointer to array of subgroups.
Definition: cap.h:863
Parameters for starting broadcast reception
Definition: cap.h:870
struct bt_cap_commander_broadcast_reception_start_member_param * param
The set of devices for this procedure.
Definition: cap.h:875
size_t count
The number of parameters in param.
Definition: cap.h:878
enum bt_cap_set_type type
The type of the set.
Definition: cap.h:872
Parameters for stopping broadcast reception
Definition: cap.h:893
union bt_cap_set_member * members
Coordinated or ad-hoc set member.
Definition: cap.h:898
enum bt_cap_set_type type
The type of the set.
Definition: cap.h:895
size_t count
The number of members in members.
Definition: cap.h:901
Callback structure for CAP procedures.
Definition: cap.h:674
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:688
union bt_cap_set_member member
Coordinated or ad-hoc set member.
Definition: cap.h:1033
int8_t gain
The microphone gain setting to set.
Definition: cap.h:1036
Parameters for changing microphone mute state.
Definition: cap.h:1040
enum bt_cap_set_type type
The type of the set.
Definition: cap.h:1042
struct bt_cap_commander_change_microphone_gain_setting_member_param * param
The set of devices for this procedure.
Definition: cap.h:1045
size_t count
The number of parameters in param.
Definition: cap.h:1048
Parameters for changing microphone mute state.
Definition: cap.h:1003
bool mute
The microphone mute state to set.
Definition: cap.h:1018
size_t count
The number of members in members.
Definition: cap.h:1011
union bt_cap_set_member * members
Coordinated or ad-hoc set member.
Definition: cap.h:1008
enum bt_cap_set_type type
The type of the set.
Definition: cap.h:1005
Parameters for changing volume mute state.
Definition: cap.h:974
size_t count
The number of members in members.
Definition: cap.h:982
bool mute
The volume mute state to set.
Definition: cap.h:989
enum bt_cap_set_type type
The type of the set.
Definition: cap.h:976
union bt_cap_set_member * members
Coordinated or ad-hoc set member.
Definition: cap.h:979
int16_t offset
The offset to set.
Definition: cap.h:948
union bt_cap_set_member member
Coordinated or ad-hoc set member.
Definition: cap.h:941
Parameters for changing volume offset.
Definition: cap.h:952
struct bt_cap_commander_change_volume_offset_member_param * param
The set of devices for this procedure.
Definition: cap.h:957
enum bt_cap_set_type type
The type of the set.
Definition: cap.h:954
size_t count
The number of parameters in param.
Definition: cap.h:960
Parameters for changing absolute volume
Definition: cap.h:916
size_t count
The number of members in members.
Definition: cap.h:924
union bt_cap_set_member * members
Coordinated or ad-hoc set member.
Definition: cap.h:921
enum bt_cap_set_type type
The type of the set.
Definition: cap.h:918
uint8_t volume
The absolute volume to set.
Definition: cap.h:927
struct bt_cap_initiator_broadcast_subgroup_param * subgroup_params
Array of stream parameters.
Definition: cap.h:400
bool encryption
Whether or not to encrypt the streams.
Definition: cap.h:415
uint8_t broadcast_code[BT_AUDIO_BROADCAST_CODE_SIZE]
16-octet broadcast code.
Definition: cap.h:429
uint8_t packing
Broadcast Source packing mode.
Definition: cap.h:412
size_t subgroup_count
The number of parameters in subgroup_params.
Definition: cap.h:397
struct bt_audio_codec_qos * qos
Quality of Service configuration.
Definition: cap.h:403
uint8_t * data
BIS Codec Specific Configuration.
Definition: cap.h:381
struct bt_cap_stream * stream
Audio stream.
Definition: cap.h:372
size_t data_len
The length of the p data array.
Definition: cap.h:378
struct bt_cap_initiator_broadcast_stream_param * stream_params
Array of stream parameters.
Definition: cap.h:389
size_t stream_count
The number of parameters in stream_params.
Definition: cap.h:386
struct bt_audio_codec_cfg * codec_cfg
Subgroup Codec configuration.
Definition: cap.h:392
Callback structure for CAP procedures.
Definition: cap.h:58
Definition: cap.h:148
struct bt_bap_stream_ops * ops
Definition: cap.h:150
struct bt_bap_stream bap_stream
Definition: cap.h:149
Parameters for the bt_cap_initiator_unicast_audio_start() function.
Definition: cap.h:239
enum bt_cap_set_type type
The type of the set.
Definition: cap.h:241
size_t count
The number of parameters in stream_params.
Definition: cap.h:244
struct bt_cap_unicast_audio_start_stream_param * stream_params
Array of stream parameters.
Definition: cap.h:247
Stream specific parameters for the bt_cap_initiator_unicast_audio_start() function.
Definition: cap.h:215
struct bt_cap_stream * stream
Stream for the member.
Definition: cap.h:220
struct bt_audio_codec_cfg * codec_cfg
Codec configuration.
Definition: cap.h:235
union bt_cap_set_member member
Coordinated or ad-hoc set member.
Definition: cap.h:217
struct bt_bap_ep * ep
Endpoint reference for the stream.
Definition: cap.h:223
Parameters for the bt_cap_initiator_unicast_audio_stop() function.
Definition: cap.h:279
size_t count
The number of streams in streams.
Definition: cap.h:284
enum bt_cap_set_type type
The type of the set.
Definition: cap.h:281
struct bt_cap_stream ** streams
Array of streams to stop.
Definition: cap.h:287
Parameters for the bt_cap_initiator_unicast_audio_update() function.
Definition: cap.h:267
struct bt_cap_unicast_audio_update_stream_param * stream_params
Array of stream parameters.
Definition: cap.h:275
enum bt_cap_set_type type
The type of the set.
Definition: cap.h:269
size_t count
The number of parameters in stream_params.
Definition: cap.h:272
Stream specific parameters for the bt_cap_initiator_unicast_audio_update() function.
Definition: cap.h:251
size_t meta_len
The length of meta.
Definition: cap.h:256
struct bt_cap_stream * stream
Stream to update.
Definition: cap.h:253
uint8_t * meta
The new metadata.
Definition: cap.h:263
struct bt_bap_unicast_group * unicast_group
The source unicast group with the streams.
Definition: cap.h:586
uint8_t broadcast_code[BT_ISO_BROADCAST_CODE_SIZE]
16-octet broadcast code.
Definition: cap.h:608
bool encrypt
Whether or not to encrypt the streams.
Definition: cap.h:594
Struct representing a coordinated set instance on a remote device.
Definition: csip.h:280
Struct representing a remote device as a set member.
Definition: csip.h:288
Register structure for Coordinated Set Identification Service.
Definition: csip.h:112
ISO Meta Data structure for transmitted ISO packets.
Definition: iso.h:307
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:140
struct bt_conn * member
Connection pointer if the type is BT_CAP_SET_TYPE_AD_HOC.
Definition: cap.h:142
struct bt_csip_set_coordinator_csis_inst * csip
CSIP Coordinated Set struct used if type is BT_CAP_SET_TYPE_CSIP.
Definition: cap.h:145