| |
`---------'
+Input
+~~~~~
+
control event
* Open FilePath
* Seek SeekMode Integer
* Read Int
* Close
+Output
+~~~~~~
+
octet stream event
ByteString (response for the "Read" event)
* Open Integer Integer -- size and the current position
* Closed
+
+-------
+wvparse
+-------
+
+Diagram::
+
+ parser ctl
+ -----------.
+ v
+ wv stream ,---------. wv ctrl
+ ---------->| |---------->
+ wvc stream | | wv blocks
+ ---------->| wvparse |---------->
+ | | wvc ctrl
+ | |---------->
+ `---------' wvc blocks
+ | | `----------->
+ | | media tags
+ | `------------->
+ | state
+ `--------------->
+
+Input
+~~~~~
+
+parser control event
+ SeekableParserCtrl
+ * GetNext
+ * FindTags
+ * Seek Integer -- sample index
+
+ NonSeekableParserCtrl
+ * GetNext
+
+wv stream event
+ ByteString
+
+wvc stream event
+ Maybe ByteString
+
+Output
+~~~~~~
+
+wv/wvc control event
+ Seekable
+ * Seek SeekMode Integer
+ * Read Int
+
+ NonSeekable
+ * Read Int
+
+wv block event
+ WavPack.Block
+
+wvc block event
+ Maybe WavPack.Block
+
+reactive media tags
+ Map Text Text
+
+reactive state value
+ * Active
+ * Inactive
+
+
-----
wvdec
-----