diff options
author | Alessandro Ghedini <alessandro@ghedini.me> | 2014-07-24 19:30:24 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-07-25 14:32:34 +0200 |
commit | 08415933db8ede1ec27cb43654bc6fffdbd6ad93 (patch) | |
tree | c2a90c140abe6393971f21d16e0ba81966e3fb8a | |
parent | 623eac2b1b5dc88b91949b2bd88284330d7425a2 (diff) | |
download | mpv-08415933db8ede1ec27cb43654bc6fffdbd6ad93.tar.bz2 mpv-08415933db8ede1ec27cb43654bc6fffdbd6ad93.tar.xz |
command: append entries to the end of the playlist with loadlist append
Currently entries are added after the current playlist element. This is kinda
confusing, more so given that "loadfile append" appends at the end of the
playlist.
-rw-r--r-- | common/playlist.c | 9 | ||||
-rw-r--r-- | common/playlist.h | 1 | ||||
-rw-r--r-- | player/command.c | 2 |
3 files changed, 11 insertions, 1 deletions
diff --git a/common/playlist.c b/common/playlist.c index e33fbd36c8..4df3396b04 100644 --- a/common/playlist.c +++ b/common/playlist.c @@ -215,6 +215,15 @@ void playlist_transfer_entries(struct playlist *pl, struct playlist *source_pl) } } +void playlist_append_entries(struct playlist *pl, struct playlist *source_pl) +{ + while (source_pl->first) { + struct playlist_entry *e = source_pl->first; + playlist_unlink(source_pl, e); + playlist_add(pl, e); + } +} + // Return number of entries between list start and e. // Return -1 if e is not on the list, or if e is NULL. int playlist_entry_to_index(struct playlist *pl, struct playlist_entry *e) diff --git a/common/playlist.h b/common/playlist.h index c55a3a21c8..73227f071c 100644 --- a/common/playlist.h +++ b/common/playlist.h @@ -74,6 +74,7 @@ void playlist_shuffle(struct playlist *pl); struct playlist_entry *playlist_get_next(struct playlist *pl, int direction); void playlist_add_base_path(struct playlist *pl, bstr base_path); void playlist_transfer_entries(struct playlist *pl, struct playlist *source_pl); +void playlist_append_entries(struct playlist *pl, struct playlist *source_pl); int playlist_entry_to_index(struct playlist *pl, struct playlist_entry *e); int playlist_entry_count(struct playlist *pl); diff --git a/player/command.c b/player/command.c index 5e446265ae..2bcb4bcd0c 100644 --- a/player/command.c +++ b/player/command.c @@ -3624,7 +3624,7 @@ int run_command(MPContext *mpctx, mp_cmd_t *cmd) if (pl) { if (!append) playlist_clear(mpctx->playlist); - playlist_transfer_entries(mpctx->playlist, pl); + playlist_append_entries(mpctx->playlist, pl); talloc_free(pl); if (!append && mpctx->playlist->first) { |