summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Georg <jensg@openismus.com>2013-04-12 12:56:12 +0200
committerJens Georg <jensg@openismus.com>2013-04-30 10:46:56 +0200
commit9dfc1b70b734f4c4bd04a397ee4be94cffe9c7d7 (patch)
tree1489caf7f04f359169f8ce6a763ab0a9df7e5207
parent8df7ce0a23e51204c7c86cef4231af02ca504ff6 (diff)
downloadrygel-9dfc1b70b734f4c4bd04a397ee4be94cffe9c7d7.tar.gz
server: Add support non-fs-based WritableContainer
https://bugzilla.gnome.org/show_bug.cgi?id=697949
-rw-r--r--src/librygel-server/rygel-media-object.vala7
-rw-r--r--src/librygel-server/rygel-writable-container.vala2
2 files changed, 9 insertions, 0 deletions
diff --git a/src/librygel-server/rygel-media-object.vala b/src/librygel-server/rygel-media-object.vala
index 6b3953a0..3d6c0a40 100644
--- a/src/librygel-server/rygel-media-object.vala
+++ b/src/librygel-server/rygel-media-object.vala
@@ -265,6 +265,13 @@ public abstract class Rygel.MediaObject : GLib.Object {
private async bool check_writable (File file, Cancellable? cancellable)
throws Error {
+ // Special URI scheme to indicate that this is a writable container
+ // but doesn't have any real filesystem backing
+ if (WritableContainer.WRITABLE_SCHEME.has_prefix
+ (file.get_uri_scheme())) {
+ return true;
+ }
+
if (!file.is_native ()) {
return false;
}
diff --git a/src/librygel-server/rygel-writable-container.vala b/src/librygel-server/rygel-writable-container.vala
index 44bd609f..f293f9d8 100644
--- a/src/librygel-server/rygel-writable-container.vala
+++ b/src/librygel-server/rygel-writable-container.vala
@@ -41,6 +41,8 @@ public errordomain Rygel.WritableContainerError {
* # Monitor not only its own URI but also that of its child items, though the latter is implied in the former if you use GIO for monitoring.
*/
public interface Rygel.WritableContainer : MediaContainer {
+ public static const string WRITABLE_SCHEME = "rygel-writable://";
+
//TODO: The valadoc gtk-doc doclet doesn't use the property's documentation
//on getters and setters:
//https://bugzilla.gnome.org/show_bug.cgi?id=684193