Commits


alsa: fix snd_pcm_writei usage snd_pcm_writei works in terms of audio frames, not buffer (bytes) length like snd_write does, so account for that. To do so, prepare a `bpf' (bytes per frame) multiplier in the configure stage and use it to convert back and forward between the buffer length and the number of frames. While here, also use snd_pcm_avail_update() to know how many frames may be written.


configure: allow to select the audio backend


add an audio implementation for ALSA it still doesn't work correctly, audio is very distorted, but at least there's some sound.


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.


use %u for unsigned int instead of %d


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.


fix snprintf call; could return < 0 on conversion failure


remove double ctl_sock check


don't ignore ERRNO from sio_revents


amusing: bind C-q to quit the window


amusing: / to focus the filter bar; esc to un-focus it


amusing: add some keybindings


amusing: don't show status string and remove the `status' variable


amusing: show the current played song too


add contrib/amusing: a gui written in Tcl/Tk