[rygel/config] Rygel.Configuration is now a singleton



commit 1d80b24784ac5556e843f4fd8743859b99537f4d
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date:   Thu May 28 15:59:53 2009 +0300

    Rygel.Configuration is now a singleton
---
 .../folder/rygel-folder-root-container.vala        |    2 +-
 .../mediathek/rygel-mediathek-root-container.vala  |    2 +-
 src/rygel/rygel-configuration.vala                 |   11 +++++++++++
 src/rygel/rygel-media-server-factory.vala          |    2 +-
 src/ui/rygel-preferences-dialog.vala               |    2 +-
 5 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/plugins/folder/rygel-folder-root-container.vala b/src/plugins/folder/rygel-folder-root-container.vala
index 533e164..5a5f6fa 100644
--- a/src/plugins/folder/rygel-folder-root-container.vala
+++ b/src/plugins/folder/rygel-folder-root-container.vala
@@ -96,7 +96,7 @@ public class Rygel.FolderRootContainer : MediaContainer {
 
         this.items = new ArrayList<FolderContainer> ();
 
-        var config = new Rygel.Configuration ();
+        var config = Rygel.Configuration.get_default ();
         var dirs = config.get_string_list ("Folder", "folders");
 
         // either an error occured or the gconf key is not set
diff --git a/src/plugins/mediathek/rygel-mediathek-root-container.vala b/src/plugins/mediathek/rygel-mediathek-root-container.vala
index ddca46f..ad0aa16 100644
--- a/src/plugins/mediathek/rygel-mediathek-root-container.vala
+++ b/src/plugins/mediathek/rygel-mediathek-root-container.vala
@@ -100,7 +100,7 @@ public class Rygel.MediathekRootContainer : MediaContainer {
         this.session = new Soup.SessionAsync ();
         this.items = new ArrayList<MediathekRssContainer> ();
 
-        var config = new Rygel.Configuration ();
+        var config = Rygel.Configuration.get_default ();
         var feeds = config.get_int_list ("ZDFMediathek", "rss");
 
         if (feeds.size == 0) {
diff --git a/src/rygel/rygel-configuration.vala b/src/rygel/rygel-configuration.vala
index 8268e50..59ca818 100644
--- a/src/rygel/rygel-configuration.vala
+++ b/src/rygel/rygel-configuration.vala
@@ -41,6 +41,9 @@ public class Rygel.Configuration : GLib.Object {
     protected static const string LPCM_TRANSCODER_KEY =
                                                     "enable-lpcm-transcoder";
 
+    // Our singleton
+    private static Configuration config;
+
     protected GConf.Client gconf;
 
     private string _host_ip;
@@ -103,6 +106,14 @@ public class Rygel.Configuration : GLib.Object {
         }
     }
 
+    public static Configuration get_default () {
+        if (config == null) {
+            config = new Configuration ();
+        }
+
+        return config;
+    }
+
     public Configuration () {
         this.gconf = GConf.Client.get_default ();
     }
diff --git a/src/rygel/rygel-media-server-factory.vala b/src/rygel/rygel-media-server-factory.vala
index cd24362..9c105b1 100644
--- a/src/rygel/rygel-media-server-factory.vala
+++ b/src/rygel/rygel-media-server-factory.vala
@@ -43,7 +43,7 @@ public class Rygel.MediaServerFactory {
     private GUPnP.Context context;
 
     public MediaServerFactory () throws GLib.Error {
-        this.config = new Configuration ();
+        this.config = Configuration.get_default ();
 
         /* Set up GUPnP context */
         this.context = create_upnp_context ();
diff --git a/src/ui/rygel-preferences-dialog.vala b/src/ui/rygel-preferences-dialog.vala
index c14fe9c..a96b939 100644
--- a/src/ui/rygel-preferences-dialog.vala
+++ b/src/ui/rygel-preferences-dialog.vala
@@ -33,7 +33,7 @@ public class Rygel.PreferencesDialog : GLib.Object {
     ArrayList<PreferencesSection> sections;
 
     public PreferencesDialog () throws Error {
-        var config = new Configuration ();
+        var config = Configuration.get_default ();
 
         this.builder = new Builder ();
 



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