rygel r398 - trunk/src/rygel



Author: zeeshanak
Date: Thu Dec 25 12:02:21 2008
New Revision: 398
URL: http://svn.gnome.org/viewvc/rygel?rev=398&view=rev

Log:
Streamer properly handles interactive contents.

Currently just images.

Modified:
   trunk/src/rygel/rygel-streamer.vala

Modified: trunk/src/rygel/rygel-streamer.vala
==============================================================================
--- trunk/src/rygel/rygel-streamer.vala	(original)
+++ trunk/src/rygel/rygel-streamer.vala	Thu Dec 25 12:02:21 2008
@@ -137,7 +137,11 @@
             return;
         }
 
-        this.handle_streaming_item (msg, item);
+        if (item.upnp_class == MediaItem.IMAGE_CLASS) {
+            this.handle_interactive_item (msg, item);
+        } else {
+            this.handle_streaming_item (msg, item);
+        }
     }
 
     private void handle_path_request (Soup.Message msg,
@@ -195,5 +199,33 @@
                       error.message);
         }
     }
+
+    private void handle_interactive_item (Soup.Message msg,
+                                          MediaItem    item) {
+        string uri = item.res.uri;
+
+        File file = File.new_for_uri (uri);
+
+        unowned string contents;
+        unowned string etag_out;
+        size_t length;
+        try {
+           file.load_contents (null,
+                               out contents,
+                               out length,
+                               out etag_out);
+        } catch (Error error) {
+            warning ("Failed to load contents from URI: %s: %s\n",
+                     uri,
+                     error.message);
+            msg.set_status (Soup.KnownStatusCode.NOT_FOUND);
+            return;
+        }
+
+        msg.set_status (Soup.KnownStatusCode.OK);
+        msg.response_body.append (Soup.MemoryUse.COPY,
+                                  contents,
+                                  length);
+    }
 }
 



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