From d9ed6c2e1adf59b50ca8a044f2c16df7a928f6a9 Mon Sep 17 00:00:00 2001 From: Jens Georg Date: Fri, 29 Jun 2018 16:21:30 +0200 Subject: wip --- data/org.gupnp.Tools.Common.gresource.xml | 4 ---- data/org.gupnp.Tools.Network-Light.gresource.xml | 10 ++++++++++ src/meson.build | 4 ++-- src/network-light/gui.c | 18 ++++++++++-------- src/network-light/meson.build | 15 +++++++++++++++ src/network-light/upnp.c | 19 ++++++++++++++++--- 6 files changed, 53 insertions(+), 17 deletions(-) create mode 100644 data/org.gupnp.Tools.Network-Light.gresource.xml create mode 100644 src/network-light/meson.build diff --git a/data/org.gupnp.Tools.Common.gresource.xml b/data/org.gupnp.Tools.Common.gresource.xml index ef38144..88a4c95 100644 --- a/data/org.gupnp.Tools.Common.gresource.xml +++ b/data/org.gupnp.Tools.Common.gresource.xml @@ -3,10 +3,6 @@ pixmaps/av-cp.png pixmaps/media-renderer.png - pixmaps/network-light-22x22.png - pixmaps/network-light-256x256.png - pixmaps/network-light-off.png - pixmaps/network-light-on.png pixmaps/upnp-action-arg-in.png pixmaps/upnp-action-arg-out.png pixmaps/upnp-device.png diff --git a/data/org.gupnp.Tools.Network-Light.gresource.xml b/data/org.gupnp.Tools.Network-Light.gresource.xml new file mode 100644 index 0000000..2b7e65d --- /dev/null +++ b/data/org.gupnp.Tools.Network-Light.gresource.xml @@ -0,0 +1,10 @@ + + + + gupnp-network-light.ui + pixmaps/network-light-256x256.png + pixmaps/network-light-on.png + pixmaps/network-light-off.png + xml/network-light-desc.xml + + diff --git a/src/meson.build b/src/meson.build index b97c8ea..29d871d 100644 --- a/src/meson.build +++ b/src/meson.build @@ -3,7 +3,7 @@ subdir('common') # subdir('av-cp') #endif -#subdir('discover') -#subdir('network-light') +subdir('discover') +subdir('network-light') subdir('universal-cp') #subdir('upload') diff --git a/src/network-light/gui.c b/src/network-light/gui.c index 7259801..3eea8d8 100644 --- a/src/network-light/gui.c +++ b/src/network-light/gui.c @@ -20,7 +20,9 @@ #include #include +#ifdef HAVE_CONFIG_H #include +#endif #include #include "gui.h" @@ -28,10 +30,10 @@ #include "upnp.h" #include "main.h" -#define UI_FILE DATA_DIR "/gupnp-network-light.ui" -#define ICON_FILE "pixmaps/network-light-256x256.png" -#define OFF_FILE "pixmaps/network-light-off.png" -#define ON_FILE "pixmaps/network-light-on.png" +#define UI_FILE "/org/gupnp/Tools/Network-Light/gupnp-network-light.ui" +#define ICON_FILE "/org/gupnp/Tools/Network-Light/pixmaps/network-light-256x256.png" +#define OFF_FILE "/org/gupnp/Tools/Network-Light/pixmaps/network-light-off.png" +#define ON_FILE "/org/gupnp/Tools/Network-Light/pixmaps/network-light-on.png" static GtkBuilder *builder; static GtkWidget *main_window; @@ -224,7 +226,7 @@ init_ui (gint *argc, g_assert (builder != NULL); gtk_builder_set_translation_domain(builder, GETTEXT_PACKAGE); - if (!gtk_builder_add_from_file (builder, UI_FILE, &error)) { + if (!gtk_builder_add_from_resource (builder, UI_FILE, &error)) { g_critical ("Unable to load the GUI file %s: %s", UI_FILE, error->message); @@ -245,17 +247,17 @@ init_ui (gint *argc, "about-dialog")); g_assert (about_dialog != NULL); - on_pixbuf = load_pixbuf_file (ON_FILE); + on_pixbuf = gdk_pixbuf_new_from_resource (ON_FILE, NULL); if (on_pixbuf == NULL) return FALSE; - off_pixbuf = load_pixbuf_file (OFF_FILE); + off_pixbuf = gdk_pixbuf_new_from_resource (OFF_FILE, NULL); if (off_pixbuf == NULL) { g_object_unref (on_pixbuf); return FALSE; } - icon_pixbuf = load_pixbuf_file (ICON_FILE); + icon_pixbuf = gdk_pixbuf_new_from_resource (ICON_FILE, NULL); if (icon_pixbuf == NULL) { g_object_unref (on_pixbuf); g_object_unref (off_pixbuf); diff --git a/src/network-light/meson.build b/src/network-light/meson.build new file mode 100644 index 0000000..2987dfc --- /dev/null +++ b/src/network-light/meson.build @@ -0,0 +1,15 @@ +network_light_resource = gnome.compile_resources('network-light-resource', + join_paths(resource_data, 'org.gupnp.Tools.Network-Light.gresource.xml'), + source_dir : resource_data) + +executable('gupnp-network-light', + [ + 'gui.c', + 'gui.h', + 'main.c', + 'main.h', + 'upnp.c', + 'upnp.h' + ] + network_light_resource, + export_dynamic: true, + dependencies : [gupnp, gtk, util, gssdp]) diff --git a/src/network-light/upnp.c b/src/network-light/upnp.c index e913028..b9397fe 100644 --- a/src/network-light/upnp.c +++ b/src/network-light/upnp.c @@ -32,7 +32,7 @@ #include "upnp.h" #include "main.h" -#define DESCRIPTION_DOC "xml/network-light-desc.xml" +#define DESCRIPTION_DOC "/org/gupnp/Tools/Network-Light/xml/network-light-desc.xml" #define DIMMING_SERVICE "urn:schemas-upnp-org:service:Dimming:1" #define SWITCH_SERVICE "urn:schemas-upnp-org:service:SwitchPower:1" #define NETWORK_LIGHT "urn:schemas-upnp-org:device:DimmableLight:1" @@ -633,9 +633,22 @@ static gboolean prepare_desc (gchar *name) { GError *error = NULL; + GBytes *data = NULL; + xmlDoc *xml = NULL; - doc = gupnp_xml_doc_new_from_path (DATA_DIR "/" DESCRIPTION_DOC, - &error); + data = g_resources_lookup_data (DESCRIPTION_DOC, G_RESOURCE_LOOKUP_FLAGS_NONE, &error); + + if (data == NULL) { + g_critical ("Unable to load the XML description: %s", error->message); + + g_error_free (error); + + return FALSE; + } + + xml = xmlParseMemory(g_bytes_get_data (data, NULL), g_bytes_get_size (data)); + + doc = gupnp_xml_doc_new (xml); if (doc == NULL) { g_critical ("Unable to load the XML description file: %s", error->message); -- cgit v1.2.1