Richard Spindler wrote:
on my quest to understand the ALSA API, I created a
little Image to
get an overview about the various states and how they relate to each
other.
http://propirate.net/oracle/bilder/ALSA.png
Cool, the first complete page of The ALSA Programming Manual!
Now we only need somebody to write the remaining 999 pages ... ;-)
Hopefully I got everyting right, can you have a look
at this image and
tell me whether this is correct?
snd_pcm_hw_params() goes into the SETUP state and then calls
snd_pcm_prepare(); I don't know how to display this in a picture. :)
You probably want an arrow from snd_pcm_writei() to RUNNING.
The SUSPENDED and XRUN states can happen asynchronously, i.e., the
device can go into them at any time (from some other states), and the
next call to snd_pcm_writei() only reports them. In this regard, they
are similar to the DISCONNECTED state.
XRUN happens not only when an over/underrun occurs but also when some
other error causes the device to stop (this error may be recoverable or
not).
Regards,
Clemens