playlist_state: add option "restore_paused"

When set, MPD will not auto-start playback on startup; it will be in
"paused" state.
This commit is contained in:
Max Kellermann 2011-02-23 09:09:48 +01:00
parent b57330cf75
commit 2fb40fe728
5 changed files with 18 additions and 0 deletions

1
NEWS
View File

@ -10,6 +10,7 @@ ver 0.17 (2011/??/??)
- osx: allow user to specify other audio devices - osx: allow user to specify other audio devices
- raop: new output plugin - raop: new output plugin
- shout: add possibility to set url - shout: add possibility to set url
* state_file: add option "restore_paused"
ver 0.16.1 (2011/01/09) ver 0.16.1 (2011/01/09)

View File

@ -69,6 +69,9 @@ mpd will be saved to this file when mpd is terminated by a TERM signal or by
the "kill" command. When mpd is restarted, it will read the state file and the "kill" command. When mpd is restarted, it will read the state file and
restore the state of mpd (including the playlist). restore the state of mpd (including the playlist).
.TP .TP
.B restore_paused <yes or no>
Put MPD into pause mode instead of starting playback after startup.
.TP
.B user <username> .B user <username>
This specifies the user that MPD will run as, if set. MPD should This specifies the user that MPD will run as, if set. MPD should
never run as root, and you may use this option to make MPD change its never run as root, and you may use this option to make MPD change its

View File

@ -103,6 +103,11 @@
# #
#gapless_mp3_playback "yes" #gapless_mp3_playback "yes"
# #
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
# of starting playback after startup.
#
#restore_paused "no"
#
# This setting enables MPD to create playlists in a format usable by other # This setting enables MPD to create playlists in a format usable by other
# music players. # music players.
# #

View File

@ -59,6 +59,7 @@ static struct config_entry config_entries[] = {
{ .name = CONF_LOG_FILE, false, false }, { .name = CONF_LOG_FILE, false, false },
{ .name = CONF_PID_FILE, false, false }, { .name = CONF_PID_FILE, false, false },
{ .name = CONF_STATE_FILE, false, false }, { .name = CONF_STATE_FILE, false, false },
{ .name = "restore_paused", false, false },
{ .name = CONF_USER, false, false }, { .name = CONF_USER, false, false },
{ .name = CONF_GROUP, false, false }, { .name = CONF_GROUP, false, false },
{ .name = CONF_BIND_TO_ADDRESS, true, false }, { .name = CONF_BIND_TO_ADDRESS, true, false },

View File

@ -29,6 +29,7 @@
#include "queue_save.h" #include "queue_save.h"
#include "path.h" #include "path.h"
#include "text_file.h" #include "text_file.h"
#include "conf.h"
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
@ -196,6 +197,13 @@ playlist_state_restore(const char *line, FILE *fp, GString *buffer,
if (!queue_valid_position(&playlist->queue, current)) if (!queue_valid_position(&playlist->queue, current))
current = 0; current = 0;
if (state == PLAYER_STATE_PLAY &&
config_get_bool("restore_paused", false))
/* the user doesn't want MPD to auto-start
playback after startup; fall back to
"pause" */
state = PLAYER_STATE_PAUSE;
/* enable all devices for the first time; this must be /* enable all devices for the first time; this must be
called here, after the audio output states were called here, after the audio output states were
restored, before playback begins */ restored, before playback begins */