command: add append-play loadfile mode

"loadfile filename append-play" will now always append the file to the
playlist, and if nothing is playing yet, start playback. I don't want to
change the semantics of "append" mode, so a new mode is needed.

Probably fixes issue #950.
This commit is contained in:
wm4 2014-07-23 00:20:53 +02:00 committed by Alessandro Ghedini
parent 7ee275095f
commit 2d8e26bb72
3 changed files with 6 additions and 3 deletions

View File

@ -193,6 +193,8 @@ List of Input Commands
Stop playback of the current file, and play the new file immediately.
<append>
Append the file to the playlist.
<append-play>
Append the file, and if nothing is currently playing, start playback.
The third argument is a list of options and values which should be set
while the file is playing. It is of the form ``opt1=value1,opt2=value2,..``.

View File

@ -111,7 +111,8 @@ const struct mp_cmd_def mp_cmds[] = {
{ MP_CMD_LOADFILE, "loadfile", {
ARG_STRING,
OARG_CHOICE(0, ({"replace", 0}, {"0", 0},
{"append", 1}, {"1", 1})),
{"append", 1}, {"1", 1},
{"append-play", 2})),
OPT_KEYVALUELIST(ARG(str_list), MP_CMD_OPT_ARG),
}},
{ MP_CMD_LOADLIST, "loadlist", {

View File

@ -3550,7 +3550,7 @@ int run_command(MPContext *mpctx, mp_cmd_t *cmd)
case MP_CMD_LOADFILE: {
char *filename = cmd->args[0].v.s;
bool append = cmd->args[1].v.i;
int append = cmd->args[1].v.i;
if (!append)
playlist_clear(mpctx->playlist);
@ -3565,7 +3565,7 @@ int run_command(MPContext *mpctx, mp_cmd_t *cmd)
}
playlist_add(mpctx->playlist, entry);
if (!append)
if (!append || (append == 2 && !mpctx->playlist->current))
mp_set_playlist_entry(mpctx, mpctx->playlist->first);
break;
}