[rygel/wip/meson: 1/28] examples: Show logo in fullscreen renderer
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rygel/wip/meson: 1/28] examples: Show logo in fullscreen renderer
- Date: Sun, 21 May 2017 17:58:53 +0000 (UTC)
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]