Component diagrams
==================
+.. contents::
+
-------
filesrc
-------
Input
~~~~~
-
control event
* Open FilePath
* Seek SeekMode Integer
Output
~~~~~~
-
octet stream event
ByteString (response for the "Read" event)
-----------.
v
wv stream ,---------. wv ctrl
- ---------->| |---------->
- wvc stream | | wv blocks
- ---------->| wvparse |---------->
- | | wvc ctrl
- | |---------->
- `---------' wvc blocks
- | | `----------->
- | | media tags
- | `------------->
- | state
- `--------------->
+ ---------->| |------------->
+ wvc stream | | wvc ctrl
+ ---------->| wvparse |------------->
+ | | wv/wvc blocks
+ | |------------->
+ `---------' media tags
+ | `-------------->
+ | parser state
+ `---------------->
Input
~~~~~
-
parser control event
SeekableParserCtrl
* GetNext
* FindTags
- * Seek Integer -- sample index
+ * Seek Integer -- frame index
NonSeekableParserCtrl
* GetNext
Output
~~~~~~
-
-wv/wvc control event
+wv/wvc stream control event
Seekable
* Seek SeekMode Integer
* Read Int
NonSeekable
* Read Int
-wv block event
- WavPack.Block
-
-wvc block event
- Maybe WavPack.Block
+wv/wvc blocks event
+ #. [WavPack.Block] -- wv blocks for all channels (non-empty)
+ #. [WavPack.Block] -- wvc blocks for all channels
+ #. Integer -- samples to skip
reactive media tags
Map Text Text
-reactive state value
- * Active
+reactive parser state value
* Inactive
+ * Active (Maybe Integer) -- # samples
-----
Diagram::
- decoder ctrl ,-------. wv ctrl
- ------------>| |----------->
- wv stream | | wvc ctrl
- ------------>| wvdec |----------->
- wvc stream | | PCM streams
- ------------>| |----------->
- `-------' state
- | `------------>
- | stream info
- `-------------->
-
-decoder control event
- FileDecodingCtrl -- Seekable wv/wvc ctrl
- * Reset (can be omitted)
- * Start
- * Stop
- * Seek Integer -- sample index
-
- StreamDecodingCtrl -- NonSeekable wv/wvc ctrl
- * Reset (can be omitted)
- * Start
- * Stop
+ ,-------. PCM streams
+ wv/wvc blocks | |----------->
+ ------------->| wvdec | stream info
+ | |----------->
+ `-------'
-wv stream event
- ByteString
+Input
+~~~~~
+wv/wvc blocks event
+ #. [WavPack.Block] -- wv blocks for all channels (non-empty)
+ #. [WavPack.Block] -- wvc blocks for all channels
+ #. Integer -- frames to skip
-wvc stream event
- Maybe ByteString
+Output
+~~~~~~
+reactive PCM streams
+ (FIXME: not defined yet)
-wv/wvc control event
- Seekable
- * Seek SeekMode Integer
- * Read Int
- * Close
+reactive stream info
+ * Inactive
- NonSeekable
- * Read Int
+ * Active
-PCM stream events
- (FIXME: not defined yet)
+ #. # channels :: Int
+ #. channel mask :: (FIXME: not defined yet)
+ #. sampling rate :: Integer
-reactive state value
- * Idle
- * Running
-
-reactive stream info (Maybe; responds to the "Reset" event)
- #. compression style :: Lossless | Hybrid Bool Bool -- True if
- using wvc, True if dynamic noise shaping is in effect
- #. compression mode :: Fast | Normal | High | VeryHigh
- #. extra compression level :: Maybe Int
- #. sample format :: Word8 | Word16 | Word32 | Float
- #. # channels :: Int
- #. channel mask :: (FIXME: not defined yet)
- #. sampling rate :: Integer
- #. # samples :: Maybe Integer
- #. media tags :: (FIXME: not defined yet)
+
+------
+wvplay
+------
+
+FIXME: under construction