Commits


add a liboboe audio backend for android Oboe is a Google C++ library for audio on Android. The backend is currently based on the libao skeleton since I couldn't get it to play audio in a non-blocking way. (It would also be pointless since there isn't a way to poll(1).) It would be worthing experimenting with the callback API. So far, it works on my phone under termux. I can control amused with amused-web. It still lacks a test in the configure since we would need to use C++ for it.


add compat for getdtablesize()


fix build when there is no system endian.h


work around missing endian.h As usual, if not found try sys/endian.h or pull in the macos thingy.


add an libao audio backend This backend uses libao to play music. It's a bit convoluted since libao doesn't provide an async interface, so we have to run it in a separate thread. Then, there's some notification via a shared socketpair because the main loop is around poll(). This actually doesn't work OOTB on OpenBSD due to a restrictive pledge(), but it's not a issue since sndio should be used there. libao is the last resort.


move timespecsub compat out of ev.c


tweak the configure - more consistent naming for libs (LDADD_LIB_*) - allow to change CC and CFLAGS as arguments - allow to specify the LDADD_LIB_* as arguments


fmt


add -Wno-pointer-sign to the mix


add configure check for libmd; needed on some OSes for amused-web On the BSDs the SHA1Init() and friends are part of libc, while on linux (and maybe other systems as well) we need an implementation of these function: libmd for example.


split out the various LDADD_* so we don't link everything to everything


switch from libevent to a smaller, thin wrapper around poll() libevent is a very cool library, I like its APIs and enjoy using it. However, for amused it is maybe a bit too much since it doesn't deal with too many file descriptors. Amused only needs to monitor one fd for the player process and the currently connected clients. Given that it runs per-user locally, having more than a dozen of fds open is very, very rare.


add missing HAVE_IMSG in config.h otherwise we always use the bundled imsg regardless of its presence on the system. What's even worst is that we use the system header with the bundled version. Spotted in a OpenBSD package bulk following the libutil bump and imsg API change by tb@, diff is his. Thanks!


configure: ensure HAVE_SIO_FLUSH has a value when BACKEND=alsa


configure: allow to select the audio backend