about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/dtas/player.rb8
-rw-r--r--lib/dtas/player/client_handler.rb6
2 files changed, 8 insertions, 6 deletions
diff --git a/lib/dtas/player.rb b/lib/dtas/player.rb
index efefcbf..f94c575 100644
--- a/lib/dtas/player.rb
+++ b/lib/dtas/player.rb
@@ -165,9 +165,13 @@ class DTAS::Player # :nodoc:
     rv
   end
 
+  def need_to_queue
+    @current || @queue[0] || @paused
+  end
+
   def enq_handler(io, msg)
     # check @queue[0] in case we have no sinks
-    if @current || @queue[0] || @paused
+    if need_to_queue
       @queue << msg
     else
       next_source(msg)
@@ -177,7 +181,7 @@ class DTAS::Player # :nodoc:
 
   def do_enq_head(io, msg)
     # check @queue[0] in case we have no sinks
-    if @current || @queue[0] || @paused
+    if need_to_queue
       @queue.unshift(msg)
     else
       next_source(msg)
diff --git a/lib/dtas/player/client_handler.rb b/lib/dtas/player/client_handler.rb
index 5c6653c..75e490d 100644
--- a/lib/dtas/player/client_handler.rb
+++ b/lib/dtas/player/client_handler.rb
@@ -552,7 +552,7 @@ module DTAS::Player::ClientHandler # :nodoc:
       _tl_skip if set_as_current
 
       # start playing if we're the only track
-      if @tl.size == 1 && !(@current || @queue[0] || @paused)
+      if @tl.size == 1 && ! need_to_queue
         next_source(_next)
       end
       io.emit("#{track_id}")
@@ -589,9 +589,7 @@ module DTAS::Player::ClientHandler # :nodoc:
       offset = msg.shift # may be nil
       if @tl.go_to(track_id.to_i, offset)
         _tl_skip
-        if !(@current || @queue[0] || @paused)
-          next_source(_next)
-        end
+        next_source(_next) unless need_to_queue
         io.emit("OK")
       else
         io.emit("MISSING")