diff options
author | Jens Georg <mail@jensge.org> | 2017-04-17 09:31:11 +0200 |
---|---|---|
committer | Jens Georg <mail@jensge.org> | 2017-04-28 22:08:20 +0200 |
commit | 1971d800ee04254738bab89a924c14269ad44603 (patch) | |
tree | 7ef61d76e289e5ee5c86cf5457651caf97f66f6d /examples | |
parent | 03f207d0f29eb7bfac6fdd5e26b5b868cbd80b97 (diff) | |
download | rygel-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.am | 11 | ||||
-rw-r--r-- | examples/fullscreen-renderer.c | 26 | ||||
-rw-r--r-- | examples/org.gnome.Rygel.FullscreenRenderer.gresource.xml | 6 |
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> |