From e9e93b4dbe748cd341a6fbea355e6ba013ada81b Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 21 Mar 2020 17:08:43 +0100 Subject: player: add a number of new playlist contol commands/properties Should give a good deal more explicit control and insight over the player state. Some feel a bit pointless, and/or expose internal weirdness. However, it's not like the existing weirdness didn't exist before, or can be made go away. (In part, the weirdness is because certain in-between states are visible. Hiding them would make things simpler, but less flexible.) Maybe this actually gives users a better idea how the API _should_ look like, too. On a side note, this tries to really guarantee that mpctx->playing is set between playback start/end. For that, the loadfile.c changes assume that mpctx->playing is set (guaranteed by code above the change), and that playing->filename is set (probably could never be false; was broken before and actually would have crashed if that could ever happen; in any case, also add an assert to playlist.c for this). playlist_entry_to_index() now tolerates playlist_entrys that are not part of the playlist. This is also needed for mpctx->playing. --- player/loadfile.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'player/loadfile.c') diff --git a/player/loadfile.c b/player/loadfile.c index 0ae59a0e65..5dd8b7efbf 100644 --- a/player/loadfile.c +++ b/player/loadfile.c @@ -1409,8 +1409,8 @@ static void play_current_file(struct MPContext *mpctx) reset_playback_state(mpctx); mpctx->playing = mpctx->playlist->current; - if (!mpctx->playing || !mpctx->playing->filename) - goto terminate_playback; + assert(mpctx->playing); + assert(mpctx->playing->filename); mpctx->playing->reserved += 1; mpctx->filename = talloc_strdup(NULL, mpctx->playing->filename); -- cgit v1.2.3