about summary refs log tree commit homepage
path: root/lib/dtas
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dtas')
-rw-r--r--lib/dtas/player.rb62
-rw-r--r--lib/dtas/player/client_handler.rb32
2 files changed, 39 insertions, 55 deletions
diff --git a/lib/dtas/player.rb b/lib/dtas/player.rb
index a1e2040..554a53f 100644
--- a/lib/dtas/player.rb
+++ b/lib/dtas/player.rb
@@ -190,7 +190,7 @@ class DTAS::Player # :nodoc:
     io.emit("OK")
   end
 
-  def do_enq_head(io, msg)
+  def dpc_enq_head(io, msg)
     # check @queue[0] in case we have no sinks
     if need_to_queue
       @queue.unshift(msg)
@@ -207,55 +207,33 @@ class DTAS::Player # :nodoc:
     case command
     when "enq"
       enq_handler(io, msg[0])
-    when "enq-head"
-      do_enq_head(io, msg)
     when "enq-cmd"
       enq_handler(io, { "command" => msg[0]})
     when "pause", "play", "play_pause"
       play_pause_handler(io, command)
-    when "seek"
-      do_seek(io, msg[0])
-    when "clear"
-      @queue.clear
-      wall("clear")
-      io.emit("OK")
-    when "rg"
-      rg_handler(io, msg)
-    when "cue"
-      cue_handler(io, msg)
-    when "skip"
-      skip_handler(io, msg)
-    when "sink"
-      sink_handler(io, msg)
-    when "current"
-      current_handler(io, msg)
-    when "watch"
-      @watchers[io] = true
-      io.emit("OK")
-    when "format"
-      format_handler(io, msg)
-    when "env"
-      env_handler(io, msg)
-    when "restart"
-      restart_pipeline
-      io.emit("OK")
-    when "source"
-      source_handler(io, msg)
-    when "state"
-      state_file_handler(io, msg)
-    when "cd"
-      chdir_handler(io, msg)
     when "pwd"
       io.emit(Dir.pwd)
-    when "tl"
-      tl_handler(io, msg)
-    when "trim"
-      trim_handler(io, msg)
-    when "queue"
-      msg[0] == "cat" and io.emit(@queue.to_yaml)
+    else
+      m = "dpc_#{command.tr('-', '_')}"
+      __send__(m, io, msg) if respond_to?(m)
     end
   end
 
+  def dpc_clear(io, msg)
+    @queue.clear
+    wall('clear')
+    io.emit('OK')
+  end
+
+  def dpc_queue(io, msg)
+    'cat' == msg[0] and io.emit(@queue.to_yaml)
+  end
+
+  def dpc_watch(io, _)
+    @watchers[io] = true
+    io.emit('OK')
+  end
+
   def event_loop_iter
     @srv.run_once do |io, msg| # readability handler, request/response
       case io
@@ -309,7 +287,7 @@ class DTAS::Player # :nodoc:
     return unless sink.active
 
     if (@current || @queue[0]) && !@paused
-      # we get here if source/sinks are all killed in restart_pipeline
+      # we get here if source/sinks are all killed in dpc_restart
       __sink_activate(sink)
       next_source(_next) unless @current
     end
diff --git a/lib/dtas/player/client_handler.rb b/lib/dtas/player/client_handler.rb
index b04872b..fab60f3 100644
--- a/lib/dtas/player/client_handler.rb
+++ b/lib/dtas/player/client_handler.rb
@@ -117,7 +117,7 @@ module DTAS::Player::ClientHandler # :nodoc:
   end
 
   # returns a wait_ctl arg
-  def sink_handler(io, msg)
+  def dpc_sink(io, msg)
     name = msg[1]
     case msg[0]
     when "ls"
@@ -240,7 +240,7 @@ module DTAS::Player::ClientHandler # :nodoc:
     out_samples(in_samples, @current.format, @format)
   end
 
-  def rg_handler(io, msg)
+  def dpc_rg(io, msg)
     return io.emit(@rg.to_hsh.to_yaml) if msg.empty?
     before = @rg.to_hsh
     msg.each do |kv|
@@ -277,7 +277,7 @@ module DTAS::Player::ClientHandler # :nodoc:
 
   # show current info about what's playing
   # returns non-blocking iterator retval
-  def current_handler(io, msg)
+  def dpc_current(io, msg)
     tmp = {}
     if @current
       tmp["current"] = s = @current.to_hsh
@@ -321,7 +321,7 @@ module DTAS::Player::ClientHandler # :nodoc:
     @srv.wait_ctl(buf, :wait_readable)
   end
 
-  def skip_handler(io, msg)
+  def dpc_skip(io, msg)
     __current_drop
     wall("skip")
     io.emit("OK")
@@ -371,7 +371,8 @@ module DTAS::Player::ClientHandler # :nodoc:
     end
   end
 
-  def do_seek(io, offset)
+  def dpc_seek(io, msg)
+    offset = msg[0]
     if @current
       if @current.respond_to?(:infile)
         begin
@@ -408,7 +409,12 @@ module DTAS::Player::ClientHandler # :nodoc:
     stop_sinks
   end
 
-  def format_handler(io, msg)
+  def dpc_restart(io, _)
+    restart_pipeline
+    io.emit('OK')
+  end
+
+  def dpc_format(io, msg)
     new_fmt = @format.dup
     msg.each do |kv|
       k, v = kv.split(/=/, 2)
@@ -443,7 +449,7 @@ module DTAS::Player::ClientHandler # :nodoc:
     io.emit("OK")
   end
 
-  def env_handler(io, msg)
+  def dpc_env(io, msg)
     if msg.empty?
       # this may fail for large envs due to SEQPACKET size restrictions
       # do we care?
@@ -465,7 +471,7 @@ module DTAS::Player::ClientHandler # :nodoc:
     io.emit("OK")
   end
 
-  def source_handler(io, msg)
+  def dpc_source(io, msg)
     map = @source_map
     op = msg.shift
     case op
@@ -509,7 +515,7 @@ module DTAS::Player::ClientHandler # :nodoc:
     end
   end
 
-  def chdir_handler(io, msg)
+  def dpc_cd(io, msg)
     msg.size == 1 or return io.emit("ERR usage: cd DIRNAME")
     begin
       Dir.chdir(msg[0])
@@ -520,7 +526,7 @@ module DTAS::Player::ClientHandler # :nodoc:
     io.emit("OK")
   end
 
-  def state_file_handler(io, msg)
+  def dpc_state(io, msg)
     case msg.shift
     when "dump"
       dest = msg.shift
@@ -546,7 +552,7 @@ module DTAS::Player::ClientHandler # :nodoc:
     __current_drop
   end
 
-  def tl_handler(io, msg)
+  def dpc_tl(io, msg)
     case msg.shift
     when "add"
       path = msg.shift
@@ -663,7 +669,7 @@ module DTAS::Player::ClientHandler # :nodoc:
     io.emit("OK")
   end
 
-  def cue_handler(io, msg)
+  def dpc_cue(io, msg)
     cur = @current
     if cur.respond_to?(:cuebreakpoints)
       bp = cur.cuebreakpoints
@@ -684,7 +690,7 @@ module DTAS::Player::ClientHandler # :nodoc:
     end
   end
 
-  def trim_handler(io, msg)
+  def dpc_trim(io, msg)
     case msg.size
     when 0
       io.emit({ 'trim' => @trim }.to_yaml)