renderer: Refactor ABS_TIME/REL_TIME seeking
authorJens Georg <jensg@openismus.com>
Thu, 17 Oct 2013 12:28:03 +0000 (14:28 +0200)
committerJens Georg <jensg@openismus.com>
Thu, 17 Oct 2013 12:46:56 +0000 (14:46 +0200)
Re-unify the two codepaths and just add player position to the seek target
when we're in REL_TIME mode.

src/librygel-renderer/rygel-av-transport.vala

index 8fd2555..ee5785f 100644 (file)
@@ -596,35 +596,20 @@ internal class Rygel.AVTransport : Service {
                         out target);
         switch (unit) {
         case "ABS_TIME":
-            debug ("Seeking to %s.", target);
-
-            if (!this.player.can_seek) {
-                action.return_error (710, _("Seek mode not supported"));
-
-                return;
-            }
-
-            if (!this.player.seek (TimeUtils.time_from_string (target))) {
-                action.return_error (711, _("Illegal seek target"));
+        case "REL_TIME":
+            debug ("Seeking %s to %s.", unit, target);
 
-                return;
+            var seek_target = TimeUtils.time_from_string (target);
+            if (unit == "REL_TIME") {
+                seek_target += this.player.position;
             }
 
-            action.return ();
-
-            return;
-        case "REL_TIME":
-            debug ("Relative seek to %s.", target);
-
             if (!this.player.can_seek) {
                 action.return_error (710, _("Seek mode not supported"));
 
                 return;
             }
 
-            var seek_target = this.player.position +
-                              TimeUtils.time_from_string (target);
-
             if (!this.player.seek (seek_target)) {
                 action.return_error (711, _("Illegal seek target"));