Hi Silviu, On Fri, Mar 8, 2024 at 11:52 AM Silviu Florian Barbulescu <silviu.barbulescu@xxxxxxx> wrote: > > Add support to update the transport configuration > > --- > profiles/audio/transport.c | 23 +++++++++++++++++++++++ > profiles/audio/transport.h | 1 + > 2 files changed, 24 insertions(+) > > diff --git a/profiles/audio/transport.c b/profiles/audio/transport.c > index 159fbd575..c8492d4a1 100644 > --- a/profiles/audio/transport.c > +++ b/profiles/audio/transport.c > @@ -1483,6 +1483,29 @@ 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"); > + } > + > + bap_update_bcast_qos(transport); > +} > + > 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); Lets not bypass layers here, so the config updates probably need to be pushed thru bt_bap_stream somehow, perhaps via a new callback or a state change where the transport.c can query the new configuration and update its D-Bus property. > void media_transport_destroy(struct media_transport *transport); > const char *media_transport_get_path(struct media_transport *transport); > -- > 2.39.2 > -- Luiz Augusto von Dentz