[rygel] core,plugins,ui: Move from GConf to .ini file usage



commit bacc5a6c5f8b448acf5ec41cb7c4365f0e80aa8c
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date:   Wed Jun 24 16:49:07 2009 +0300

    core,plugins,ui: Move from GConf to .ini file usage

 configure.ac                         |    6 --
 src/plugins/external/Makefile.am     |    4 +-
 src/plugins/media-export/Makefile.am |    2 -
 src/plugins/mediathek/Makefile.am    |    2 -
 src/plugins/test/Makefile.am         |    4 +-
 src/plugins/tracker/Makefile.am      |    4 +-
 src/rygel/Makefile.am                |    2 -
 src/rygel/rygel-meta-config.vala     |    7 ++-
 src/rygel/rygel-user-config.vala     |  111 ++++++++++------------------------
 src/ui/Makefile.am                   |    2 -
 10 files changed, 42 insertions(+), 102 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index e8c42a9..c814a1e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,6 @@ VALA_REQUIRED=0.7.4
 GUPNP_REQUIRED=0.12.5
 GUPNP_AV_REQUIRED=0.4
 GUPNP_VALA_REQUIRED=0.5.3
-GCONF_REQUIRED=2.16
 DBUS_GLIB_REQUIRED=0.74
 GSTREAMER_REQUIRED=0.10.23
 GIO_REQUIRED=2.16
@@ -34,7 +33,6 @@ LIBSQLITE3_REQUIRED=3.5
 
 PKG_CHECK_MODULES(LIBGUPNP, gupnp-1.0 >= $GUPNP_REQUIRED)
 PKG_CHECK_MODULES(LIBGUPNP_AV, gupnp-av-1.0 >= $GUPNP_AV_REQUIRED)
-PKG_CHECK_MODULES(LIBGCONF, gconf-2.0 >= $GCONF_REQUIRED)
 PKG_CHECK_MODULES(LIBDBUS_GLIB, dbus-glib-1 >= $DBUS_GLIB_REQUIRED)
 PKG_CHECK_MODULES(LIBGSTREAMER, gstreamer-0.10 >= $GSTREAMER_REQUIRED)
 PKG_CHECK_MODULES(LIBGIO, gio-2.0 >= $GIO_REQUIRED)
@@ -85,10 +83,6 @@ if test x$enable_vala = xyes ; then
                   true,
                   [AC_MSG_ERROR("Unable to find Vala bindings for dbus-glib-1")])
 
-    AC_CHECK_FILE("${VAPIDIR}/gconf-2.0.vapi",
-                  true,
-                  [AC_MSG_ERROR("Unable to find Vala bindings for gconf-2.0")])
-
     AC_CHECK_FILE("${VAPIDIR}/gstreamer-0.10.vapi",
                   true,
                   [AC_MSG_ERROR("Unable to find Vala bindings for gstreamer-0.10")])
diff --git a/src/plugins/external/Makefile.am b/src/plugins/external/Makefile.am
index 66e660a..7fac14c 100644
--- a/src/plugins/external/Makefile.am
+++ b/src/plugins/external/Makefile.am
@@ -7,7 +7,6 @@ AM_CFLAGS = $(LIBGUPNP_CFLAGS) \
 	    $(LIBDBUS_GLIB_CFLAGS) \
 	    $(GEE_CFLAGS) \
 	    $(LIBGSTREAMER_CFLAGS) \
-	    $(LIBGCONF_CFLAGS) \
 	    -I$(top_srcdir)/src/rygel -DDATA_DIR='"$(datadir)"'
 
 BUILT_SOURCES = rygel-external-content-dir.c \
@@ -40,8 +39,7 @@ librygel_external_la_LIBADD = $(LIBGUPNP_LIBS) \
                               $(LIBGUPNP_AV_LIBS) \
 			      $(LIBDBUS_GLIB_LIBS) \
 			      $(LIBGSTREAMER_LIBS) \
-			      $(GEE_LIBS) \
-			      $(LIBGCONF_LIBS)
+			      $(GEE_LIBS)
 librygel_external_la_LDFLAGS = -shared -fPIC -module -avoid-version
 
 CLEANFILES = rygel-external.stamp
diff --git a/src/plugins/media-export/Makefile.am b/src/plugins/media-export/Makefile.am
index 8765673..8bdbff0 100644
--- a/src/plugins/media-export/Makefile.am
+++ b/src/plugins/media-export/Makefile.am
@@ -6,7 +6,6 @@ AM_CFLAGS = $(LIBGUPNP_CFLAGS) \
 	$(LIBGUPNP_AV_CFLAGS) \
 	$(LIBDBUS_GLIB_CFLAGS) \
 	$(LIBGSTREAMER_CFLAGS) \
