[rygel] core,tracker: Use DLNA PN in item creation requests



commit ec1d9741b84b469a802336eed60d53837e4c2638
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date:   Fri Aug 13 16:54:08 2010 +0300

    core,tracker: Use DLNA PN in item creation requests
    
    Use the DLNA profile when provided in item creation requests. This fixes
    failing DLNA CTT testcase 7.3.26.4,5.

 .../tracker/rygel-tracker-insertion-query.vala     |    5 +++++
 src/rygel/rygel-item-creator.vala                  |    9 +++++++++
 2 files changed, 14 insertions(+), 0 deletions(-)
---
diff --git a/src/plugins/tracker/rygel-tracker-insertion-query.vala b/src/plugins/tracker/rygel-tracker-insertion-query.vala
index 3359164..1a68a57 100644
--- a/src/plugins/tracker/rygel-tracker-insertion-query.vala
+++ b/src/plugins/tracker/rygel-tracker-insertion-query.vala
@@ -39,6 +39,11 @@ public class Rygel.Tracker.InsertionQuery : Query {
         triplets.add (new QueryTriplet (QUERY_ID,
                                         "nie:mimeType",
                                         "\"" + item.mime_type + "\""));
+        if (item.dlna_profile != null) {
+            triplets.add (new QueryTriplet (QUERY_ID,
+                                            "nmm:dlnaProfile",
+                                            "\"" + item.dlna_profile + "\""));
+        }
         triplets.add (new QueryTriplet (QUERY_ID,
                                         "nie:url",
                                         "\"" + item.uris[0] + "\""));
diff --git a/src/rygel/rygel-item-creator.vala b/src/rygel/rygel-item-creator.vala
index e670e2a..6d09859 100644
--- a/src/rygel/rygel-item-creator.vala
+++ b/src/rygel/rygel-item-creator.vala
@@ -76,6 +76,15 @@ internal class Rygel.ItemCreator: GLib.Object, Rygel.StateMachine {
                                        didl_item.title,
                                        didl_item.upnp_class);
             this.item.mime_type = this.get_generic_mime_type ();
+            var resources = didl_item.get_resources ();
+            if (resources != null) {
+                var info = resources.nth (0).data.protocol_info;
+
+                if (info != null && info.dlna_profile != null) {
+                    this.item.dlna_profile = info.dlna_profile;
+                }
+            }
+
             this.item.place_holder = true;
 
             yield container.add_item (this.item, this.cancellable);



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