Commit Briefs
split out sndio-specific parts to audio_sndio.c
This hides the libsndio bits behind a small audio_* API for which in the future we may provide multiple implementations.
retry on sio_revents failure due to EAGAIN
I've noticed that often during the suspend/resume cycle amused could die due to a "sndio hang-up" caused by an EAGAIN. This should prevent that and make sure we retry the operation.
allow to seek to the beginning with -1
if the computed seek was less than 0 it skips the seek. It's more useful to just rewind to the beginning.
use (a modified version of) kristaps' oconfigure
see GitHub issue #1
player_dispatch even when poll(2) doesn't tell us to
we may have some imsgs queued up for later consumption that would otherwise get delayed. This fixes for e.g. $ amused stop ; amused seek 90
implement seeking
This adds the internal management of the seeking, as well as the decoder backends bits.
bits, rate and channels are unsigned
match the struct sio_par
improving error reporting
makes the player process optionally send back a string describing the failure to provide a better and more coincise error message. This turns the syslog message(s): amused: unknown file type amused: failed to play, skipping /home/op/pics/phos.jpg into: amused: unknown file type; skipping /home/op/pics/phos.jpg