[rygel/rygel-0-12] core: Filter unsupported sort criterias from XBox



commit f9d1c1815fc5a00624bf3f0b0636b46536349bcc
Author: Jens Georg <mail jensge org>
Date:   Sun Nov 27 19:10:01 2011 +0100

    core: Filter unsupported sort criterias from XBox
    
    This fixes the "Slideshow" option when selected from top-level picture
    browsing dialog.
    
    Conflicts:
    
    	src/rygel/rygel-client-hacks.vala
    	src/rygel/rygel-xbox-hacks.vala

 src/rygel/rygel-media-query-action.vala |    4 ++++
 src/rygel/rygel-xbox-hacks.vala         |    8 ++++++++
 2 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/src/rygel/rygel-media-query-action.vala b/src/rygel/rygel-media-query-action.vala
index 5a615a8..f5f5633 100644
--- a/src/rygel/rygel-media-query-action.vala
+++ b/src/rygel/rygel-media-query-action.vala
@@ -130,6 +130,10 @@ internal abstract class Rygel.MediaQueryAction : GLib.Object, StateMachine {
             this.sort_criteria = DEFAULT_SORT_CRITERIA;
         }
 
+        if (this.xbox_hacks != null) {
+            this.xbox_hacks.filter_sort_criteria (ref this.sort_criteria);
+        }
+
         this.validate_sort_criteria ();
 
         if (this.xbox_hacks != null) {
diff --git a/src/rygel/rygel-xbox-hacks.vala b/src/rygel/rygel-xbox-hacks.vala
index 9407321..6baeeae 100644
--- a/src/rygel/rygel-xbox-hacks.vala
+++ b/src/rygel/rygel-xbox-hacks.vala
@@ -123,6 +123,14 @@ internal class Rygel.XBoxHacks : GLib.Object {
         }
     }
 
+    public void filter_sort_criteria (ref string sort_criteria) {
+        sort_criteria = sort_criteria.replace ("+microsoft:sourceURL", "");
+        sort_criteria = sort_criteria.replace (",,", ",");
+        if (sort_criteria.has_prefix (",")) {
+            sort_criteria = sort_criteria.slice (1, sort_criteria.length);
+        }
+    }
+
     public async MediaObjects? search (SearchableContainer container,
                                        SearchExpression?   expression,
                                        uint                offset,



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