[rygel] media-export: Support playlists in XBox 360



commit 5b5952ae4e623bd90ed8aee2bfb02356b4d63157
Author: Jens Georg <jensg openismus com>
Date:   Mon Jun 10 22:50:33 2013 +0200

    media-export: Support playlists in XBox 360

 .../rygel-media-export-object-factory.vala         |    2 +-
 ...rygel-media-export-playlist-root-container.vala |    8 +++++---
 .../rygel-media-export-root-container.vala         |    8 +++++---
 3 files changed, 11 insertions(+), 7 deletions(-)
---
diff --git a/src/plugins/media-export/rygel-media-export-object-factory.vala 
b/src/plugins/media-export/rygel-media-export-object-factory.vala
index fd251d7..0335d70 100644
--- a/src/plugins/media-export/rygel-media-export-object-factory.vala
+++ b/src/plugins/media-export/rygel-media-export-object-factory.vala
@@ -51,7 +51,7 @@ internal class Rygel.MediaExport.ObjectFactory : Object {
         }
 
         if (id.has_prefix ("virtual-parent:" + Rygel.PlaylistItem.UPNP_CLASS)) {
-            return new PlaylistRootContainer (id, title);
+            return new PlaylistRootContainer ();
         }
 
         // Return a suitable container for the top-level virtual folders.
diff --git a/src/plugins/media-export/rygel-media-export-playlist-root-container.vala 
b/src/plugins/media-export/rygel-media-export-playlist-root-container.vala
index 5bef6b4..1779e61 100644
--- a/src/plugins/media-export/rygel-media-export-playlist-root-container.vala
+++ b/src/plugins/media-export/rygel-media-export-playlist-root-container.vala
@@ -31,13 +31,15 @@ using Gee;
  */
 internal class Rygel.MediaExport.PlaylistRootContainer : Rygel.WritableContainer,
                                                          DBContainer {
+    internal static const string ID = "virtual-parent:" +
+                                      Rygel.PlaylistItem.UPNP_CLASS;
     internal static const string URI = WritableContainer.WRITABLE_SCHEME +
                                        "playlist-root";
     public ArrayList<string> create_classes { get; set; }
 
-    public PlaylistRootContainer (string id, string title) {
-        Object (id : id,
-                title : title,
+    public PlaylistRootContainer () {
+        Object (id : ID,
+                title : _("Playlists"),
                 parent : null,
                 child_count : 0);
     }
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 b919a89..02e45c5 100644
--- a/src/plugins/media-export/rygel-media-export-root-container.vala
+++ b/src/plugins/media-export/rygel-media-export-root-container.vala
@@ -154,7 +154,7 @@ public class Rygel.MediaExport.RootContainer : TrackableDbContainer {
         if (expression is RelationalExpression) {
             var relational_expression = expression as RelationalExpression;
 
-            query_container = search_to_virtual_container
+            query_container = this.search_to_virtual_container
                                         (relational_expression);
             upnp_class = relational_expression.operand2;
         } else if (is_search_in_virtual_container (expression,
@@ -238,7 +238,7 @@ public class Rygel.MediaExport.RootContainer : TrackableDbContainer {
         return actual_uris;
     }
 
-    private QueryContainer? search_to_virtual_container (
+    private MediaContainer? search_to_virtual_container (
                                        RelationalExpression expression) {
         if (expression.operand1 == "upnp:class" &&
             expression.op == SearchCriteriaOp.EQ) {
@@ -256,6 +256,8 @@ public class Rygel.MediaExport.RootContainer : TrackableDbContainer {
                     id += "dc:genre,?";
 
                     break;
+                case MediaContainer.PLAYLIST:
+                    return new PlaylistRootContainer ();
                 default:
                     return null;
             }
@@ -284,7 +286,7 @@ public class Rygel.MediaExport.RootContainer : TrackableDbContainer {
     private bool is_search_in_virtual_container (SearchExpression   expression,
                                                  out MediaContainer container) {
         RelationalExpression virtual_expression = null;
-        QueryContainer query_container;
+        MediaContainer query_container;
 
         container = null;
 


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