media: Register app objects in proxy_added_cb()
authorArkadiusz Bokowy <arkadiusz.bokowy@gmail.com>
Sat, 27 May 2023 23:14:58 +0000 (01:14 +0200)
committerAyush Garg <ayush.garg@samsung.com>
Fri, 5 Jan 2024 13:34:03 +0000 (19:04 +0530)
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

index a6d2419..f123625 100644 (file)
@@ -3239,9 +3239,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);
@@ -3285,6 +3282,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)