From 3717adc0f2862e6277da4a64bfbd054e892a2941 Mon Sep 17 00:00:00 2001 From: "Zeeshan Ali (Khattak)" Date: Wed, 28 Jan 2009 12:34:01 +0000 Subject: [PATCH] Root container is now created by ContentDir implementations. svn path=/trunk/; revision=506 --- src/plugins/dvb/rygel-dvb-content-dir.vala | 5 +++++ src/plugins/test/rygel-test-content-dir.vala | 5 +++++ src/plugins/tracker/rygel-media-tracker.vala | 5 +++++ src/rygel/rygel-content-directory.vala | 11 +++++------ 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/plugins/dvb/rygel-dvb-content-dir.vala b/src/plugins/dvb/rygel-dvb-content-dir.vala index 296f561..1b6cadd 100644 --- a/src/plugins/dvb/rygel-dvb-content-dir.vala +++ b/src/plugins/dvb/rygel-dvb-content-dir.vala @@ -161,6 +161,11 @@ public class Rygel.DVBContentDir : ContentDirectory { return children; } + public override MediaContainer? create_root_container () { + string friendly_name = this.root_device.get_friendly_name (); + return new MediaContainer.root (friendly_name, 0); + } + // Private methods private DVBChannelGroup? find_group_by_id (string id) { DVBChannelGroup group = null; diff --git a/src/plugins/test/rygel-test-content-dir.vala b/src/plugins/test/rygel-test-content-dir.vala index 23fbee6..5df09c4 100644 --- a/src/plugins/test/rygel-test-content-dir.vala +++ b/src/plugins/test/rygel-test-content-dir.vala @@ -98,6 +98,11 @@ public class Rygel.TestContentDir : ContentDirectory { return item; } + public override MediaContainer? create_root_container () { + string friendly_name = this.root_device.get_friendly_name (); + return new MediaContainer.root (friendly_name, 0); + } + /* Private methods */ private void on_need_stream_source (HTTPServer http_server, MediaItem item, diff --git a/src/plugins/tracker/rygel-media-tracker.vala b/src/plugins/tracker/rygel-media-tracker.vala index 6024e57..de22ba8 100644 --- a/src/plugins/tracker/rygel-media-tracker.vala +++ b/src/plugins/tracker/rygel-media-tracker.vala @@ -130,6 +130,11 @@ public class Rygel.MediaTracker : ContentDirectory { return children; } + public override MediaContainer? create_root_container () { + string friendly_name = this.root_device.get_friendly_name (); + return new MediaContainer.root (friendly_name, 0); + } + /* Private methods */ private TrackerContainer? find_container_by_id (string container_id) { TrackerContainer container; diff --git a/src/rygel/rygel-content-directory.vala b/src/rygel/rygel-content-directory.vala index 1d6a578..06422e6 100644 --- a/src/rygel/rygel-content-directory.vala +++ b/src/rygel/rygel-content-directory.vala @@ -95,9 +95,13 @@ public class Rygel.ContentDirectory: Service { throw new ServerError.NOT_IMPLEMENTED ("Not Implemented\n"); } + public virtual MediaContainer? create_root_container () { + return null; + } + public override void constructed () { this.didl_writer = new DIDLLiteWriter (); - this.setup_root_container (); + this.root_container = this.create_root_container (); this.http_server = new HTTPServer (context, this.get_type ().name ()); this.http_server.item_requested += this.on_item_requested; @@ -251,11 +255,6 @@ public class Rygel.ContentDirectory: Service { value.set_string (this.feature_list); } - private void setup_root_container () { - string friendly_name = this.root_device.get_friendly_name (); - this.root_container = new MediaContainer.root (friendly_name, 0); - } - private void browse_metadata (BrowseArgs args) throws Error { if (args.object_id == this.root_container.id) { this.root_container.serialize (didl_writer); -- 2.7.4