Subject: [PATCH BlueZ v3 2/5] transport: Add support to update the transport config

Add support to update the transport configuration

---
profiles/audio/transport.c | 21 +++++++++++++++++++++
profiles/audio/transport.h | 1 +
2 files changed, 22 insertions(+)

diff --git a/profiles/audio/transport.c b/profiles/audio/transport.c
index 159fbd575..122c3339e 100644
--- a/profiles/audio/transport.c
+++ b/profiles/audio/transport.c
@@ -1483,6 +1483,27 @@ static void bap_update_bcast_qos(const struct media_transport *transport)
"Configuration");
}

+void bap_update_bcast_config(struct media_transport *transport)
+{
+ struct bap_transport *bap = transport->data;
+ struct iovec *cc;
+
+ cc = bt_bap_stream_get_config(bap->stream);
+
+ if (((int)cc->iov_len != transport->size) ||
+ (memcmp(cc->iov_base, transport->configuration,
+ transport->size) != 0)) {
+ free(transport->configuration);
+ transport->configuration = util_memdup(cc->iov_base,
+ cc->iov_len);
+ transport->size = cc->iov_len;
+
+ g_dbus_emit_property_changed(btd_get_dbus_connection(),
+ transport->path, MEDIA_TRANSPORT_INTERFACE,
+ "Configuration");
+ }
+}
+
static guint transport_bap_resume(struct media_transport *transport,
struct media_owner *owner)
{
diff --git a/profiles/audio/transport.h b/profiles/audio/transport.h
index b46bc8025..6df419a67 100644
--- a/profiles/audio/transport.h
+++ b/profiles/audio/transport.h
@@ -16,6 +16,7 @@ struct media_transport *media_transport_create(struct btd_device *device,
uint8_t *configuration,
size_t size, void *data,
void *stream);
+void bap_update_bcast_config(struct media_transport *transport);

void media_transport_destroy(struct media_transport *transport);
const char *media_transport_get_path(struct media_transport *transport);
--
2.39.2