Commit Briefs
change the log debug string for player_setup
now it includes all the params, not only the rate
always call playlist_dropcurrent after main_play_song failures
otherwise we keep garbage in the playing queue.
unify IMSG_ERR and IMSG_EOF handling
IMSG_ERR needs a playlist_dropcurrent(), but otherwise is just the same as IMSG_EOF: the current song ended and we need to move forward. To unify, set current_song to NULL in playlist_dropcurrent, which make sense since right after it we're not playing anything.
move to the previous song in playlist_dropcurrent()
this avoids the player skipping two songs on failure.
remove siginfo handling
was useful for debugging but now ther's the `status' command for it.
flush stdout after each monitor event
otherwise the output may get buffered by a pipe and it's not pretty.
add a monitor functionality
this pings all the "interesting" events to clients that issued a IMSG_CTL_MONITOR, except to the one that generated such event.
mp3: don't scale back to 16bps
libmad gives us sample at 32bps, but we scaled back to 16 because minimad.c does so. However, the scale producedure from minimad.c kinds of corrupts some audio files, they don't play well. We can leave the problem to sndio which solves it better than us.