Commit Briefs

Omar Polo

remove now misleading comment


Omar Polo

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.


Omar Polo

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.


Omar Polo

add compat for getdtablesize()



Omar Polo

work around missing endian.h

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


Omar Polo

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.



Omar Polo

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


Omar Polo

fmt


Omar Polo

add -Wno-pointer-sign to the mix


Omar Polo

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.



Omar Polo

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.


Omar Polo

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!