diff options
author | wm4 <wm4@nowhere> | 2014-07-23 00:20:53 +0200 |
---|---|---|
committer | Alessandro Ghedini <alessandro@ghedini.me> | 2014-07-24 21:15:55 +0200 |
commit | 2d8e26bb72d8b1645f98979f2715e1a12e9d1ab5 (patch) | |
tree | 6a731586bf18ea1832b63a5e64b2411c90850eb5 | |
parent | 7ee275095f519119bd13c3af8f35f9158741b547 (diff) | |
download | mpv-2d8e26bb72d8b1645f98979f2715e1a12e9d1ab5.tar.bz2 mpv-2d8e26bb72d8b1645f98979f2715e1a12e9d1ab5.tar.xz |
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.
-rw-r--r-- | DOCS/man/input.rst | 2 | ||||
-rw-r--r-- | input/cmd_list.c | 3 | ||||
-rw-r--r-- | player/command.c | 4 |
3 files changed, 6 insertions, 3 deletions
diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst index befa41b709..2ba463a875 100644 --- a/DOCS/man/input.rst +++ b/DOCS/man/input.rst @@ -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,..``. diff --git a/input/cmd_list.c b/input/cmd_list.c index 1096e83d63..6f763c4b64 100644 --- a/input/cmd_list.c +++ b/input/cmd_list.c @@ -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", { diff --git a/player/command.c b/player/command.c index 952d348af9..7282eb30fd 100644 --- a/player/command.c +++ b/player/command.c @@ -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; } |