Commit Briefs

Omar Polo

cache audio_nfds()

ALSA' snd_pcm_poll_descriptors_count() can fail with -EPIPE after an underrun (e.g. after a pause), so we can't call it directly like this. It's also a bit sloppy to always call audio_nfds(), so instead save the (initial) value returned and pass it to the various functions. Issue reported and fix tested by phoebos (ben [at] bvnf [dot] space), thank you!


Omar Polo

adjust copyright years


Omar Polo

fix my email address

used @openbsd.org initially by mistake and got copied around in most files. Since this has nothing to do officially with the OpenBSD project, use my own email address.


Omar Polo

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.



Omar Polo

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.


Omar Polo

don't ignore ERRNO from sio_revents



Omar Polo

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.


Omar Polo

use (a modified version of) kristaps' oconfigure

see GitHub issue #1


Omar Polo

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


Omar Polo

handle seek during pause and stop


Omar Polo

drop needless debug printf


Omar Polo

implement seeking

This adds the internal management of the seeking, as well as the decoder backends bits.


Omar Polo

bits, rate and channels are unsigned

match the struct sio_par