Zephyr Project API  3.1.0
A Scalable Open Source RTOS
capabilities.h
Go to the documentation of this file.
1/* @file
2 * @brief Internal APIs for Audio Capabilities handling
3 *
4 * Copyright (c) 2021 Intel Corporation
5 * Copyright (c) 2021-2022 Nordic Semiconductor ASA
6 *
7 * SPDX-License-Identifier: Apache-2.0
8 */
9
10#ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_CAPABILITIES_H_
11#define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_CAPABILITIES_H_
12
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19/* Get list of capabilities by type */
21
22
27};
28
41#define BT_AUDIO_CAPABILITY_PREF(_framing, _phy, _rtn, _latency, _pd_min, \
42 _pd_max, _pref_pd_min, _pref_pd_max) \
43 { \
44 .framing = _framing, \
45 .phy = _phy, \
46 .rtn = _rtn, \
47 .latency = _latency, \
48 .pd_min = _pd_min, \
49 .pd_max = _pd_max, \
50 .pref_pd_min = _pref_pd_min, \
51 .pref_pd_max = _pref_pd_max, \
52 }
53
65
68
71
74
81
88
91
94};
95
96struct bt_audio_capability; /* Handle circular dependency */
97
116 struct bt_audio_stream *(*config)(struct bt_conn *conn,
117 struct bt_audio_ep *ep,
118 enum bt_audio_dir dir,
119 struct bt_audio_capability *cap,
120 struct bt_codec *codec);
121
133 int (*reconfig)(struct bt_audio_stream *stream,
134 struct bt_audio_capability *cap,
135 struct bt_codec *codec);
136
147 int (*qos)(struct bt_audio_stream *stream, struct bt_codec_qos *qos);
148
160 int (*enable)(struct bt_audio_stream *stream,
161 struct bt_codec_data *meta,
162 size_t meta_count);
163
173 int (*start)(struct bt_audio_stream *stream);
174
186 int (*metadata)(struct bt_audio_stream *stream,
187 struct bt_codec_data *meta,
188 size_t meta_count);
189
199 int (*disable)(struct bt_audio_stream *stream);
200
210 int (*stop)(struct bt_audio_stream *stream);
211
221 int (*release)(struct bt_audio_stream *stream);
222};
223
242};
243
253
263
271 enum bt_audio_location location);
272
273#ifdef __cplusplus
274}
275#endif
276
277#endif /* ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_CAPABILITIES_H_ */
Bluetooth Audio handling.
int bt_audio_capability_set_location(enum bt_audio_dir dir, enum bt_audio_location location)
Set the location for an endpoint type.
sys_slist_t * bt_audio_capability_get(enum bt_audio_dir dir)
int bt_audio_capability_unregister(struct bt_audio_capability *cap)
Unregister Audio Capability.
bt_audio_capability_framing
Audio Capability type.
Definition: capabilities.h:24
@ BT_AUDIO_CAPABILITY_UNFRAMED_NOT_SUPPORTED
Definition: capabilities.h:26
@ BT_AUDIO_CAPABILITY_UNFRAMED_SUPPORTED
Definition: capabilities.h:25
int bt_audio_capability_register(struct bt_audio_capability *cap)
Register Audio Capability.
bt_audio_dir
Audio Capability type.
Definition: audio.h:309
bt_audio_location
Location values for BT Audio.
Definition: audio.h:224
struct _slist sys_slist_t
Definition: slist.h:40
struct _snode sys_snode_t
Definition: slist.h:33
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
Capability operations structure.
Definition: capabilities.h:102
int(* enable)(struct bt_audio_stream *stream, struct bt_codec_data *meta, size_t meta_count)
Capability Enable callback.
Definition: capabilities.h:160
int(* qos)(struct bt_audio_stream *stream, struct bt_codec_qos *qos)
Capability QoS callback.
Definition: capabilities.h:147
int(* reconfig)(struct bt_audio_stream *stream, struct bt_audio_capability *cap, struct bt_codec *codec)
Capability reconfig callback.
Definition: capabilities.h:133
int(* release)(struct bt_audio_stream *stream)
Capability release callback.
Definition: capabilities.h:221
int(* start)(struct bt_audio_stream *stream)
Capability Start callback.
Definition: capabilities.h:173
int(* metadata)(struct bt_audio_stream *stream, struct bt_codec_data *meta, size_t meta_count)
Capability Metadata callback.
Definition: capabilities.h:186
int(* disable)(struct bt_audio_stream *stream)
Capability Disable callback.
Definition: capabilities.h:199
int(* stop)(struct bt_audio_stream *stream)
Capability Stop callback.
Definition: capabilities.h:210
Audio Capability Preference structure.
Definition: capabilities.h:55
uint32_t pd_min
Minimum Presentation Delay in us.
Definition: capabilities.h:80
uint8_t framing
Framing support value.
Definition: capabilities.h:64
uint32_t pref_pd_max
Preferred maximum Presentation Delay in us.
Definition: capabilities.h:93
uint8_t rtn
Definition: capabilities.h:70
uint32_t pd_max
Maximum Presentation Delay in us.
Definition: capabilities.h:87
uint8_t phy
Definition: capabilities.h:67
uint32_t pref_pd_min
Preferred minimum Presentation Delay in us.
Definition: capabilities.h:90
uint16_t latency
Definition: capabilities.h:73
Audio Capability structure.
Definition: capabilities.h:230
struct bt_codec * codec
Definition: capabilities.h:236
struct bt_audio_capability_ops * ops
Definition: capabilities.h:240
struct bt_audio_capability_pref pref
Definition: capabilities.h:238
uint16_t context
Definition: capabilities.h:234
sys_snode_t node
Definition: capabilities.h:241
enum bt_audio_dir dir
Definition: capabilities.h:232
Audio stream structure.
Definition: audio.h:889
Codec configuration structure.
Definition: audio.h:162
Codec QoS structure.
Definition: audio.h:377
Codec structure.
Definition: audio.h:256