[rygel] media-export,mediathek: Root-Container-Singleton
- From: Zeeshan Ali Khattak <zeeshanak src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [rygel] media-export,mediathek: Root-Container-Singleton
- Date: Wed, 9 Sep 2009 20:40:19 +0000 (UTC)
commit afc281148546a16dfe52deb7bf0f3ed68d1e8709
Author: Jens Georg <mail jensge org>
Date: Mon Jul 27 22:49:48 2009 +0200
media-export,mediathek: Root-Container-Singleton
Use the same root-container on every interface device
.../media-export/rygel-media-export-plugin.vala | 2 +-
.../rygel-media-export-root-container.vala | 12 +++++++++++-
src/plugins/mediathek/rygel-mediathek-plugin.vala | 2 +-
.../mediathek/rygel-mediathek-root-container.vala | 11 ++++++++++-
4 files changed, 23 insertions(+), 4 deletions(-)
---
diff --git a/src/plugins/media-export/rygel-media-export-plugin.vala b/src/plugins/media-export/rygel-media-export-plugin.vala
index 25f4871..58675ff 100644
--- a/src/plugins/media-export/rygel-media-export-plugin.vala
+++ b/src/plugins/media-export/rygel-media-export-plugin.vala
@@ -50,6 +50,6 @@ public void module_init (PluginLoader loader) {
public class Rygel.MediaExportContentDir : ContentDirectory {
public override MediaContainer? create_root_container () {
- return new MediaExportRootContainer ();
+ return MediaExportRootContainer.get_instance ();
}
}
diff --git a/src/plugins/media-export/rygel-media-export-root-container.vala b/src/plugins/media-export/rygel-media-export-root-container.vala
index a6d089d..c4b34f8 100644
--- a/src/plugins/media-export/rygel-media-export-root-container.vala
+++ b/src/plugins/media-export/rygel-media-export-root-container.vala
@@ -28,6 +28,8 @@ public class Rygel.MediaExportRootContainer : Rygel.MediaDBContainer {
private HashMap<File, MediaExportHarvester> harvester;
private MediaExportRecursiveFileMonitor monitor;
+ private static MediaExportRootContainer instance = null;
+
private ArrayList<string> get_uris () {
ArrayList<string> uris;
@@ -58,10 +60,18 @@ public class Rygel.MediaExportRootContainer : Rygel.MediaDBContainer {
return uris;
}
+ public static MediaExportRootContainer get_instance() {
+ if (MediaExportRootContainer.instance == null) {
+ MediaExportRootContainer.instance = new MediaExportRootContainer ();
+ }
+
+ return MediaExportRootContainer.instance;
+ }
+
/**
* Create a new root container.
*/
- public MediaExportRootContainer () {
+ private MediaExportRootContainer () {
var db = new MediaDB("media-export");
base (db, "0", "MediaExportRoot");
diff --git a/src/plugins/mediathek/rygel-mediathek-plugin.vala b/src/plugins/mediathek/rygel-mediathek-plugin.vala
index 69645ba..3f15a56 100644
--- a/src/plugins/mediathek/rygel-mediathek-plugin.vala
+++ b/src/plugins/mediathek/rygel-mediathek-plugin.vala
@@ -39,7 +39,7 @@ public void module_init (PluginLoader loader) {
public class Rygel.MediathekContentDir : ContentDirectory {
public override MediaContainer? create_root_container () {
- return new MediathekRootContainer ();
+ return MediathekRootContainer.get_instance ();
}
}
diff --git a/src/plugins/mediathek/rygel-mediathek-root-container.vala b/src/plugins/mediathek/rygel-mediathek-root-container.vala
index 428b94e..f84a573 100644
--- a/src/plugins/mediathek/rygel-mediathek-root-container.vala
+++ b/src/plugins/mediathek/rygel-mediathek-root-container.vala
@@ -27,6 +27,7 @@ using GConf;
public class Rygel.MediathekRootContainer : Rygel.MediaContainer {
private ArrayList<MediathekRssContainer> items;
internal SessionAsync session;
+ private static MediathekRootContainer instance;
public override void get_children (uint offset,
uint max_count,
@@ -94,7 +95,15 @@ public class Rygel.MediathekRootContainer : Rygel.MediaContainer {
return true;
}
- public MediathekRootContainer () {
+ public static MediathekRootContainer get_instance () {
+ if (MediathekRootContainer.instance == null) {
+ MediathekRootContainer.instance = new MediathekRootContainer ();
+ }
+
+ return instance;
+ }
+
+ private MediathekRootContainer () {
base.root ("ZDF Mediathek", 0);
this.session = new Soup.SessionAsync ();
this.items = new ArrayList<MediathekRssContainer> ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]