diff options
-rw-r--r-- | lib/dtas/player/client_handler.rb | 7 | ||||
-rw-r--r-- | lib/dtas/tracklist.rb | 6 |
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/dtas/player/client_handler.rb b/lib/dtas/player/client_handler.rb index 355451d..33cae05 100644 --- a/lib/dtas/player/client_handler.rb +++ b/lib/dtas/player/client_handler.rb @@ -583,6 +583,13 @@ module DTAS::Player::ClientHandler # :nodoc: when "current-id" path = @tl.cur_track io.emit(path ? path.object_id.to_s : "NONE") + when "next" + _tl_skip + io.emit("OK") + when "previous" + @tl.previous! + _tl_skip + io.emit("OK") end end end diff --git a/lib/dtas/tracklist.rb b/lib/dtas/tracklist.rb index e0b00cb..c3cd3ff 100644 --- a/lib/dtas/tracklist.rb +++ b/lib/dtas/tracklist.rb @@ -114,4 +114,10 @@ class DTAS::Tracklist @goto_pos = nil # noop if track_id is invalid end + + def previous! + return if @list.empty? + prev_idx = @pos - 1 + @goto_pos = @list[prev_idx] ? prev_idx : nil + end end |