diff options
Diffstat (limited to 'src/librygel-server/rygel-media-object.vala')
-rw-r--r-- | src/librygel-server/rygel-media-object.vala | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/librygel-server/rygel-media-object.vala b/src/librygel-server/rygel-media-object.vala index 2421c56d..3e9e1d77 100644 --- a/src/librygel-server/rygel-media-object.vala +++ b/src/librygel-server/rygel-media-object.vala @@ -158,6 +158,33 @@ public abstract class Rygel.MediaObject : GLib.Object { HTTPServer http_server) throws Error; + internal virtual void apply_didl_lite (DIDLLiteObject didl_object) { + this.title = didl_object.title; + } + + internal DIDLLiteFragmentResult apply_fragments + (LinkedList<string> current_fragments, + LinkedList<string> new_fragments, + HTTPServer http_server) { + var result = DIDLLiteFragmentResult.UNKNOWN_ERROR; + + try { + var writer = new DIDLLiteWriter (null); + var didl_object = this.serialize (writer, http_server); + + result = didl_object.apply_fragments + (current_fragments.to_array (), + new_fragments.to_array ()); + + if (result == DIDLLiteFragmentResult.OK) { + this.apply_didl_lite (didl_object); + } + + } catch (Error e) {} + + return result; + } + internal virtual int compare_by_property (MediaObject media_object, string property) { switch (property) { |