Commits


remove now misleading comment


fix amused-web build on linux Here we have endian.h but also need some other compat shims; the build was failing with an unclear "can't include machine/endian.h". Alter our local endian.h to #include_next endian.h. Then, move the various #define HAVE_* before including any header in config.h since some of the included headers were pulling in endian.h before HAVE_ENDIAN_H is defined.


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!