Zephyr API Documentation  3.0.0
A Scalable Open Source RTOS
3.0.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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
115 struct bt_audio_stream *(*config)(struct bt_conn *conn,
116 struct bt_audio_ep *ep,
117 struct bt_audio_capability *cap,
118 struct bt_codec *codec);
119
131 int (*reconfig)(struct bt_audio_stream *stream,
132 struct bt_audio_capability *cap,
133 struct bt_codec *codec);
134
145 int (*qos)(struct bt_audio_stream *stream, struct bt_codec_qos *qos);
146
158 int (*enable)(struct bt_audio_stream *stream, uint8_t meta_count,
159 struct bt_codec_data *meta);
160
170 int (*start)(struct bt_audio_stream *stream);
171
183 int (*metadata)(struct bt_audio_stream *stream, uint8_t meta_count,
184 struct bt_codec_data *meta);
185
195 int (*disable)(struct bt_audio_stream *stream);
196
206 int (*stop)(struct bt_audio_stream *stream);
207
217 int (*release)(struct bt_audio_stream *stream);
218};
219
238};
239
249
259
260#ifdef __cplusplus
261}
262#endif
263
264#endif /* ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_CAPABILITIES_H_ */
Bluetooth Audio handling.
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
sys_slist_t * bt_audio_capability_get(uint8_t type)
int bt_audio_capability_register(struct bt_audio_capability *cap)
Register Audio Capability.
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:60
__UINT8_TYPE__ uint8_t
Definition: stdint.h:58
__UINT16_TYPE__ uint16_t
Definition: stdint.h:59
Capability operations structure.
Definition: capabilities.h:102
int(* metadata)(struct bt_audio_stream *stream, uint8_t meta_count, struct bt_codec_data *meta)
Capability Metadata callback.
Definition: capabilities.h:183
int(* qos)(struct bt_audio_stream *stream, struct bt_codec_qos *qos)
Capability QoS callback.
Definition: capabilities.h:145
int(* enable)(struct bt_audio_stream *stream, uint8_t meta_count, struct bt_codec_data *meta)
Capability Enable callback.
Definition: capabilities.h:158
int(* reconfig)(struct bt_audio_stream *stream, struct bt_audio_capability *cap, struct bt_codec *codec)
Capability reconfig callback.
Definition: capabilities.h:131
int(* release)(struct bt_audio_stream *stream)
Capability release callback.
Definition: capabilities.h:217
int(* start)(struct bt_audio_stream *stream)
Capability Start callback.
Definition: capabilities.h:170
int(* disable)(struct bt_audio_stream *stream)
Capability Disable callback.
Definition: capabilities.h:195
int(* stop)(struct bt_audio_stream *stream)
Capability Stop callback.
Definition: capabilities.h:206
Audio Capability Preference structure.
Definition: capabilities.h:55
uint32_t pd_min
Minimun 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 minimun Presentation Delay in us.
Definition: capabilities.h:90
uint16_t latency
Definition: capabilities.h:73
Audio Capability structure.
Definition: capabilities.h:226
struct bt_codec * codec
Definition: capabilities.h:232
struct bt_audio_capability_ops * ops
Definition: capabilities.h:236
struct bt_audio_capability_pref pref
Definition: capabilities.h:234
uint8_t type
Definition: capabilities.h:228
uint16_t context
Definition: capabilities.h:230
sys_snode_t node
Definition: capabilities.h:237
Audio stream structure.
Definition: audio.h:895
Codec configuration structure.
Definition: audio.h:72
Codec QoS structure.
Definition: audio.h:376
Codec structure.
Definition: audio.h:201