Commit Briefs
amused monitor: allow to pass a list of event as filter
it's easier / simpler for scripts to do $ amused monitor next,prev,jump rather than $ amused monitor | egrep --line-buffered 'next|prev|jump'
CHANGES for 0.6 (tags/0.6)
don't send the song' path to the player process
we're not relying anymore on the file extension, so this information is useless for the player.
don't call player_sendeof on IMSG_STOP
the refactoring introduced this error where we call report an EOF upon IMSG_STOP, making the player infinitely loop.
add a simple filetype detector instead of relying on file extension
just a bit of "magic" :) Flac are easy, they always start with "fLaC". mp3 are weird because they either start with "ID3" (but this theoretically only ensures that's a tagged file, not an mp3) or 0xFF 0xFB. Ogg Opus should have a magic sequence "OpusHead" somewhere near the start of the file but also have the ogg' "OggS" magic bytes. I hope it's enough to distinguish between Ogg Opus and Vorbis. Another option would be to refactor play_oggvorbis/opus to not close the file on failure and try in cascade the play_* functions, but it's more complex and this solution seems to be enough.
refactor player_playnext: return status code
let the caller decide to call senderr or sendeof.