-	$(LIBGCONF_CFLAGS) \
 	$(GEE_CFLAGS) \
 	-I$(top_srcdir)/src/rygel -DDATA_DIR='"$(datadir)"'
 
@@ -45,7 +44,6 @@ librygel_media_export_la_LIBADD = \
 	$(LIBGUPNP_AV_LIBS) \
 	$(LIBDBUS_GLIB_LIBS) \
 	$(LIBGSTREAMER_LIBS) \
-	$(LIBGCONF_LIBS) \
 	$(GEE_LIBS)
 librygel_media_export_la_LDFLAGS = -shared -fPIC -module -avoid-version
 
diff --git a/src/plugins/mediathek/Makefile.am b/src/plugins/mediathek/Makefile.am
index 6eec825..fb138b4 100644
--- a/src/plugins/mediathek/Makefile.am
+++ b/src/plugins/mediathek/Makefile.am
@@ -7,7 +7,6 @@ AM_CFLAGS = \
 	$(LIBGUPNP_AV_CFLAGS) \
 	$(LIBDBUS_GLIB_CFLAGS) \
 	$(LIBGSTREAMER_CFLAGS) \
-	$(LIBGCONF_CFLAGS) \
 	$(GEE_CFLAGS) \
 	-I$(top_srcdir)/src/rygel \
 	-DDATA_DIR='"$(datadir)"'
@@ -51,7 +50,6 @@ librygel_mediathek_la_LIBADD = \
 	$(LIBGUPNP_AV_LIBS) \
 	$(LIBDBUS_GLIB_LIBS) \
 	$(LIBGSTREAMER_LIBS) \
-	$(LIBGCONF_LIBS) \
 	$(GEE_LIBS)
 
 librygel_mediathek_la_LDFLAGS = -shared -fPIC -module -avoid-version
diff --git a/src/plugins/test/Makefile.am b/src/plugins/test/Makefile.am
index 2b7d1cd..9fd4548 100644
--- a/src/plugins/test/Makefile.am
+++ b/src/plugins/test/Makefile.am
@@ -7,7 +7,6 @@ AM_CFLAGS = $(LIBGUPNP_CFLAGS) \
 	    $(LIBDBUS_GLIB_CFLAGS) \
 	    $(GEE_CFLAGS) \
 	    $(LIBGSTREAMER_CFLAGS) \
-	    $(LIBGCONF_CFLAGS) \
 	    -I$(top_srcdir)/src/rygel -DDATA_DIR='"$(datadir)"'
 
 BUILT_SOURCES = rygel-test-content-dir.c \
@@ -43,8 +42,7 @@ librygel_test_la_LIBADD = $(LIBGUPNP_LIBS) \
 			  $(LIBGUPNP_AV_LIBS) \
                           $(LIBDBUS_GLIB_LIBS) \
 	                  $(LIBGSTREAMER_LIBS) \
-                          $(GEE_LIBS) \
-			  $(LIBGCONF_LIBS)
+                          $(GEE_LIBS)
 librygel_test_la_LDFLAGS = -shared -fPIC -module -avoid-version
 
 CLEANFILES = rygel-test.stamp
diff --git a/src/plugins/tracker/Makefile.am b/src/plugins/tracker/Makefile.am
index 3e3210a..39fa0e1 100644
--- a/src/plugins/tracker/Makefile.am
+++ b/src/plugins/tracker/Makefile.am
@@ -7,7 +7,6 @@ AM_CFLAGS = $(LIBGUPNP_CFLAGS) \
 	    $(LIBDBUS_GLIB_CFLAGS) \
             $(LIBGSTREAMER_CFLAGS) \
 	    $(GEE_CFLAGS) \
-	    $(LIBGCONF_CFLAGS) \
 	    -I$(top_srcdir)/src/rygel -DDATA_DIR='"$(datadir)"'
 
 BUILT_SOURCES = rygel-media-tracker.c \
@@ -67,8 +66,7 @@ librygel_media_tracker_la_LIBADD = $(LIBGUPNP_LIBS) \
 			       	   $(LIBGUPNP_AV_LIBS) \
 				   $(LIBDBUS_GLIB_LIBS) \
 	                           $(LIBGSTREAMER_LIBS) \
-				   $(GEE_LIBS) \
-	    			   $(LIBGCONF_LIBS)
+				   $(GEE_LIBS)
 librygel_media_tracker_la_LDFLAGS = -shared -fPIC -module -avoid-version
 
 CLEANFILES = rygel-media-tracker.stamp
diff --git a/src/rygel/Makefile.am b/src/rygel/Makefile.am
index 8178223..ad0c7de 100644
--- a/src/rygel/Makefile.am
+++ b/src/rygel/Makefile.am
@@ -14,7 +14,6 @@ endif
 
 AM_CFLAGS = $(LIBGUPNP_CFLAGS) \
 	    $(LIBGUPNP_AV_CFLAGS) \
