[rygel/wip/meson: 1/28] examples: Show logo in fullscreen renderer



commit 3db2eb62cc5a924e95ef1e18b33d97baf95e57fa
Author: Jens Georg <mail jensge org>
Date:   Mon Apr 17 09:31:11 2017 +0200

    examples: Show logo in fullscreen renderer
    
    Signed-off-by: Jens Georg <mail jensge org>

 configure.ac                                       |    2 +
 examples/Makefile.am                               |   11 ++++++++-
 examples/fullscreen-renderer.c                     |   25 +++++++++++++++++++-
 ...rg.gnome.Rygel.FullscreenRenderer.gresource.xml |    6 ++++
 4 files changed, 42 insertions(+), 2 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index b380eed..4d9228a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -503,6 +503,8 @@ AC_SUBST([RYGEL_PLUGIN_DIR],
 AC_SUBST([RYGEL_MEDIA_ENGINE_DIR],
          [${libdir}/rygel-2.6/engines])
 
+AC_SUBST([GLIB_COMPILE_RESOURCES], [`$PKG_CONFIG --variable glib_compile_resources gio-2.0`])
+
 AC_CONFIG_FILES([
 Makefile
 src/Makefile
diff --git a/examples/Makefile.am b/examples/Makefile.am
index 0271f53..80565ad 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -44,8 +44,17 @@ standalone_renderer_gst_LDADD = \
        $(RYGEL_COMMON_LIBRYGEL_RENDERER_GST_LIBS)
 
 if BUILD_UI
+
+org.gnome.Rygel.FullscreenRenderer.gresource.c: 
$(abs_srcdir)/org.gnome.Rygel.FullscreenRenderer.gresource.xml
+       $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) \
+               --target=$@ \
+               --sourcedir=$(abs_top_srcdir)/data/icons/scalable \
+               --generate $<
+
 noinst_PROGRAMS += fullscreen-renderer
-fullscreen_renderer_SOURCES = fullscreen-renderer.c
+fullscreen_renderer_SOURCES = \
+       fullscreen-renderer.c \
+       org.gnome.Rygel.FullscreenRenderer.gresource.c
 fullscreen_renderer_CFLAGS = \
        $(EXAMPLE_UI_DEPS_CFLAGS) \
        $(LIBRYGEL_RENDERER_GST_DEPS_CFLAGS) \
diff --git a/examples/fullscreen-renderer.c b/examples/fullscreen-renderer.c
index 168b357..2d43081 100644
--- a/examples/fullscreen-renderer.c
+++ b/examples/fullscreen-renderer.c
@@ -44,10 +44,13 @@
 #include "rygel-renderer-gst.h"
 #include "rygel-core.h"
 
+#define LOGO_PATH "/org/gnome/Rygel/FullscreenRenderer/rygel-full.svg"
+
 struct _MainData {
     GtkWindow *window;
     GtkWidget *video;
     GstElement *playbin;
+    GdkPixbuf *pixbuf;
 };
 typedef struct _MainData MainData;
 
@@ -74,7 +77,7 @@ static gboolean on_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data)
     gst_element_get_state (data->playbin, &state, NULL, GST_CLOCK_TIME_NONE);
 
     if (state < GST_STATE_PAUSED) {
-        gint width, height;
+        gint width, height, logo_width, logo_height;
 
         width = gtk_widget_get_allocated_width (widget);
         height = gtk_widget_get_allocated_height (widget);
@@ -82,6 +85,26 @@ static gboolean on_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data)
         cairo_set_source_rgb (cr, 0, 0, 0);
         cairo_rectangle (cr, 0, 0, width, height);
         cairo_fill (cr);
+
+        if (data->pixbuf == NULL) {
+            data->pixbuf = gdk_pixbuf_new_from_resource_at_scale
+                                        (LOGO_PATH,
+                                         (int) width * 0.6,
+                                         (int) height * 0.6,
+                                         TRUE,
+                                         NULL);
+        }
+
+        logo_width = gdk_pixbuf_get_width (data->pixbuf);
+        logo_height = gdk_pixbuf_get_height (data->pixbuf);
+
+        {
+            int logo_x = (width - logo_width) / 2;
+            int logo_y = (height - logo_height) / 2;
+
+        gdk_cairo_set_source_pixbuf (cr, data->pixbuf, logo_x, logo_y);
+        }
+        cairo_paint (cr);
     }
 }
 
diff --git a/examples/org.gnome.Rygel.FullscreenRenderer.gresource.xml 
b/examples/org.gnome.Rygel.FullscreenRenderer.gresource.xml
new file mode 100644
index 0000000..440ed97
--- /dev/null
+++ b/examples/org.gnome.Rygel.FullscreenRenderer.gresource.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+  <gresource prefix="/org/gnome/Rygel/FullscreenRenderer">
+    <file compressed="true" preprocess="xml-stripblanks">rygel-full.svg</file>
+  </gresource>
+</gresources>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]