[rygel/gstlaunch_plugin: 3/3] gstlaunch: use the default rygel configuration file
- From: Thijs Vermeir <tvermeir src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [rygel/gstlaunch_plugin: 3/3] gstlaunch: use the default rygel configuration file
- Date: Sun, 30 Aug 2009 11:17:39 +0000 (UTC)
commit 9f6f2ec74caf83e2860d4e0fda0f5d700c213562
Author: Thijs Vermeir <thijsvermeir gmail com>
Date: Wed Aug 19 02:04:18 2009 +0200
gstlaunch: use the default rygel configuration file
data/Makefile.am | 1 -
data/rygel-default.conf | 13 ++++
data/rygel-gstlaunch.conf | 15 -----
src/plugins/gstlaunch/Makefile.am | 2 +-
.../gstlaunch/rygel-gstlaunch-root-container.vala | 67 +++++---------------
5 files changed, 30 insertions(+), 68 deletions(-)
---
diff --git a/data/Makefile.am b/data/Makefile.am
index 9054fac..b7f3fa0 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -38,7 +38,6 @@ $(desktop_DATA): $(desktop_in_files) Makefile
CLEANFILES = $(dbusservice_DATA) $(desktop_DATA) rygel.conf
EXTRA_DIST = rygel-maemo.conf \
rygel-default.conf \
- rygel-gstlaunch.conf \
$(dbusservice_in_files) \
$(desktop_in_files)
diff --git a/data/rygel-default.conf b/data/rygel-default.conf
index 800d67e..df56b1a 100644
--- a/data/rygel-default.conf
+++ b/data/rygel-default.conf
@@ -65,3 +65,16 @@ rss=508
[DVB]
enabled=true
title=Digital\sTV
+
+[GstLaunch]
+launch_items=audiotestsrc;videotestsrc;videotestoverlay
+audiotestsrc_title=Audiotestsrc
+audiotestsrc_mime=audio/x-wav
+audiotestsrc_launch=audiotestsrc ! wavenc
+videotestsrc_title=Videotestsrc
+videotestsrc_mime=video/mpeg
+videotestsrc_launch=videotestsrc ! ffenc_mpeg2video ! mpegtsmux
+videotestoverlay_title=Videotestsrc with timeoverlay 2
+videotestoverlay_mime=video/mpeg
+videotestoverlay_launch=videotestsrc ! timeoverlay ! ffenc_mpeg2video ! mpegtsmux
+
diff --git a/src/plugins/gstlaunch/Makefile.am b/src/plugins/gstlaunch/Makefile.am
index 95eea5d..8060e63 100644
--- a/src/plugins/gstlaunch/Makefile.am
+++ b/src/plugins/gstlaunch/Makefile.am
@@ -7,7 +7,7 @@ AM_CFLAGS = $(LIBGUPNP_CFLAGS) \
$(LIBDBUS_GLIB_CFLAGS) \
$(GEE_CFLAGS) \
$(LIBGSTREAMER_CFLAGS) \
- $(top_srcdir)/src/rygel -DDATA_DIR='"$(datadir)"' \
+ -I$(top_srcdir)/src/rygel -DDATA_DIR='"$(datadir)"' \
-DSYS_CONFIG_DIR='"$(sysconfdir)"'
librygel_gstlaunch_la_SOURCES = rygel-gstlaunch-plugin.vala \
diff --git a/src/plugins/gstlaunch/rygel-gstlaunch-root-container.vala b/src/plugins/gstlaunch/rygel-gstlaunch-root-container.vala
index 1a9c9f8..da0299e 100644
--- a/src/plugins/gstlaunch/rygel-gstlaunch-root-container.vala
+++ b/src/plugins/gstlaunch/rygel-gstlaunch-root-container.vala
@@ -20,28 +20,6 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-/*
- * Copyright (C) 2009 Thijs Vermeir <thijsvermeir gmail com>
- *
- * Author: Thijs Vermeir <thijsvermeir gmail 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.
- */
-
using Rygel;
using GUPnP;
using Gee;
@@ -52,9 +30,11 @@ using CStuff;
* Represents the root container for GstLaunch content hierarchy.
*/
public class Rygel.GstLaunchRootContainer : MediaContainer {
- static const string GSTLAUNCH_FILE = "rygel-gstlaunch.conf";
+ const string CONFIG_GROUP = "GstLaunch";
+ const string ITEM_NAMES = "launch_items";
+
ArrayList<MediaItem> items;
- KeyFile key_file;
+ MetaConfig config;
public GstLaunchRootContainer (string title) {
base.root (title, 0);
@@ -62,8 +42,10 @@ public class Rygel.GstLaunchRootContainer : MediaContainer {
this.items = new ArrayList<MediaItem> ();
try {
- load_key_file ();
- parse_key_file ();
+ config = MetaConfig.get_default ();
+ var item_names = config.get_string_list (CONFIG_GROUP, ITEM_NAMES);
+ foreach (string name in item_names)
+ add_launch_item (name);
} catch (Error err) {
debug ("GstLaunch init failed: %s", err.message);
}
@@ -71,31 +53,14 @@ public class Rygel.GstLaunchRootContainer : MediaContainer {
this.child_count = this.items.size;
}
- void load_key_file () throws Error {
- this.key_file = new KeyFile ();
-
- var dirs = new string[2];
- dirs[0] = Environment.get_user_config_dir ();
- dirs[1] = BuildConfig.SYS_CONFIG_DIR;
-
- string path;
- this.key_file.load_from_dirs (GSTLAUNCH_FILE,
- dirs,
- out path,
- KeyFileFlags.KEEP_COMMENTS |
- KeyFileFlags.KEEP_TRANSLATIONS);
- debug ("Loaded gstlaunch configuration from file '%s'", path);
- }
-
- void parse_key_file () throws Error {
- var items = this.key_file.get_groups ();
- foreach (string item in items) {
- debug ("found item: %s", item);
- string title = this.key_file.get_string (item, "title");
- string mime_type = this.key_file.get_string (item, "mime");
- string launch_line = this.key_file.get_string (item, "launch");
-
- this.items.add (new GstLaunchItem (item, this, title, mime_type, launch_line));
+ void add_launch_item (string name) {
+ try {
+ string title = config.get_string (CONFIG_GROUP, "%s_title".printf (name));
+ string mime_type = config.get_string (CONFIG_GROUP, "%s_mime".printf (name));
+ string launch_line = config.get_string (CONFIG_GROUP, "%s_launch".printf (name));
+ this.items.add (new GstLaunchItem (name, this, title, mime_type, launch_line));
+ } catch (GLib.Error err) {
+ debug ("GstLaunch failed item '%s': %s", name, err.message);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]