From 1d80b24784ac5556e843f4fd8743859b99537f4d Mon Sep 17 00:00:00 2001 From: "Zeeshan Ali (Khattak)" Date: Thu, 28 May 2009 15:59:53 +0300 Subject: [PATCH] Rygel.Configuration is now a singleton --- src/plugins/folder/rygel-folder-root-container.vala | 2 +- src/plugins/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 (); - 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 (); - 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 sections; public PreferencesDialog () throws Error { - var config = new Configuration (); + var config = Configuration.get_default (); this.builder = new Builder (); -- 2.7.4