Bluetooth: Audio: Rename bt_audio_iso to bt_bap_iso

Rename the internal bt_audio_iso struct and API to bt_bap_iso

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This commit is contained in:
Emil Gydesen 2023-03-01 11:52:29 +01:00 committed by Carles Cufí
commit e2765d7bd5
13 changed files with 157 additions and 168 deletions

View file

@ -184,7 +184,7 @@ struct bt_bap_stream {
*
* This is only used for Unicast Client streams, and is handled internally.
*/
struct bt_audio_iso *audio_iso;
struct bt_bap_iso *bap_iso;
#endif /* CONFIG_BT_BAP_UNICAST_CLIENT */
/** Unicast or Broadcast group - Used internally */

View file

@ -375,7 +375,7 @@ config BT_BAP_STREAM
BT_BAP_BROADCAST_SOURCE || BT_BAP_BROADCAST_SINK
parent-module = BT
module = BT_AUDIO_ISO
module = BT_BAP_ISO
module-str = "Bluetooth Audio ISO"
source "subsys/logging/Kconfig.template.log_config_inherit"

View file

@ -393,7 +393,7 @@ void ascs_ep_set_state(struct bt_bap_ep *ep, uint8_t state)
if (ep->iso == NULL ||
ep->iso->chan.state == BT_ISO_STATE_DISCONNECTED) {
if (ep->iso != NULL) {
bt_audio_iso_unbind_ep(ep->iso, ep);
bt_bap_iso_unbind_ep(ep->iso, ep);
}
bt_bap_stream_detach(stream);
@ -638,7 +638,7 @@ static void ascs_iso_recv(struct bt_iso_chan *chan,
const struct bt_iso_recv_info *info,
struct net_buf *buf)
{
struct bt_audio_iso *iso = CONTAINER_OF(chan, struct bt_audio_iso, chan);
struct bt_bap_iso *iso = CONTAINER_OF(chan, struct bt_bap_iso, chan);
const struct bt_bap_stream_ops *ops;
struct bt_bap_stream *stream;
struct bt_bap_ep *ep;
@ -688,7 +688,7 @@ static void ascs_iso_recv(struct bt_iso_chan *chan,
static void ascs_iso_sent(struct bt_iso_chan *chan)
{
struct bt_audio_iso *iso = CONTAINER_OF(chan, struct bt_audio_iso, chan);
struct bt_bap_iso *iso = CONTAINER_OF(chan, struct bt_bap_iso, chan);
const struct bt_bap_stream_ops *ops;
struct bt_bap_stream *stream;
struct bt_bap_ep *ep;
@ -745,7 +745,7 @@ static void ascs_ep_iso_connected(struct bt_bap_ep *ep)
static void ascs_iso_connected(struct bt_iso_chan *chan)
{
struct bt_audio_iso *iso = CONTAINER_OF(chan, struct bt_audio_iso, chan);
struct bt_bap_iso *iso = CONTAINER_OF(chan, struct bt_bap_iso, chan);
if (iso->rx.ep == NULL && iso->tx.ep == NULL) {
LOG_ERR("iso %p not bound with ep", chan);
@ -800,7 +800,7 @@ static void ascs_ep_iso_disconnected(struct bt_bap_ep *ep, uint8_t reason)
}
if (ep->status.state == BT_BAP_EP_STATE_RELEASING) {
bt_audio_iso_unbind_ep(ep->iso, ep);
bt_bap_iso_unbind_ep(ep->iso, ep);
bt_bap_stream_detach(stream);
ascs_ep_set_state(ep, BT_BAP_EP_STATE_IDLE);
} else {
@ -824,7 +824,7 @@ static void ascs_ep_iso_disconnected(struct bt_bap_ep *ep, uint8_t reason)
static void ascs_iso_disconnected(struct bt_iso_chan *chan, uint8_t reason)
{
struct bt_audio_iso *iso = CONTAINER_OF(chan, struct bt_audio_iso, chan);
struct bt_bap_iso *iso = CONTAINER_OF(chan, struct bt_bap_iso, chan);
if (iso->rx.ep == NULL && iso->tx.ep == NULL) {
LOG_ERR("iso %p not bound with ep", chan);
@ -1102,15 +1102,15 @@ BT_CONN_CB_DEFINE(conn_cb) = {
.disconnected = disconnected,
};
struct audio_iso_find_params {
struct bap_iso_find_params {
struct bt_conn *acl;
uint8_t cig_id;
uint8_t cis_id;
};
static bool audio_iso_find_func(struct bt_audio_iso *iso, void *user_data)
static bool bap_iso_find_func(struct bt_bap_iso *iso, void *user_data)
{
struct audio_iso_find_params *params = user_data;
struct bap_iso_find_params *params = user_data;
const struct bt_bap_ep *ep;
if (iso->rx.ep != NULL) {
@ -1126,28 +1126,26 @@ static bool audio_iso_find_func(struct bt_audio_iso *iso, void *user_data)
ep->cis_id == params->cis_id;
}
static struct bt_audio_iso *audio_iso_get_or_new(struct bt_ascs *ascs,
uint8_t cig_id,
uint8_t cis_id)
static struct bt_bap_iso *bap_iso_get_or_new(struct bt_ascs *ascs, uint8_t cig_id, uint8_t cis_id)
{
struct bt_audio_iso *iso;
struct audio_iso_find_params params = {
struct bt_bap_iso *iso;
struct bap_iso_find_params params = {
.acl = ascs->conn,
.cig_id = cig_id,
.cis_id = cis_id,
};
iso = bt_audio_iso_find(audio_iso_find_func, &params);
iso = bt_bap_iso_find(bap_iso_find_func, &params);
if (iso) {
return iso;
}
iso = bt_audio_iso_new();
iso = bt_bap_iso_new();
if (!iso) {
return NULL;
}
bt_audio_iso_init(iso, &ascs_iso_ops);
bt_bap_iso_init(iso, &ascs_iso_ops);
return iso;
}
@ -1707,27 +1705,27 @@ static int ase_stream_qos(struct bt_bap_stream *stream, struct bt_codec_qos *qos
/* QoS->QoS transition. Unbind ISO if CIG/CIS changed. */
if (ep->iso != NULL && (ep->cig_id != cig_id || ep->cis_id != cis_id)) {
bt_audio_iso_unbind_ep(ep->iso, ep);
bt_bap_iso_unbind_ep(ep->iso, ep);
}
if (ep->iso == NULL) {
struct bt_audio_iso *iso;
struct bt_bap_iso *iso;
iso = audio_iso_get_or_new(ascs, cig_id, cis_id);
iso = bap_iso_get_or_new(ascs, cig_id, cis_id);
if (iso == NULL) {
LOG_ERR("Could not allocate audio_iso");
LOG_ERR("Could not allocate bap_iso");
return -ENOMEM;
}
if (bt_audio_iso_get_ep(false, iso, ep->dir) != NULL) {
if (bt_bap_iso_get_ep(false, iso, ep->dir) != NULL) {
LOG_ERR("iso %p already in use in dir %s",
&iso->chan, bt_audio_dir_str(ep->dir));
bt_audio_iso_unref(iso);
bt_bap_iso_unref(iso);
return -EALREADY;
}
bt_audio_iso_bind_ep(iso, ep);
bt_audio_iso_unref(iso);
bt_bap_iso_bind_ep(iso, ep);
bt_bap_iso_unref(iso);
}
stream->qos = qos;

View file

@ -113,7 +113,7 @@ static void broadcast_sink_set_ep_state(struct bt_bap_ep *ep, uint8_t state)
struct bt_bap_stream *stream = ep->stream;
if (stream != NULL) {
bt_audio_iso_unbind_ep(ep->iso, ep);
bt_bap_iso_unbind_ep(ep->iso, ep);
stream->ep = NULL;
stream->codec = NULL;
ep->stream = NULL;
@ -125,7 +125,7 @@ static void broadcast_sink_iso_recv(struct bt_iso_chan *chan,
const struct bt_iso_recv_info *info,
struct net_buf *buf)
{
struct bt_audio_iso *iso = CONTAINER_OF(chan, struct bt_audio_iso, chan);
struct bt_bap_iso *iso = CONTAINER_OF(chan, struct bt_bap_iso, chan);
const struct bt_bap_stream_ops *ops;
struct bt_bap_stream *stream;
struct bt_bap_ep *ep = iso->rx.ep;
@ -156,7 +156,7 @@ static void broadcast_sink_iso_recv(struct bt_iso_chan *chan,
static void broadcast_sink_iso_connected(struct bt_iso_chan *chan)
{
struct bt_audio_iso *iso = CONTAINER_OF(chan, struct bt_audio_iso, chan);
struct bt_bap_iso *iso = CONTAINER_OF(chan, struct bt_bap_iso, chan);
const struct bt_bap_stream_ops *ops;
struct bt_bap_stream *stream;
struct bt_bap_ep *ep = iso->rx.ep;
@ -188,7 +188,7 @@ static void broadcast_sink_iso_connected(struct bt_iso_chan *chan)
static void broadcast_sink_iso_disconnected(struct bt_iso_chan *chan,
uint8_t reason)
{
struct bt_audio_iso *iso = CONTAINER_OF(chan, struct bt_audio_iso, chan);
struct bt_bap_iso *iso = CONTAINER_OF(chan, struct bt_bap_iso, chan);
const struct bt_bap_stream_ops *ops;
struct bt_bap_stream *stream;
struct bt_bap_ep *ep = iso->rx.ep;
@ -919,7 +919,7 @@ static int bt_bap_broadcast_sink_setup_stream(uint8_t index, struct bt_bap_strea
struct bt_codec *codec)
{
static struct bt_codec_qos codec_qos;
struct bt_audio_iso *iso;
struct bt_bap_iso *iso;
struct bt_bap_ep *ep;
if (stream->group != NULL) {
@ -933,19 +933,19 @@ static int bt_bap_broadcast_sink_setup_stream(uint8_t index, struct bt_bap_strea
return -ENOMEM;
}
iso = bt_audio_iso_new();
iso = bt_bap_iso_new();
if (iso == NULL) {
LOG_DBG("Could not allocate iso");
return -ENOMEM;
}
bt_audio_iso_init(iso, &broadcast_sink_iso_ops);
bt_audio_iso_bind_ep(iso, ep);
bt_bap_iso_init(iso, &broadcast_sink_iso_ops);
bt_bap_iso_bind_ep(iso, ep);
bt_audio_codec_qos_to_iso_qos(iso->chan.qos->rx, &codec_qos);
bt_audio_codec_to_iso_path(iso->chan.qos->rx->path, codec);
bt_audio_iso_unref(iso);
bt_bap_iso_unref(iso);
bt_bap_stream_attach(NULL, stream, ep, codec);
stream->qos = &codec_qos;
@ -959,7 +959,7 @@ static void broadcast_sink_cleanup_streams(struct bt_bap_broadcast_sink *sink)
SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&sink->streams, stream, next, _node) {
if (stream->ep != NULL) {
bt_audio_iso_unbind_ep(stream->ep->iso, stream->ep);
bt_bap_iso_unbind_ep(stream->ep->iso, stream->ep);
stream->ep->stream = NULL;
stream->ep = NULL;
}

View file

@ -118,7 +118,7 @@ static void broadcast_source_set_ep_state(struct bt_bap_ep *ep, uint8_t state)
static void broadcast_source_iso_sent(struct bt_iso_chan *chan)
{
struct bt_audio_iso *iso = CONTAINER_OF(chan, struct bt_audio_iso, chan);
struct bt_bap_iso *iso = CONTAINER_OF(chan, struct bt_bap_iso, chan);
const struct bt_bap_stream_ops *ops;
struct bt_bap_stream *stream;
struct bt_bap_ep *ep = iso->tx.ep;
@ -147,7 +147,7 @@ static void broadcast_source_iso_sent(struct bt_iso_chan *chan)
static void broadcast_source_iso_connected(struct bt_iso_chan *chan)
{
struct bt_audio_iso *iso = CONTAINER_OF(chan, struct bt_audio_iso, chan);
struct bt_bap_iso *iso = CONTAINER_OF(chan, struct bt_bap_iso, chan);
const struct bt_bap_stream_ops *ops;
struct bt_bap_stream *stream;
struct bt_bap_ep *ep = iso->tx.ep;
@ -178,7 +178,7 @@ static void broadcast_source_iso_connected(struct bt_iso_chan *chan)
static void broadcast_source_iso_disconnected(struct bt_iso_chan *chan, uint8_t reason)
{
struct bt_audio_iso *iso = CONTAINER_OF(chan, struct bt_audio_iso, chan);
struct bt_bap_iso *iso = CONTAINER_OF(chan, struct bt_bap_iso, chan);
const struct bt_bap_stream_ops *ops;
struct bt_bap_stream *stream;
struct bt_bap_ep *ep = iso->tx.ep;
@ -266,7 +266,7 @@ static int broadcast_source_setup_stream(uint8_t index, struct bt_bap_stream *st
struct bt_codec *codec, struct bt_codec_qos *qos,
struct bt_bap_broadcast_source *source)
{
struct bt_audio_iso *iso;
struct bt_bap_iso *iso;
struct bt_bap_ep *ep;
ep = broadcast_source_new_ep(index);
@ -275,19 +275,19 @@ static int broadcast_source_setup_stream(uint8_t index, struct bt_bap_stream *st
return -ENOMEM;
}
iso = bt_audio_iso_new();
iso = bt_bap_iso_new();
if (iso == NULL) {
LOG_DBG("Could not allocate iso");
return -ENOMEM;
}
bt_audio_iso_init(iso, &broadcast_source_iso_ops);
bt_audio_iso_bind_ep(iso, ep);
bt_bap_iso_init(iso, &broadcast_source_iso_ops);
bt_bap_iso_bind_ep(iso, ep);
bt_audio_codec_qos_to_iso_qos(iso->chan.qos->tx, qos);
bt_audio_codec_to_iso_path(iso->chan.qos->tx->path, codec);
bt_audio_iso_unref(iso);
bt_bap_iso_unref(iso);
bt_bap_stream_attach(NULL, stream, ep, codec);
stream->qos = qos;
@ -500,7 +500,7 @@ static void broadcast_source_cleanup(struct bt_bap_broadcast_source *source)
SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&subgroup->streams, stream,
next_stream, _node) {
bt_audio_iso_unbind_ep(stream->ep->iso, stream->ep);
bt_bap_iso_unbind_ep(stream->ep->iso, stream->ep);
stream->ep->stream = NULL;
stream->ep = NULL;
stream->codec = NULL;

View file

@ -42,7 +42,7 @@ struct bt_bap_ep {
struct bt_codec codec;
struct bt_codec_qos qos;
struct bt_codec_qos_pref qos_pref;
struct bt_audio_iso *iso;
struct bt_bap_iso *iso;
/* Used by the unicast server */
bool receiver_ready;

View file

@ -13,16 +13,16 @@
#include <zephyr/logging/log.h>
LOG_MODULE_REGISTER(bt_audio_iso, CONFIG_BT_AUDIO_ISO_LOG_LEVEL);
LOG_MODULE_REGISTER(bt_bap_iso, CONFIG_BT_BAP_ISO_LOG_LEVEL);
/* TODO: Optimize the ISO_POOL_SIZE */
#define ISO_POOL_SIZE CONFIG_BT_ISO_MAX_CHAN
static struct bt_audio_iso iso_pool[ISO_POOL_SIZE];
static struct bt_bap_iso iso_pool[ISO_POOL_SIZE];
struct bt_audio_iso *bt_audio_iso_new(void)
struct bt_bap_iso *bt_bap_iso_new(void)
{
struct bt_audio_iso *iso = NULL;
struct bt_bap_iso *iso = NULL;
for (size_t i = 0; i < ARRAY_SIZE(iso_pool); i++) {
if (atomic_cas(&iso_pool[i].ref, 0, 1)) {
@ -35,12 +35,12 @@ struct bt_audio_iso *bt_audio_iso_new(void)
return NULL;
}
(void)memset(iso, 0, offsetof(struct bt_audio_iso, ref));
(void)memset(iso, 0, offsetof(struct bt_bap_iso, ref));
return iso;
}
struct bt_audio_iso *bt_audio_iso_ref(struct bt_audio_iso *iso)
struct bt_bap_iso *bt_bap_iso_ref(struct bt_bap_iso *iso)
{
atomic_val_t old;
@ -62,7 +62,7 @@ struct bt_audio_iso *bt_audio_iso_ref(struct bt_audio_iso *iso)
return iso;
}
void bt_audio_iso_unref(struct bt_audio_iso *iso)
void bt_bap_iso_unref(struct bt_bap_iso *iso)
{
atomic_val_t old;
@ -73,10 +73,10 @@ void bt_audio_iso_unref(struct bt_audio_iso *iso)
__ASSERT(old > 0, "iso reference counter is 0");
}
void bt_audio_iso_foreach(bt_audio_iso_func_t func, void *user_data)
void bt_bap_iso_foreach(bt_bap_iso_func_t func, void *user_data)
{
for (size_t i = 0; i < ARRAY_SIZE(iso_pool); i++) {
struct bt_audio_iso *iso = bt_audio_iso_ref(&iso_pool[i]);
struct bt_bap_iso *iso = bt_bap_iso_ref(&iso_pool[i]);
bool iter;
if (!iso) {
@ -84,7 +84,7 @@ void bt_audio_iso_foreach(bt_audio_iso_func_t func, void *user_data)
}
iter = func(iso, user_data);
bt_audio_iso_unref(iso);
bt_bap_iso_unref(iso);
if (!iter) {
return;
@ -92,40 +92,39 @@ void bt_audio_iso_foreach(bt_audio_iso_func_t func, void *user_data)
}
}
struct bt_audio_iso_find_param {
struct bt_audio_iso *iso;
bt_audio_iso_func_t func;
struct bt_bap_iso_find_param {
struct bt_bap_iso *iso;
bt_bap_iso_func_t func;
void *user_data;
};
static bool bt_audio_iso_find_cb(struct bt_audio_iso *iso, void *user_data)
static bool bt_bap_iso_find_cb(struct bt_bap_iso *iso, void *user_data)
{
struct bt_audio_iso_find_param *param = user_data;
struct bt_bap_iso_find_param *param = user_data;
bool found;
found = param->func(iso, param->user_data);
if (found) {
param->iso = bt_audio_iso_ref(iso);
param->iso = bt_bap_iso_ref(iso);
}
return !found;
}
struct bt_audio_iso *bt_audio_iso_find(bt_audio_iso_func_t func,
void *user_data)
struct bt_bap_iso *bt_bap_iso_find(bt_bap_iso_func_t func, void *user_data)
{
struct bt_audio_iso_find_param param = {
struct bt_bap_iso_find_param param = {
.iso = NULL,
.func = func,
.user_data = user_data,
};
bt_audio_iso_foreach(bt_audio_iso_find_cb, &param);
bt_bap_iso_foreach(bt_bap_iso_find_cb, &param);
return param.iso;
}
void bt_audio_iso_init(struct bt_audio_iso *iso, struct bt_iso_chan_ops *ops)
void bt_bap_iso_init(struct bt_bap_iso *iso, struct bt_iso_chan_ops *ops)
{
iso->chan.ops = ops;
iso->chan.qos = &iso->qos;
@ -145,7 +144,7 @@ void bt_audio_iso_init(struct bt_audio_iso *iso, struct bt_iso_chan_ops *ops)
iso->chan.qos->tx->path->cc = iso->tx.cc;
}
void bt_audio_iso_bind_ep(struct bt_audio_iso *iso, struct bt_bap_ep *ep)
void bt_bap_iso_bind_ep(struct bt_bap_iso *iso, struct bt_bap_ep *ep)
{
__ASSERT_NO_MSG(ep != NULL);
__ASSERT_NO_MSG(iso != NULL);
@ -178,10 +177,10 @@ void bt_audio_iso_bind_ep(struct bt_audio_iso *iso, struct bt_bap_ep *ep)
}
}
ep->iso = bt_audio_iso_ref(iso);
ep->iso = bt_bap_iso_ref(iso);
}
void bt_audio_iso_unbind_ep(struct bt_audio_iso *iso, struct bt_bap_ep *ep)
void bt_bap_iso_unbind_ep(struct bt_bap_iso *iso, struct bt_bap_ep *ep)
{
__ASSERT_NO_MSG(ep != NULL);
__ASSERT_NO_MSG(iso != NULL);
@ -215,11 +214,11 @@ void bt_audio_iso_unbind_ep(struct bt_audio_iso *iso, struct bt_bap_ep *ep)
}
}
bt_audio_iso_unref(ep->iso);
bt_bap_iso_unref(ep->iso);
ep->iso = NULL;
}
struct bt_bap_ep *bt_audio_iso_get_ep(bool unicast_client, struct bt_audio_iso *iso,
struct bt_bap_ep *bt_bap_iso_get_ep(bool unicast_client, struct bt_bap_iso *iso,
enum bt_audio_dir dir)
{
__ASSERT(dir == BT_AUDIO_DIR_SINK || dir == BT_AUDIO_DIR_SOURCE,
@ -244,7 +243,7 @@ struct bt_bap_ep *bt_audio_iso_get_ep(bool unicast_client, struct bt_audio_iso *
}
}
struct bt_bap_ep *bt_audio_iso_get_paired_ep(const struct bt_bap_ep *ep)
struct bt_bap_ep *bt_bap_iso_get_paired_ep(const struct bt_bap_ep *ep)
{
if (ep->iso->rx.ep == ep) {
return ep->iso->tx.ep;
@ -254,64 +253,57 @@ struct bt_bap_ep *bt_audio_iso_get_paired_ep(const struct bt_bap_ep *ep)
}
#if defined(CONFIG_BT_BAP_UNICAST_CLIENT)
void bt_audio_iso_bind_stream(struct bt_audio_iso *audio_iso, struct bt_bap_stream *stream)
void bt_bap_iso_bind_stream(struct bt_bap_iso *bap_iso, struct bt_bap_stream *stream)
{
struct bt_audio_iso_dir *audio_iso_ep;
struct bt_bap_iso_dir *bap_iso_ep;
__ASSERT_NO_MSG(stream != NULL);
__ASSERT_NO_MSG(audio_iso != NULL);
__ASSERT(stream->audio_iso == NULL,
"stream %p bound with audio_iso %p already",
stream, stream->audio_iso);
__ASSERT_NO_MSG(bap_iso != NULL);
__ASSERT(stream->bap_iso == NULL, "stream %p bound with bap_iso %p already", stream,
stream->bap_iso);
LOG_DBG("audio_iso %p stream %p dir %s",
audio_iso, stream, bt_audio_dir_str(stream->dir));
LOG_DBG("bap_iso %p stream %p dir %s", bap_iso, stream, bt_audio_dir_str(stream->dir));
/* For the unicast client, the direction and tx/rx is reversed */
if (stream->dir == BT_AUDIO_DIR_SOURCE) {
audio_iso_ep = &audio_iso->rx;
bap_iso_ep = &bap_iso->rx;
} else {
audio_iso_ep = &audio_iso->tx;
bap_iso_ep = &bap_iso->tx;
}
__ASSERT(audio_iso_ep->stream == NULL,
"audio_iso %p bound with stream %p",
audio_iso, audio_iso_ep->stream);
audio_iso_ep->stream = stream;
__ASSERT(bap_iso_ep->stream == NULL, "bap_iso %p bound with stream %p", bap_iso,
bap_iso_ep->stream);
bap_iso_ep->stream = stream;
stream->audio_iso = bt_audio_iso_ref(audio_iso);
stream->bap_iso = bt_bap_iso_ref(bap_iso);
}
void bt_audio_iso_unbind_stream(struct bt_audio_iso *audio_iso, struct bt_bap_stream *stream)
void bt_bap_iso_unbind_stream(struct bt_bap_iso *bap_iso, struct bt_bap_stream *stream)
{
struct bt_audio_iso_dir *audio_iso_ep;
struct bt_bap_iso_dir *bap_iso_ep;
__ASSERT_NO_MSG(stream != NULL);
__ASSERT_NO_MSG(audio_iso != NULL);
__ASSERT(stream->audio_iso != NULL,
"stream %p not bound with an audio_iso",
stream);
__ASSERT_NO_MSG(bap_iso != NULL);
__ASSERT(stream->bap_iso != NULL, "stream %p not bound with an bap_iso", stream);
LOG_DBG("audio_iso %p stream %p dir %s",
audio_iso, stream, bt_audio_dir_str(stream->dir));
LOG_DBG("bap_iso %p stream %p dir %s", bap_iso, stream, bt_audio_dir_str(stream->dir));
/* For the unicast client, the direction and tx/rx is reversed */
if (stream->dir == BT_AUDIO_DIR_SOURCE) {
audio_iso_ep = &audio_iso->rx;
bap_iso_ep = &bap_iso->rx;
} else {
audio_iso_ep = &audio_iso->tx;
bap_iso_ep = &bap_iso->tx;
}
__ASSERT(audio_iso_ep->stream == stream,
"audio_iso %p (%p) not bound with stream %p (%p)",
audio_iso, audio_iso_ep->stream, stream, stream->audio_iso);
audio_iso_ep->stream = NULL;
__ASSERT(bap_iso_ep->stream == stream, "bap_iso %p (%p) not bound with stream %p (%p)",
bap_iso, bap_iso_ep->stream, stream, stream->bap_iso);
bap_iso_ep->stream = NULL;
bt_audio_iso_unref(audio_iso);
stream->audio_iso = NULL;
bt_bap_iso_unref(bap_iso);
stream->bap_iso = NULL;
}
struct bt_bap_stream *bt_audio_iso_get_stream(struct bt_audio_iso *iso, enum bt_audio_dir dir)
struct bt_bap_stream *bt_bap_iso_get_stream(struct bt_bap_iso *iso, enum bt_audio_dir dir)
{
__ASSERT(dir == BT_AUDIO_DIR_SINK || dir == BT_AUDIO_DIR_SOURCE,
"invalid dir: %u", dir);

View file

@ -11,7 +11,7 @@
#include <zephyr/bluetooth/audio/audio.h>
#include <zephyr/bluetooth/audio/bap.h>
struct bt_audio_iso_dir {
struct bt_bap_iso_dir {
struct bt_bap_stream *stream;
struct bt_bap_ep *ep;
struct bt_iso_chan_path path;
@ -19,12 +19,12 @@ struct bt_audio_iso_dir {
uint8_t cc[CONFIG_BT_CODEC_MAX_DATA_COUNT * CONFIG_BT_CODEC_MAX_DATA_LEN];
};
struct bt_audio_iso {
struct bt_bap_iso {
struct bt_iso_chan chan;
struct bt_iso_chan_qos qos;
struct bt_audio_iso_dir rx;
struct bt_audio_iso_dir tx;
struct bt_bap_iso_dir rx;
struct bt_bap_iso_dir tx;
/* Must be at the end so that everything else in the structure can be
* memset to zero without affecting the ref.
@ -32,22 +32,21 @@ struct bt_audio_iso {
atomic_t ref;
};
typedef bool (*bt_audio_iso_func_t)(struct bt_audio_iso *iso, void *user_data);
typedef bool (*bt_bap_iso_func_t)(struct bt_bap_iso *iso, void *user_data);
struct bt_audio_iso *bt_audio_iso_new(void);
struct bt_audio_iso *bt_audio_iso_ref(struct bt_audio_iso *iso);
void bt_audio_iso_unref(struct bt_audio_iso *iso);
void bt_audio_iso_foreach(bt_audio_iso_func_t func, void *user_data);
struct bt_audio_iso *bt_audio_iso_find(bt_audio_iso_func_t func,
void *user_data);
void bt_audio_iso_init(struct bt_audio_iso *iso, struct bt_iso_chan_ops *ops);
void bt_audio_iso_bind_ep(struct bt_audio_iso *iso, struct bt_bap_ep *ep);
void bt_audio_iso_unbind_ep(struct bt_audio_iso *iso, struct bt_bap_ep *ep);
struct bt_bap_ep *bt_audio_iso_get_ep(bool unicast_client, struct bt_audio_iso *iso,
struct bt_bap_iso *bt_bap_iso_new(void);
struct bt_bap_iso *bt_bap_iso_ref(struct bt_bap_iso *iso);
void bt_bap_iso_unref(struct bt_bap_iso *iso);
void bt_bap_iso_foreach(bt_bap_iso_func_t func, void *user_data);
struct bt_bap_iso *bt_bap_iso_find(bt_bap_iso_func_t func, void *user_data);
void bt_bap_iso_init(struct bt_bap_iso *iso, struct bt_iso_chan_ops *ops);
void bt_bap_iso_bind_ep(struct bt_bap_iso *iso, struct bt_bap_ep *ep);
void bt_bap_iso_unbind_ep(struct bt_bap_iso *iso, struct bt_bap_ep *ep);
struct bt_bap_ep *bt_bap_iso_get_ep(bool unicast_client, struct bt_bap_iso *iso,
enum bt_audio_dir dir);
struct bt_bap_ep *bt_audio_iso_get_paired_ep(const struct bt_bap_ep *ep);
struct bt_bap_ep *bt_bap_iso_get_paired_ep(const struct bt_bap_ep *ep);
/* Unicast client-only functions*/
void bt_audio_iso_bind_stream(struct bt_audio_iso *audio_iso, struct bt_bap_stream *stream);
void bt_audio_iso_unbind_stream(struct bt_audio_iso *audio_iso, struct bt_bap_stream *stream);
struct bt_bap_stream *bt_audio_iso_get_stream(struct bt_audio_iso *iso, enum bt_audio_dir dir);
void bt_bap_iso_bind_stream(struct bt_bap_iso *bap_iso, struct bt_bap_stream *stream);
void bt_bap_iso_unbind_stream(struct bt_bap_iso *bap_iso, struct bt_bap_stream *stream);
struct bt_bap_stream *bt_bap_iso_get_stream(struct bt_bap_iso *iso, enum bt_audio_dir dir);

View file

@ -251,7 +251,7 @@ void bt_bap_stream_reset(struct bt_bap_stream *stream)
}
if (stream->ep != NULL && stream->ep->iso != NULL) {
bt_audio_iso_unbind_ep(stream->ep->iso, stream->ep);
bt_bap_iso_unbind_ep(stream->ep->iso, stream->ep);
}
bt_bap_stream_detach(stream);

View file

@ -119,7 +119,7 @@ static bool unicast_client_can_disconnect_stream(const struct bt_bap_stream *str
if (iso_state == BT_ISO_STATE_CONNECTED || iso_state == BT_ISO_STATE_CONNECTING) {
const struct bt_bap_ep *pair_ep;
pair_ep = bt_audio_iso_get_paired_ep(stream_ep);
pair_ep = bt_bap_iso_get_paired_ep(stream_ep);
/* If there are no paired endpoint, or the paired endpoint is
* not in the streaming state, we can disconnect the CIS
@ -135,7 +135,7 @@ static bool unicast_client_can_disconnect_stream(const struct bt_bap_stream *str
static void unicast_client_ep_iso_recv(struct bt_iso_chan *chan,
const struct bt_iso_recv_info *info, struct net_buf *buf)
{
struct bt_audio_iso *iso = CONTAINER_OF(chan, struct bt_audio_iso, chan);
struct bt_bap_iso *iso = CONTAINER_OF(chan, struct bt_bap_iso, chan);
const struct bt_bap_stream_ops *ops;
struct bt_bap_stream *stream;
struct bt_bap_ep *ep = iso->rx.ep;
@ -184,7 +184,7 @@ static void unicast_client_ep_iso_recv(struct bt_iso_chan *chan,
static void unicast_client_ep_iso_sent(struct bt_iso_chan *chan)
{
struct bt_audio_iso *iso = CONTAINER_OF(chan, struct bt_audio_iso, chan);
struct bt_bap_iso *iso = CONTAINER_OF(chan, struct bt_bap_iso, chan);
struct bt_bap_stream *stream;
struct bt_bap_ep *ep = iso->tx.ep;
@ -229,7 +229,7 @@ static void unicast_client_ep_iso_connected(struct bt_bap_ep *ep)
static void unicast_client_iso_connected(struct bt_iso_chan *chan)
{
struct bt_audio_iso *iso = CONTAINER_OF(chan, struct bt_audio_iso, chan);
struct bt_bap_iso *iso = CONTAINER_OF(chan, struct bt_bap_iso, chan);
if (iso->rx.ep == NULL && iso->tx.ep == NULL) {
LOG_ERR("iso %p not bound with ep", chan);
@ -274,7 +274,7 @@ static void unicast_client_ep_iso_disconnected(struct bt_bap_ep *ep, uint8_t rea
static void unicast_client_iso_disconnected(struct bt_iso_chan *chan, uint8_t reason)
{
struct bt_audio_iso *iso = CONTAINER_OF(chan, struct bt_audio_iso, chan);
struct bt_bap_iso *iso = CONTAINER_OF(chan, struct bt_bap_iso, chan);
if (iso->rx.ep == NULL && iso->tx.ep == NULL) {
LOG_ERR("iso %p not bound with ep", chan);
@ -361,20 +361,20 @@ static struct bt_bap_ep *unicast_client_ep_find(struct bt_conn *conn, uint16_t h
return NULL;
}
struct bt_audio_iso *bt_bap_unicast_client_new_audio_iso(void)
struct bt_bap_iso *bt_bap_unicast_client_new_audio_iso(void)
{
struct bt_audio_iso *audio_iso;
struct bt_bap_iso *bap_iso;
audio_iso = bt_audio_iso_new();
if (audio_iso == NULL) {
bap_iso = bt_bap_iso_new();
if (bap_iso == NULL) {
return NULL;
}
bt_audio_iso_init(audio_iso, &unicast_client_iso_ops);
bt_bap_iso_init(bap_iso, &unicast_client_iso_ops);
LOG_DBG("New audio_iso %p", audio_iso);
LOG_DBG("New bap_iso %p", bap_iso);
return audio_iso;
return bap_iso;
}
static struct bt_bap_ep *unicast_client_ep_new(struct bt_conn *conn, enum bt_audio_dir dir,
@ -467,7 +467,7 @@ static void unicast_client_ep_qos_update(struct bt_bap_ep *ep,
{
struct bt_iso_chan_io_qos *iso_io_qos;
LOG_DBG("ep %p dir %s audio_iso %p", ep, bt_audio_dir_str(ep->dir), ep->iso);
LOG_DBG("ep %p dir %s bap_iso %p", ep, bt_audio_dir_str(ep->dir), ep->iso);
if (ep->dir == BT_AUDIO_DIR_SOURCE) {
/* If the endpoint is a source, then we need to
@ -1730,7 +1730,7 @@ static void audio_stream_qos_cleanup(const struct bt_conn *conn,
continue;
}
bt_audio_iso_unbind_ep(stream->ep->iso, stream->ep);
bt_bap_iso_unbind_ep(stream->ep->iso, stream->ep);
}
}
@ -1768,7 +1768,7 @@ static int unicast_client_stream_connect(struct bt_bap_stream *stream)
}
}
static int unicast_group_add_iso(struct bt_bap_unicast_group *group, struct bt_audio_iso *iso)
static int unicast_group_add_iso(struct bt_bap_unicast_group *group, struct bt_bap_iso *iso)
{
struct bt_iso_chan **chan_slot = NULL;
@ -1796,7 +1796,7 @@ static int unicast_group_add_iso(struct bt_bap_unicast_group *group, struct bt_a
return 0;
}
static void unicast_group_del_iso(struct bt_bap_unicast_group *group, struct bt_audio_iso *iso)
static void unicast_group_del_iso(struct bt_bap_unicast_group *group, struct bt_bap_iso *iso)
{
struct bt_bap_stream *stream;
@ -1818,7 +1818,7 @@ static void unicast_group_del_iso(struct bt_bap_unicast_group *group, struct bt_
}
}
static void unicast_client_codec_qos_to_iso_qos(struct bt_audio_iso *iso,
static void unicast_client_codec_qos_to_iso_qos(struct bt_bap_iso *iso,
const struct bt_codec_qos *qos,
enum bt_audio_dir dir)
{
@ -1830,7 +1830,7 @@ static void unicast_client_codec_qos_to_iso_qos(struct bt_audio_iso *iso,
* configure our TX parameters
*/
io_qos = iso->chan.qos->tx;
if (bt_audio_iso_get_ep(true, iso, BT_AUDIO_DIR_SOURCE) == NULL) {
if (bt_bap_iso_get_ep(true, iso, BT_AUDIO_DIR_SOURCE) == NULL) {
other_io_qos = iso->chan.qos->rx;
} else {
other_io_qos = NULL;
@ -1840,7 +1840,7 @@ static void unicast_client_codec_qos_to_iso_qos(struct bt_audio_iso *iso,
* configure our RX parameters
*/
io_qos = iso->chan.qos->rx;
if (bt_audio_iso_get_ep(true, iso, BT_AUDIO_DIR_SINK) == NULL) {
if (bt_bap_iso_get_ep(true, iso, BT_AUDIO_DIR_SINK) == NULL) {
other_io_qos = iso->chan.qos->tx;
} else {
other_io_qos = NULL;
@ -1859,7 +1859,7 @@ static void unicast_client_codec_qos_to_iso_qos(struct bt_audio_iso *iso,
static void unicast_group_add_stream(struct bt_bap_unicast_group *group,
struct bt_bap_unicast_group_stream_param *param,
struct bt_audio_iso *iso, enum bt_audio_dir dir)
struct bt_bap_iso *iso, enum bt_audio_dir dir)
{
struct bt_bap_stream *stream = param->stream;
struct bt_codec_qos *qos = param->qos;
@ -1873,12 +1873,12 @@ static void unicast_group_add_stream(struct bt_bap_unicast_group *group,
stream->group = group;
/* iso initialized already */
bt_audio_iso_bind_stream(iso, stream);
bt_bap_iso_bind_stream(iso, stream);
if (stream->ep != NULL) {
bt_audio_iso_bind_ep(iso, stream->ep);
bt_bap_iso_bind_ep(iso, stream->ep);
}
/* Store the Codec QoS in the audio_iso */
/* Store the Codec QoS in the bap_iso */
unicast_client_codec_qos_to_iso_qos(iso, qos, dir);
sys_slist_append(&group->streams, &stream->_node);
@ -1887,7 +1887,7 @@ static void unicast_group_add_stream(struct bt_bap_unicast_group *group,
static int unicast_group_add_stream_pair(struct bt_bap_unicast_group *group,
struct bt_bap_unicast_group_stream_pair_param *param)
{
struct bt_audio_iso *iso;
struct bt_bap_iso *iso;
int err;
__ASSERT_NO_MSG(group != NULL);
@ -1901,7 +1901,7 @@ static int unicast_group_add_stream_pair(struct bt_bap_unicast_group *group,
err = unicast_group_add_iso(group, iso);
if (err < 0) {
bt_audio_iso_unref(iso);
bt_bap_iso_unref(iso);
return err;
}
@ -1913,7 +1913,7 @@ static int unicast_group_add_stream_pair(struct bt_bap_unicast_group *group,
unicast_group_add_stream(group, param->tx_param, iso, BT_AUDIO_DIR_SINK);
}
bt_audio_iso_unref(iso);
bt_bap_iso_unref(iso);
return 0;
}
@ -1927,14 +1927,14 @@ static void unicast_group_del_stream(struct bt_bap_unicast_group *group,
if (sys_slist_find_and_remove(&group->streams, &stream->_node)) {
struct bt_bap_ep *ep = stream->ep;
if (stream->audio_iso != NULL) {
bt_audio_iso_unbind_stream(stream->audio_iso, stream);
if (stream->bap_iso != NULL) {
bt_bap_iso_unbind_stream(stream->bap_iso, stream);
}
if (ep != NULL && ep->iso != NULL) {
unicast_group_del_iso(group, ep->iso);
bt_audio_iso_unbind_ep(ep->iso, ep);
bt_bap_iso_unbind_ep(ep->iso, ep);
}
stream->group = NULL;
@ -1989,12 +1989,12 @@ static void unicast_group_free(struct bt_bap_unicast_group *group)
struct bt_bap_ep *ep = stream->ep;
stream->group = NULL;
if (stream->audio_iso != NULL) {
bt_audio_iso_unbind_stream(stream->audio_iso, stream);
if (stream->bap_iso != NULL) {
bt_bap_iso_unbind_stream(stream->bap_iso, stream);
}
if (ep != NULL && ep->iso != NULL) {
bt_audio_iso_unbind_ep(ep->iso, ep);
bt_bap_iso_unbind_ep(ep->iso, ep);
}
sys_slist_remove(&group->streams, NULL, &stream->_node);
@ -2351,11 +2351,11 @@ int bt_bap_unicast_client_qos(struct bt_conn *conn, struct bt_bap_unicast_group
return -EINVAL;
}
if (stream->audio_iso == NULL) {
if (stream->bap_iso == NULL) {
/* This can only happen if the stream was somehow added
* to a group without the audio_iso being bound to it
* to a group without the bap_iso being bound to it
*/
LOG_ERR("Could not find audio_iso for stream %p", stream);
LOG_ERR("Could not find bap_iso for stream %p", stream);
return -EINVAL;
}
}
@ -2381,8 +2381,8 @@ int bt_bap_unicast_client_qos(struct bt_conn *conn, struct bt_bap_unicast_group
op->num_ases++;
if (stream->ep->iso == NULL) {
/* Not yet bound with the audio_iso */
bt_audio_iso_bind_ep(stream->audio_iso, stream->ep);
/* Not yet bound with the bap_iso */
bt_bap_iso_bind_ep(stream->bap_iso, stream->ep);
}
err = bt_bap_unicast_client_ep_qos(stream->ep, buf, stream->qos);

View file

@ -32,4 +32,4 @@ int bt_bap_unicast_client_ep_qos(struct bt_bap_ep *ep, struct net_buf_simple *bu
int bt_bap_unicast_client_ep_send(struct bt_conn *conn, struct bt_bap_ep *ep,
struct net_buf_simple *buf);
struct bt_audio_iso *bt_bap_unicast_client_new_audio_iso(void);
struct bt_bap_iso *bt_bap_unicast_client_new_audio_iso(void);

View file

@ -139,7 +139,7 @@ CONFIG_BT_BAP_BROADCAST_SOURCE_LOG_LEVEL_DBG=y
CONFIG_BT_ASCS_LOG_LEVEL_DBG=y
CONFIG_BT_PACS_LOG_LEVEL_DBG=y
CONFIG_BT_BAP_STREAM_LOG_LEVEL_DBG=y
CONFIG_BT_AUDIO_ISO_LOG_LEVEL_DBG=y
CONFIG_BT_BAP_ISO_LOG_LEVEL_DBG=y
CONFIG_BT_AUDIO_CODEC_LOG_LEVEL_DBG=y
CONFIG_BT_BAP_SCAN_DELEGATOR_LOG_LEVEL_DBG=y
CONFIG_BT_BAP_BROADCAST_ASSISTANT_LOG_LEVEL_DBG=y

View file

@ -167,6 +167,6 @@ CONFIG_BT_VOCS_CLIENT_LOG_LEVEL_DBG=y
CONFIG_BT_AICS_LOG_LEVEL_DBG=y
CONFIG_BT_VOCS_LOG_LEVEL_DBG=y
CONFIG_BT_BAP_STREAM_LOG_LEVEL_DBG=y
CONFIG_BT_AUDIO_ISO_LOG_LEVEL_DBG=y
CONFIG_BT_BAP_ISO_LOG_LEVEL_DBG=y
CONFIG_BT_AUDIO_CODEC_LOG_LEVEL_DBG=y
CONFIG_BT_CSIP_SET_COORDINATOR_LOG_LEVEL_DBG=y