client/player: Handle acquiring broadcast links
authorIulia Tanasescu <iulia.tanasescu@nxp.com>
Fri, 25 Oct 2024 12:21:44 +0000 (15:21 +0300)
committerWootak Jung <wootak.jung@samsung.com>
Thu, 20 Feb 2025 07:43:24 +0000 (16:43 +0900)
This adds support for acquiring linked broadacast transports: Each link
should be acquired separately, unlike unicast.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
client/player.c

index d89910c21975e97627e8c498f2ece2690bcb44f6..1f3d65d3c8e27e8df7057b0d0541e3027b5c98a6 100644 (file)
@@ -4811,13 +4811,15 @@ static void transport_set_acquiring(GDBusProxy *proxy, bool value)
 
        ep_set_acquiring(ep, proxy, value);
 
-       link = find_link_by_proxy(proxy);
-       if (link) {
-               ep = find_ep_by_transport(g_dbus_proxy_get_path(link));
-               if (!ep)
-                       return;
+       if (!ep->broadcast) {
+               link = find_link_by_proxy(proxy);
+               if (link) {
+                       ep = find_ep_by_transport(g_dbus_proxy_get_path(link));
+                       if (!ep)
+                               return;
 
-               ep_set_acquiring(ep, link, value);
+                       ep_set_acquiring(ep, link, value);
+               }
        }
 }
 
@@ -4918,12 +4920,14 @@ static void transport_acquire(GDBusProxy *proxy, bool prompt)
        if (!ep || queue_find(ep->acquiring, NULL, proxy))
                return;
 
-       link = find_link_by_proxy(proxy);
-       if (link) {
-               ep = find_ep_by_transport(g_dbus_proxy_get_path(link));
-               /* if link already acquiring wait it to be complete */
-               if (!ep || queue_find(ep->acquiring, NULL, link))
-                       return;
+       if (!ep->broadcast) {
+               link = find_link_by_proxy(proxy);
+               if (link) {
+                       ep = find_ep_by_transport(g_dbus_proxy_get_path(link));
+                       /* if link already acquiring wait it to be complete */
+                       if (!ep || queue_find(ep->acquiring, NULL, link))
+                               return;
+               }
        }
 
        if (ep->auto_accept || !prompt) {