about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2013-08-24 22:56:00 +0000
committerEric Wong <normalperson@yhbt.net>2013-08-25 00:06:16 +0000
commit4bb0b33402635da9702c255f11dbf3b18e4d28f0 (patch)
treeb73e7a58e06eeef26126a0fff45b05537eb98130
parent14d97ba79e36672101640321af618c018e11fbc3 (diff)
downloaddtas-4bb0b33402635da9702c255f11dbf3b18e4d28f0.tar.gz
We maintain most everything else, so we should maintain this, too.
-rw-r--r--lib/dtas/player.rb4
-rw-r--r--test/test_player.rb10
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/dtas/player.rb b/lib/dtas/player.rb
index e055fa5..b39989b 100644
--- a/lib/dtas/player.rb
+++ b/lib/dtas/player.rb
@@ -111,6 +111,10 @@ class DTAS::Player
         e = v["env"] and @srcenv = e
       end
 
+      if v = hash["format"]
+        @format = DTAS::Format.load(v)
+      end
+
       if sinks = hash["sinks"]
         sinks.each do |sink_hsh|
           sink = DTAS::Sink.load(sink_hsh)
diff --git a/test/test_player.rb b/test/test_player.rb
index 18a8a9e..78feff9 100644
--- a/test/test_player.rb
+++ b/test/test_player.rb
@@ -34,4 +34,14 @@ class TestPlayer < Minitest::Unit::TestCase
     hash = @player.to_hsh
     assert_equal({"socket" => @path}, hash)
   end
+
+  def test_player_serialize_format
+    fmt = DTAS::Format.new
+    fmt.type = "f32"
+    fmt.rate = 48000
+    player = DTAS::Player.load("format" => fmt.to_hsh)
+    fhash = player.to_hsh["format"]
+    assert_equal "f32", fhash["type"]
+    assert_equal 48000, fhash["rate"]
+  end
 end