]> gitweb @ CieloNegro.org - soundpipes.git/blob - docs/components.rst
diagram of wvparse
[soundpipes.git] / docs / components.rst
1 Component diagrams
2 ==================
3
4 -------
5 filesrc
6 -------
7
8 Diagram::
9
10             ,---------.
11             |         | octet stream
12     control |         |------------->
13     ------->| filesrc | state
14             |         |------------->
15             |         |
16             `---------'
17
18 Input
19 ~~~~~
20
21 control event
22     * Open FilePath
23     * Seek SeekMode Integer
24     * Read Int
25     * Close
26
27 Output
28 ~~~~~~
29
30 octet stream event
31     ByteString (response for the "Read" event)
32
33 reactive state value
34     * Open Integer Integer -- size and the current position
35     * Closed
36
37
38 -------
39 wvparse
40 -------
41
42 Diagram::
43
44     parser ctl
45     -----------.
46                 v
47     wv stream  ,---------. wv ctrl
48     ---------->|         |---------->
49     wvc stream |         | wv blocks
50     ---------->| wvparse |---------->
51                |         | wvc ctrl
52                |         |---------->
53                `---------' wvc blocks
54                     | | `----------->
55                     | | media tags
56                     | `------------->
57                     | state
58                     `--------------->
59
60 Input
61 ~~~~~
62
63 parser control event
64     SeekableParserCtrl
65         * GetNext
66         * FindTags
67         * Seek Integer -- sample index
68
69     NonSeekableParserCtrl
70         * GetNext
71
72 wv stream event
73     ByteString
74
75 wvc stream event
76     Maybe ByteString
77
78 Output
79 ~~~~~~
80
81 wv/wvc control event
82     Seekable
83         * Seek SeekMode Integer
84         * Read Int
85
86     NonSeekable
87         * Read Int
88
89 wv block event
90     WavPack.Block
91
92 wvc block event
93     Maybe WavPack.Block
94
95 reactive media tags
96     Map Text Text
97
98 reactive state value
99     * Active
100     * Inactive
101
102
103 -----
104 wvdec
105 -----
106
107 Diagram::
108
109     decoder ctrl ,-------. wv ctrl
110     ------------>|       |----------->
111     wv stream    |       | wvc ctrl
112     ------------>| wvdec |----------->
113     wvc stream   |       | PCM streams
114     ------------>|       |----------->
115                  `-------' state
116                       | `------------>
117                       | stream info
118                       `-------------->
119
120 decoder control event
121     FileDecodingCtrl -- Seekable wv/wvc ctrl
122         * Reset (can be omitted)
123         * Start
124         * Stop
125         * Seek Integer -- sample index
126
127     StreamDecodingCtrl -- NonSeekable wv/wvc ctrl
128         * Reset (can be omitted)
129         * Start
130         * Stop
131
132 wv stream event
133     ByteString
134
135 wvc stream event
136     Maybe ByteString
137
138 wv/wvc control event
139     Seekable
140         * Seek SeekMode Integer
141         * Read Int
142         * Close
143
144     NonSeekable
145         * Read Int
146
147 PCM stream events
148     (FIXME: not defined yet)
149
150 reactive state value
151     * Idle
152     * Running
153
154 reactive stream info (Maybe; responds to the "Reset" event)
155     #. compression style :: Lossless | Hybrid Bool Bool -- True if
156        using wvc, True if dynamic noise shaping is in effect
157     #. compression mode :: Fast | Normal | High | VeryHigh
158     #. extra compression level :: Maybe Int
159     #. sample format :: Word8 | Word16 | Word32 | Float
160     #. # channels :: Int
161     #. channel mask :: (FIXME: not defined yet)
162     #. sampling rate :: Integer
163     #. # samples :: Maybe Integer
164     #. media tags :: (FIXME: not defined yet)