-	    $(LIBGCONF_CFLAGS) \
 	    $(LIBGSTREAMER_CFLAGS) \
 	    $(GIO_CFLAGS) \
 	    $(GEE_CFLAGS) \
@@ -128,7 +127,6 @@ rygel.stamp: $(filter %.vala,$(rygel_SOURCES))
 
 rygel_LDADD = $(LIBGUPNP_LIBS) \
 	      $(LIBGUPNP_AV_LIBS) \
-	      $(LIBGCONF_LIBS) \
 	      $(LIBGSTREAMER_LIBS) \
 	      $(GIO_LIBS) \
 	      $(GEE_LIBS) \
diff --git a/src/rygel/rygel-meta-config.vala b/src/rygel/rygel-meta-config.vala
index 137e595..ac830e6 100644
--- a/src/rygel/rygel-meta-config.vala
+++ b/src/rygel/rygel-meta-config.vala
@@ -50,7 +50,12 @@ public class Rygel.MetaConfig : GLib.Object, Configuration {
         this.configs = new ArrayList<Configuration> ();
 
         this.configs.add (CmdlineConfig.get_default ());
-        this.configs.add (UserConfig.get_default ());
+        try {
+            var user_config = UserConfig.get_default ();
+            this.configs.add (user_config);
+        } catch (Error err) {
+            warning ("Failed to load user configuration: %s", err.message);
+        }
     }
 
     public bool get_upnp_enabled () throws GLib.Error {
diff --git a/src/rygel/rygel-user-config.vala b/src/rygel/rygel-user-config.vala
index c7762d5..353e514 100644
--- a/src/rygel/rygel-user-config.vala
+++ b/src/rygel/rygel-user-config.vala
@@ -22,14 +22,13 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
-using GConf;
 using CStuff;
 
 /**
  * Manages the user configuration for Rygel.
  */
 public class Rygel.UserConfig : GLib.Object, Configuration {
-    protected static const string ROOT_GCONF_PATH = "/apps/rygel/";
+    protected static const string CONFIG_FILE = "rygel.conf";
     protected static const string IP_KEY = "host-ip";
     protected static const string PORT_KEY = "port";
     protected static const string ENABLED_KEY = "enabled";
@@ -52,7 +51,7 @@ public class Rygel.UserConfig : GLib.Object, Configuration {
     // Our singleton
     private static UserConfig config;
 
-    protected GConf.Client gconf;
+    protected KeyFile key_file;
 
     private dynamic DBus.Object dbus_obj;
     private dynamic DBus.Object rygel_obj;
@@ -115,7 +114,7 @@ public class Rygel.UserConfig : GLib.Object, Configuration {
         this.set_bool ("general", LPCM_TRANSCODER_KEY, value);
     }
 
-    public static UserConfig get_default () {
+    public static UserConfig get_default () throws Error {
         if (config == null) {
             config = new UserConfig ();
         }
@@ -123,8 +122,19 @@ public class Rygel.UserConfig : GLib.Object, Configuration {
         return config;
     }
 
-    public UserConfig () {
-        this.gconf = GConf.Client.get_default ();
+    public UserConfig () 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 full_path;
+
+        this.key_file.load_from_dirs (CONFIG_FILE,
+                                      dirs,
+                                      out full_path,
+                                      KeyFileFlags.NONE);
+        debug ("Loaded user configuration from file '%s'", full_path);
 
         DBus.Connection connection = DBus.Bus.get (DBus.BusType.SESSION);
 
@@ -148,10 +158,7 @@ public class Rygel.UserConfig : GLib.Object, Configuration {
 
     public string get_string (string section,
                               string key) throws GLib.Error {
-        string val;
-        var path = ROOT_GCONF_PATH + section + "/" + key;
-
-        val = this.gconf.get_string (path);
+        var val = this.key_file.get_string (section, key);
 
         if (val == null || val == "") {
             throw new ConfigurationError.NO_VALUE_SET (
@@ -165,18 +172,10 @@ public class Rygel.UserConfig : GLib.Object, Configuration {
                                                   string key)
                                                   throws GLib.Error {
         var str_list = new Gee.ArrayList<string> ();
-        var path = ROOT_GCONF_PATH + section + "/" + key;
-
-        unowned SList<string> strings = this.gconf.get_list (
-                path,
-                GConf.ValueType.STRING);
-        if (strings != null) {
-            foreach (var str in strings) {
-                str_list.add (str);
-            }
-        } else {
-            throw new ConfigurationError.NO_VALUE_SET (
-                                        "No value available for '%s'", key);
+        var strings = this.key_file.get_string_list (section, key);
+
+        foreach (var str in strings) {
+            str_list.add (str);
         }
 
         return str_list;
@@ -187,10 +186,7 @@ public class Rygel.UserConfig : GLib.Object, Configuration {
                         int    min,
                         int    max)
                         throws GLib.Error {
-        int val;
-        var path = ROOT_GCONF_PATH + section + "/" + key;
-
-        val = this.gconf.get_int (path);
+        int val = this.key_file.get_integer (section, key);
 
         if (val < min || val > max) {
             throw new ConfigurationError.VALUE_OUT_OF_RANGE (
@@ -204,17 +200,10 @@ public class Rygel.UserConfig : GLib.Object, Configuration {
                                             string key)
                                             throws GLib.Error {
         var int_list = new Gee.ArrayList<int> ();
-        var path = ROOT_GCONF_PATH + section + "/" + key;
+        var ints = this.key_file.get_integer_list (section, key);
 
-        unowned SList<int> ints = this.gconf.get_list (path,
-                                                       GConf.ValueType.INT);
-        if (ints != null) {
-            foreach (var num in ints) {
-                int_list.add (num);
-            }
-        } else {
-            throw new ConfigurationError.NO_VALUE_SET (
-                                        "No value available for '%s'", key);
+        foreach (var num in ints) {
+            int_list.add (num);
         }
 
         return int_list;
@@ -223,75 +212,41 @@ public class Rygel.UserConfig : GLib.Object, Configuration {
     public bool get_bool (string section,
                           string key)
                           throws GLib.Error {
-        bool val;
-        var path = ROOT_GCONF_PATH + section + "/" + key;
-
-        unowned GConf.Value value = this.gconf.get (path);
-        if (value != null) {
-            val = value.get_bool ();
-        } else {
-            throw new ConfigurationError.NO_VALUE_SET (
-                                        "No value available for '%s'", key);
-        }
-
-        return val;
+        return this.key_file.get_boolean (section, key);
     }
 
     public void set_string (string section,
                             string key,
                             string value) {
-        var path = ROOT_GCONF_PATH + section + "/" + key;
-
-        try {
-            this.gconf.set_string (path, value);
-        } catch (GLib.Error error) {
-            // No big deal
-        }
+        this.key_file.set_string (section, key, value);
     }
 
     public void set_string_list (string                section,
                                  string                key,
                                  Gee.ArrayList<string> str_list) {
-        var path = ROOT_GCONF_PATH + section + "/" + key;
-
         // GConf requires us to provide it GLib.SList
-        SList<string> slist = null;
+        var strings = new string[str_list.size];
+        int i = 0;
 
         foreach (var str in str_list) {
             if (str != "") {
-                slist.append (str);
+                strings[i++] = str;
             }
         }
 
-        try {
-            this.gconf.set_list (path, GConf.ValueType.STRING, slist);
-        } catch (GLib.Error error) {
-            // No big deal
-        }
+        this.key_file.set_string_list (section, key, strings);
     }
 
     public void set_int (string section,
                          string key,
                          int    value) {
-        var path = ROOT_GCONF_PATH + section + "/" + key;
-
-        try {
-            this.gconf.set_int (path, value);
-        } catch (GLib.Error error) {
-            // No big deal
-        }
+        this.key_file.set_integer (section, key, value);
     }
 
     public void set_bool (string section,
                           string key,
                           bool   value) {
-        var path = ROOT_GCONF_PATH + section + "/" + key;
-
-        try {
-            this.gconf.set_bool (path, value);
-        } catch (GLib.Error error) {
-            // No big deal
-        }
+        this.key_file.set_boolean (section, key, value);
     }
 
     private void enable_upnp (bool enable) {
diff --git a/src/ui/Makefile.am b/src/ui/Makefile.am
index 7f20dc8..5e4ac66 100644
--- a/src/ui/Makefile.am
+++ b/src/ui/Makefile.am
@@ -8,7 +8,6 @@ rygeldir = $(top_srcdir)/src/rygel
 
 AM_CFLAGS = $(LIBGUPNP_CFLAGS) \
 	    $(LIBGUPNP_AV_CFLAGS) \
-	    $(LIBGCONF_CFLAGS) \
 	    $(LIBGSTREAMER_CFLAGS) \
 	    $(GIO_CFLAGS) \
             $(GTK_CFLAGS) \
@@ -51,7 +50,6 @@ rygel.stamp: $(filter %.vala,$(rygel_preferences_SOURCES))
 
 rygel_preferences_LDADD = $(LIBGUPNP_LIBS) \
 	                  $(LIBGUPNP_AV_LIBS) \
-                          $(LIBGCONF_LIBS) \
                           $(LIBGSTREAMER_LIBS) \
                           $(GIO_LIBS) \
                           $(GEE_LIBS) \



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]