about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-09-07 03:53:18 +0000
committerEric Wong <e@80x24.org>2015-09-07 03:56:54 +0000
commitf9e3dd47c25534af631a13e57f86fc69b03db9be (patch)
tree3e7f899328926d2c3b4a2d8a554139fe58cb9f7d
parent856b1c7064155e59c84942a7e8cd36128b6be34e (diff)
downloaddtas-f9e3dd47c25534af631a13e57f86fc69b03db9be.tar.gz
This will dump the contents of the current queue, including
positional seeking information and commands.  This is mainly
intended for debugging and tools which rely on dtas internals.
-rw-r--r--Documentation/dtas-player_protocol.txt5
-rw-r--r--lib/dtas/player.rb2
2 files changed, 7 insertions, 0 deletions
diff --git a/Documentation/dtas-player_protocol.txt b/Documentation/dtas-player_protocol.txt
index e1b2487..b02d1e5 100644
--- a/Documentation/dtas-player_protocol.txt
+++ b/Documentation/dtas-player_protocol.txt
@@ -166,6 +166,11 @@ Commands here should be alphabetized according to `LC_ALL=C sort'
 * play_pause - toggle the play/pause state.  This starts playback if
   paused, and pauses playback if playing.
 
+* queue cat - dump the contents of the queue as YAML
+  This may include arbitrary commands to be executed, filenames,
+  and offsets for playback.  The format is not intended to be
+  stable and subject to internal changes in dtas-player.
+
 * restart - restarts all processes in the current pipeline.  Playback
   will be momentarily interrupted while this change occurs.  This is
   necessary if one of the commands (e.g. sox or ecasound) or loaded
diff --git a/lib/dtas/player.rb b/lib/dtas/player.rb
index a102618..a1e2040 100644
--- a/lib/dtas/player.rb
+++ b/lib/dtas/player.rb
@@ -251,6 +251,8 @@ class DTAS::Player # :nodoc:
       tl_handler(io, msg)
     when "trim"
       trim_handler(io, msg)
+    when "queue"
+      msg[0] == "cat" and io.emit(@queue.to_yaml)
     end
   end