The proxy_added_cb() function is called every time a new client is added to the application object manager. Registering media endpoint and player in that proxy_added_cb() callback function will allow to register new endpoints and players not only during the initial RegisterApplication call, but also during the application lifetime. For instance, this might allow to dynamically enable/disable support for additional codecs. --- profiles/audio/media.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/profiles/audio/media.c b/profiles/audio/media.c index 6ce668e31..4c42b7817 100644 --- a/profiles/audio/media.c +++ b/profiles/audio/media.c @@ -2821,9 +2821,6 @@ static void client_ready_cb(GDBusClient *client, void *user_data) goto reply; } - queue_foreach(app->proxies, app_register_endpoint, app); - queue_foreach(app->proxies, app_register_player, app); - if (app->err) { if (app->err == -EPROTONOSUPPORT) reply = btd_error_not_supported(app->reg); @@ -2867,6 +2864,10 @@ static void proxy_added_cb(GDBusProxy *proxy, void *user_data) path = g_dbus_proxy_get_path(proxy); DBG("Proxy added: %s, iface: %s", path, iface); + + app_register_endpoint(proxy, app); + app_register_player(proxy, app); + } static bool match_endpoint_by_path(const void *a, const void *b) -- 2.30.2