Commit Briefs



Omar Polo

amused-monitor: fix rounding

round() rouds towards infinity, but for the line counting i need a round towards zero, the one provided by int()


Omar Polo

amused.1: sort the events


Omar Polo

amused-monitor: fix bug when window is taller than playlist

adjust the index before reordering the entries, otherwise we may try to read out-of-bound because the reading loop wraps at $lines, not at $tmp size.



Omar Polo

add consume mode

the consume mode implicitly drops the tracks from the playlist when played 'till the end (note that skipping over a track doesn't trigger the consume mode - yet?)


Omar Polo

amused.1: misc tweaks


Omar Polo

drop restart from the list of 'status-like' commands

now it's an alias for 'seek 0', so it doesn't return the status.


Omar Polo

pledge early

This changed amused to pledge "stdio rpath" early in main() and then drop down to "stdio" in ctlaction, by removing the pledge call in parse. Simplifies a bit the logic and runs more code under pledge.


Omar Polo

include unistd.h for close

spotted on aarch64/glibc



Omar Polo

s/imsg_name/event_name


Omar Polo

monitor: fix reported event

rethink a bit which event are reported and when. - drop 'toggle' event as it's not useful; now 'amused toggle' will report the play/pause event. - replace 'flush' with 'load'. there's no real difference between a flush and an empty load. (also, less event the better) - some events (next/prev/jump) are reported earlier to avoid possible issues (when messing around with the playing queue we can end up in every possible state.) - report 'seek' only after it really happened (i.e. after the player process sent the new position.) There's still a possible race here (we can receive a previous IMSG_POS and think it's the reply to the seek) but it it's hard/impossible to work around. - drop 'restart'. we have 'seek' now which is better (and actually restart is implemented on top of seek.) - add 'seek' to the default list of events.


Omar Polo

amused-monitor: no need to list all the events

`amused monitor' defaults to report all the events, that should be enough.