examples: Add standalone player
authorJens Georg <mail@jensge.org>
Thu, 7 Jun 2012 19:13:43 +0000 (21:13 +0200)
committerJens Georg <mail@jensge.org>
Tue, 3 Jul 2012 07:53:49 +0000 (09:53 +0200)
Makefile.am
configure.ac
examples/Makefile.am [new file with mode: 0644]
examples/standalone-renderer.c [new file with mode: 0644]
src/plugins/playbin/Makefile.am

index 94395e9..9549250 100644 (file)
@@ -1,4 +1,4 @@
-SUBDIRS = src data tests po doc
+SUBDIRS = src data tests po doc examples
 
 pkgconfig_DATA= rygel-1.0.pc
 pkgconfigdir = $(libdir)/pkgconfig
index 06d1447..62f105b 100644 (file)
@@ -223,6 +223,7 @@ doc/Makefile
 po/Makefile.in
 rygel-1.0.pc
 tests/Makefile
+examples/Makefile
 ])
 AC_OUTPUT
 
diff --git a/examples/Makefile.am b/examples/Makefile.am
new file mode 100644 (file)
index 0000000..25309a1
--- /dev/null
@@ -0,0 +1,11 @@
+include ../common.am
+
+AM_CFLAGS += \
+       -I$(top_builddir)/src/plugins/playbin \
+       -I$(top_builddir)/src/rygel
+
+noinst_PROGRAMS = standalone-renderer
+standalone_renderer_SOURCES = standalone-renderer.c
+standalone_renderer_LDADD = \
+       $(top_builddir)/src/plugins/playbin/librygel-renderer.la \
+       $(RYGEL_COMMON_LIBS)
diff --git a/examples/standalone-renderer.c b/examples/standalone-renderer.c
new file mode 100644 (file)
index 0000000..f9f5201
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2012 Openismus GmbH.
+ *
+ * Author: Jens Georg <jensg@openismus.com>
+ *
+ * This file is part of Rygel.
+ *
+ * Rygel is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Rygel is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+/*
+ * Demo application for librygel-renderer.
+ *
+ * Creates a simple stand-alone UPnP renderer that renders any visual content
+ * in ASCII-art using GStreamer's cacasink element.
+ *
+ * Usage:
+ *   standalone-renderer [<network device>]
+ *
+ * If no network device is given on the commandline, the program falls back to
+ * eth0.
+ *
+ * To do anything useful, another UPnP server + UPnP controller is necessary
+ * to tell it which media file to show.
+ */
+
+#include "rygel-renderer.h"
+#include "rygel-core.h"
+
+int main(int argc, char *argv[])
+{
+    GstElement *sink, *asink;
+    RygelPlaybinPlayer *player;
+    RygelPlaybinRenderer *renderer;
+    GError *error = NULL;
+    GMainLoop *loop;
+
+    g_type_init ();
+    gst_init (&argc, &argv);
+
+    g_set_application_name ("Standalone-Renderer");
+
+    renderer = rygel_playbin_renderer_new ("LibRygel renderer demo");
+    player = rygel_playbin_player_get_default ();
+    sink = gst_element_factory_make ("cacasink", NULL);
+    g_object_set (G_OBJECT (sink),
+                  "dither", 53,
+                  "anti-aliasing", TRUE,
+                  NULL);
+
+    asink = gst_element_factory_make ("pulsesink", NULL);
+
+    g_object_set (G_OBJECT (rygel_playbin_player_get_playbin (player)),
+                  "video-sink", sink,
+                  "audio-sink", asink,
+                  NULL);
+
+    if (argc >= 2) {
+        rygel_playbin_renderer_add_interface (renderer, argv[1]);
+    } else {
+        rygel_playbin_renderer_add_interface (renderer, "eth0");
+    }
+
+    loop = g_main_loop_new (NULL, FALSE);
+    g_main_loop_run (loop);
+
+    return 0;
+}
index 5e85ee5..9f48800 100644 (file)
@@ -11,7 +11,6 @@ librygel_renderer_la_VALAFLAGS = \
        -H rygel-renderer.h --library=rygel-renderer-1.0 \
        $(RYGEL_COMMON_PLUGIN_VALAFLAGS)
 librygel_renderer_la_LIBADD = $(RYGEL_COMMON_LIBS)
-#librygel_renderer_la_LDFLAGS = $(RYGEL_PLUGIN_LINKER_FLAGS)
 
 plugin_LTLIBRARIES = librygel-playbin.la