diff options
-rw-r--r-- | DOCS/man/options.rst | 7 | ||||
-rw-r--r-- | player/core.h | 4 | ||||
-rw-r--r-- | player/loadfile.c | 2 |
3 files changed, 8 insertions, 5 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst index a2e096f907..86632436dd 100644 --- a/DOCS/man/options.rst +++ b/DOCS/man/options.rst @@ -290,10 +290,9 @@ Program Behavior ``--save-position-on-quit`` Always save the current playback position on quit. When this file is played again later, the player will seek to the old playback position on - start. This does not happen if playback of a file is stopped in any other - way than quitting. For example, going to the next file in the playlist - will not save the position, and start playback at beginning the next time - the file is played. + start. This happens when playback is stopped in any way by the user. + For example, going to the next file in the playlist will save the position, + and resume playback at thr same position the next time the file is played. This behavior is disabled by default, but is always available when quitting the player with Shift+Q. diff --git a/player/core.h b/player/core.h index a0c9db2cc5..3b4a9f1fa1 100644 --- a/player/core.h +++ b/player/core.h @@ -41,6 +41,10 @@ enum stop_play_reason { PT_QUIT, // stop playback, quit player }; +// stop_play_reason that is an explicit user abort. +#define PT_IS_QUIT(x) ((x) == PT_NEXT_ENTRY || (x) == PT_CURRENT_ENTRY || \ + (x) == PT_STOP || (x) == PT_QUIT) + enum exit_reason { EXIT_NONE, EXIT_QUIT, diff --git a/player/loadfile.c b/player/loadfile.c index 23ffa80684..b07bdc6e3c 100644 --- a/player/loadfile.c +++ b/player/loadfile.c @@ -1196,7 +1196,7 @@ terminate_playback: if (mpctx->stop_play != AT_END_OF_FILE) clear_audio_output_buffers(mpctx); - if (opts->position_save_on_quit && mpctx->stop_play == PT_QUIT) + if (opts->position_save_on_quit && PT_IS_QUIT(mpctx->stop_play)) mp_write_watch_later_conf(mpctx); if (mpctx->step_frames) |