core: Apply Xbox hacks on search results as well
authorZeeshan Ali (Khattak) <zeeshanak@gnome.org>
Wed, 24 Mar 2010 01:15:37 +0000 (03:15 +0200)
committerZeeshan Ali (Khattak) <zeeshanak@gnome.org>
Sun, 28 Mar 2010 19:09:03 +0000 (22:09 +0300)
src/rygel/rygel-search.vala

index 4c6c366..9ef99fd 100644 (file)
@@ -46,6 +46,7 @@ internal class Rygel.Search: GLib.Object, Rygel.StateMachine {
     private uint32 system_update_id;
     private ServiceAction action;
     private Rygel.DIDLLiteWriter didl_writer;
+    private XBoxHacks xbox_hacks;
 
     public Cancellable cancellable { get; set; }
 
@@ -58,6 +59,10 @@ internal class Rygel.Search: GLib.Object, Rygel.StateMachine {
 
         this.didl_writer =
                 new Rygel.DIDLLiteWriter (content_dir.http_server);
+
+        try {
+            this.xbox_hacks = new XBoxHacks (action.get_message ());
+        } catch { /* This just means we are not dealing with Xbox, yay! */ }
     }
 
     public async void run () {
@@ -107,6 +112,10 @@ internal class Rygel.Search: GLib.Object, Rygel.StateMachine {
 
             // Serialize results
             foreach (var result in results) {
+                if (result is MediaItem && this.xbox_hacks != null) {
+                    this.xbox_hacks.apply (result as MediaItem);
+                }
+
                 this.didl_writer.serialize (result);
             }