summaryrefslogtreecommitdiffstats
path: root/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch')
-rw-r--r--external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch123
1 files changed, 123 insertions, 0 deletions
diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch
new file mode 100644
index 00000000..8f54658a
--- /dev/null
+++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch
@@ -0,0 +1,123 @@
+From 7c945e7960cf7dffd9dd0bb5f7ec6bee4dc0bca3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 18 Feb 2020 14:17:55 -0800
+Subject: [PATCH] add gupnp 1.2 API support
+
+Takes from https://git.archlinux.org/svntogit/packages.git/tree/trunk/gupnp-1.2.diff?h=packages/dleyna-renderer
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 4 +--
+ libdleyna/renderer/device.c | 51 +++++++++++++++++++++++++++++++++++--
+ libdleyna/renderer/upnp.c | 4 +--
+ 3 files changed, 53 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 271ee92..364659d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -38,8 +38,8 @@ LT_LANG([C])
+ PKG_PROG_PKG_CONFIG(0.16)
+ PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.28])
+ PKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.28])
+-PKG_CHECK_MODULES([GSSDP], [gssdp-1.0 >= 0.13.2])
+-PKG_CHECK_MODULES([GUPNP], [gupnp-1.0 >= 0.20.5])
++PKG_CHECK_MODULES([GSSDP], [gssdp-1.2 >= 1.2.0])
++PKG_CHECK_MODULES([GUPNP], [gupnp-1.2 >= 1.2.0])
+ PKG_CHECK_MODULES([GUPNPAV], [gupnp-av-1.0 >= 0.11.5])
+ PKG_CHECK_MODULES([GUPNPDLNA], [gupnp-dlna-2.0 >= 0.9.4])
+ PKG_CHECK_MODULES([SOUP], [libsoup-2.4 >= 2.28.2])
+diff --git a/libdleyna/renderer/device.c b/libdleyna/renderer/device.c
+index 783fb52..c7b9fc3 100644
+--- a/libdleyna/renderer/device.c
++++ b/libdleyna/renderer/device.c
+@@ -2121,6 +2121,53 @@ exit:
+ return;
+ }
+
++typedef struct
++{
++ GMainLoop *loop;
++ GUPnPServiceIntrospection *introspection;
++ GError **error;
++} GetIntrospectionAsyncData;
++
++static void
++get_introspection_async_cb (GUPnPServiceInfo *info,
++ GUPnPServiceIntrospection *introspection,
++ const GError *error,
++ gpointer user_data)
++{
++ GetIntrospectionAsyncData *data = user_data;
++ data->introspection = introspection;
++ if (data->error)
++ *data->error = g_error_copy (error);
++ g_main_loop_quit (data->loop);
++}
++
++static GUPnPServiceIntrospection *
++_gupnp_service_info_get_introspection (GUPnPServiceInfo *info,
++ GError **error)
++{
++ GetIntrospectionAsyncData data;
++ GMainContext *context;
++
++ context = g_main_context_new ();
++ data.loop = g_main_loop_new (context, FALSE);
++ data.error = error;
++
++ g_main_context_push_thread_default (context);
++
++ gupnp_service_info_get_introspection_async (info,
++ get_introspection_async_cb,
++ &data);
++
++ g_main_loop_run (data.loop);
++
++ g_main_context_pop_thread_default (context);
++
++ g_main_loop_unref (data.loop);
++ g_main_context_unref (context);
++
++ return data.introspection;
++}
++
+ static gboolean prv_get_av_service_states_values(GUPnPServiceProxy *av_proxy,
+ GVariant **mpris_tp_speeds,
+ GPtrArray **upnp_tp_speeds,
+@@ -2147,7 +2194,7 @@ static gboolean prv_get_av_service_states_values(GUPnPServiceProxy *av_proxy,
+ weak_ref = av_proxy;
+ g_object_add_weak_pointer(G_OBJECT(av_proxy), &weak_ref);
+
+- introspection = gupnp_service_info_get_introspection(
++ introspection = _gupnp_service_info_get_introspection(
+ GUPNP_SERVICE_INFO(av_proxy),
+ &error);
+
+@@ -2215,7 +2262,7 @@ static gboolean prv_get_rc_service_states_values(GUPnPServiceProxy *rc_proxy,
+ weak_ref = rc_proxy;
+ g_object_add_weak_pointer(G_OBJECT(rc_proxy), &weak_ref);
+
+- introspection = gupnp_service_info_get_introspection(
++ introspection = _gupnp_service_info_get_introspection(
+ GUPNP_SERVICE_INFO(rc_proxy),
+ &error);
+
+diff --git a/libdleyna/renderer/upnp.c b/libdleyna/renderer/upnp.c
+index ac1b08a..b762226 100644
+--- a/libdleyna/renderer/upnp.c
++++ b/libdleyna/renderer/upnp.c
+@@ -243,8 +243,8 @@ static void prv_server_unavailable_cb(GUPnPControlPoint *cp,
+
+ udn = gupnp_device_info_get_udn((GUPnPDeviceInfo *)proxy);
+
+- ip_address = gupnp_context_get_host_ip(
+- gupnp_control_point_get_context(cp));
++ ip_address = gssdp_client_get_host_ip(
++ GSSDP_CLIENT(gupnp_control_point_get_context(cp)));
+
+ if (!udn || !ip_address)
+ goto on_error;
+--
+2.25.1
+