[rygel] media-export: Use DLNA-compliant createClass



commit 92885a059a5dbbca10e06d630631e33178dad622
Author: Jens Georg <jensg openismus com>
Date:   Tue Jun 18 16:06:22 2013 +0200

    media-export: Use DLNA-compliant createClass
    
    DLNA does not like upnp:createClass other than object.container for
    containers. So we use that and use the possibility to "upgrade" the
    object's class upon creation.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=702258

 ...rygel-media-export-playlist-root-container.vala |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)
---
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 1779e61..66a6dde 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
@@ -49,7 +49,7 @@ internal class Rygel.MediaExport.PlaylistRootContainer : Rygel.WritableContainer
 
         // We don't support adding real folders here, just playlist container
         this.create_classes = new ArrayList<string> ();
-        this.create_classes.add (Rygel.MediaContainer.PLAYLIST);
+        this.create_classes.add (Rygel.MediaContainer.UPNP_CLASS);
 
         // Need to add an URI otherwise core doesn't mark the container as
         // writable
@@ -75,12 +75,15 @@ internal class Rygel.MediaExport.PlaylistRootContainer : Rygel.WritableContainer
     public async void add_container (Rygel.MediaContainer container,
                                      Cancellable?         cancellable)
                                      throws Error {
-        if (container.upnp_class != Rygel.MediaContainer.PLAYLIST) {
+        if (container.upnp_class != Rygel.MediaContainer.PLAYLIST &&
+            container.upnp_class != Rygel.MediaContainer.UPNP_CLASS) {
             throw new WritableContainerError.NOT_IMPLEMENTED
                                         (_("upnp:class not supported in %s"),
                                          this.id);
         }
+
         container.id = "playlist:" + UUID.get ();
+        container.upnp_class = Rygel.MediaContainer.PLAYLIST;
 
         this.media_db.save_container (container);
         this.media_db.make_object_guarded (container);


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