summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2017-04-17 09:31:11 +0200
committerJens Georg <mail@jensge.org>2017-04-28 22:08:20 +0200
commit1971d800ee04254738bab89a924c14269ad44603 (patch)
tree7ef61d76e289e5ee5c86cf5457651caf97f66f6d /examples
parent03f207d0f29eb7bfac6fdd5e26b5b868cbd80b97 (diff)
downloadrygel-1971d800ee04254738bab89a924c14269ad44603.tar.gz
examples: Show logo in fullscreen renderer
Signed-off-by: Jens Georg <mail@jensge.org>
Diffstat (limited to 'examples')
-rw-r--r--examples/Makefile.am11
-rw-r--r--examples/fullscreen-renderer.c26
-rw-r--r--examples/org.gnome.Rygel.FullscreenRenderer.gresource.xml6
3 files changed, 41 insertions, 2 deletions
diff --git a/examples/Makefile.am b/examples/Makefile.am
index 0271f53f..80565adb 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 168b3577..0990838b 100644
--- a/examples/fullscreen-renderer.c
+++ b/examples/fullscreen-renderer.c
@@ -44,10 +44,15 @@
#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;
+ gint logo_width;
+ gint logo_height;
};
typedef struct _MainData MainData;
@@ -74,7 +79,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_x, logo_y;
width = gtk_widget_get_allocated_width (widget);
height = gtk_widget_get_allocated_height (widget);
@@ -82,6 +87,25 @@ 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);
+ data->logo_width = gdk_pixbuf_get_width (data->pixbuf);
+ data->logo_height = gdk_pixbuf_get_height (data->pixbuf);
+ }
+
+
+ logo_x = (width - data->logo_width) / 2;
+ logo_y = (height - data->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 00000000..440ed974
--- /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>