[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 7/7] tracklist: implement single-track repeat
From: |
Eric Wong |
Subject: |
[PATCH 7/7] tracklist: implement single-track repeat |
Date: |
Mon, 9 Sep 2013 08:31:09 +0000 |
Because sometimes a song is just stuck in our head.
Or MPRIS 2.0 wants us to implement it this way...
---
lib/dtas/player/client_handler.rb | 1 +
lib/dtas/tracklist.rb | 5 +++--
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/dtas/player/client_handler.rb
b/lib/dtas/player/client_handler.rb
index c7dd31d..9697f39 100644
--- a/lib/dtas/player/client_handler.rb
+++ b/lib/dtas/player/client_handler.rb
@@ -547,6 +547,7 @@ module DTAS::Player::ClientHandler # :nodoc:
case msg.shift
when "true" then @tl.repeat = true
when "false" then @tl.repeat = false
+ when "1" then @tl.repeat = 1
when nil
return io.emit("repeat address@hidden")
end
diff --git a/lib/dtas/tracklist.rb b/lib/dtas/tracklist.rb
index 644c57f..6ed22ee 100644
--- a/lib/dtas/tracklist.rb
+++ b/lib/dtas/tracklist.rb
@@ -6,7 +6,7 @@ require_relative 'serialize'
# this is inspired by the MPRIS 2.0 TrackList spec
class DTAS::Tracklist
include DTAS::Serialize
- attr_accessor :repeat
+ attr_accessor :repeat # true, false, 1
SIVS = %w(list pos repeat)
TL_DEFAULTS = {
@@ -67,7 +67,8 @@ class DTAS::Tracklist
def advance_track(repeat_ok = true)
return if @list.empty?
- next_pos = @goto_pos || @pos + 1
+ # @repeat == 1 for single track repeat
+ next_pos = @goto_pos || @pos + (@repeat == 1 ? 0 : 1)
next_off = @goto_off # nil by default
@goto_pos = @goto_off = nil
if @list[next_pos]
--
1.8.4
- [PATCH 1/7] dtas-console: avoid using current if it is nil, Eric Wong, 2013/09/09
- [PATCH 3/7] tracklist: next_track -> advance_track, Eric Wong, 2013/09/09
- [PATCH 5/7] player: "tl goto" takes optional offset arg in HHMMSS.SUBSEC, Eric Wong, 2013/09/09
- [PATCH 7/7] tracklist: implement single-track repeat,
Eric Wong <=
- [PATCH 2/7] player: reset tracklist when idle stat is detected, Eric Wong, 2013/09/09
- [PATCH 6/7] tracklist: previous! only wraps around when repeat is enabled, Eric Wong, 2013/09/09
- [PATCH 4/7] player: implement previous/next commands, Eric Wong, 2013/09/09