Commits


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?)


use (a modified version of) kristaps' oconfigure see GitHub issue #1


keep track of current position and total duration


don't try to match the prev/next song; been broken since tx in load was added originally i tried to match the previous or next song in the playing queue after a load command if the current song was not matched. The idea is ok-ish, but the implementation was broken and become a no-op after some recent refactoring in that area.


setsong in playlist_swap if the player is stopped


keep the current song if load input was generated by show -p `amused show -p' generates a listing in the form of song > current song song ... This adds an heuristic to `amused load' so that the current song can be set if it's prefixed by "> ". It's particularly useful when re-importing the state from a previous run.


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.


update the heuristic: try to keep `current_song', not play_off


keep current song in a dedicated variable playlist.songs[play_off] is not a good representation for the current playing song after all. After a `load' command, or a flush request, the play_off changes but we're still playing the "old" song. This saves the current song in a dedicated variable that's updated upon playlist_advance and playlist_previous, thus givin a more accurate view.


add a heuristic to try to keep the current song after a `load'


add `jump' subcommand to play the first matching


add playlist_swap


add playlist_free


add playlist_push