aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2011-02-23 09:09:48 +0100
committerMax Kellermann <max@duempel.org>2011-02-23 09:10:23 +0100
commit2fb40fe728ac07574808c40034fc0f3d2254d49d (patch)
tree2c5ee9f1d37426039ab9c7afc869b1ad0bc5aa02
parentb57330cf75bcb339e3f268f1019c63e40d305145 (diff)
playlist_state: add option "restore_paused"
When set, MPD will not auto-start playback on startup; it will be in "paused" state.
-rw-r--r--NEWS1
-rw-r--r--doc/mpd.conf.53
-rw-r--r--doc/mpdconf.example5
-rw-r--r--src/conf.c1
-rw-r--r--src/playlist_state.c8
5 files changed, 18 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 05ad1025..a5bcb033 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,7 @@ ver 0.17 (2011/??/??)
- osx: allow user to specify other audio devices
- raop: new output plugin
- shout: add possibility to set url
+* state_file: add option "restore_paused"
ver 0.16.1 (2011/01/09)
diff --git a/doc/mpd.conf.5 b/doc/mpd.conf.5
index c75d4aad..cb44468b 100644
--- a/doc/mpd.conf.5
+++ b/doc/mpd.conf.5
@@ -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
restore the state of mpd (including the playlist).
.TP
+.B restore_paused <yes or no>
+Put MPD into pause mode instead of starting playback after startup.
+.TP
.B user <username>
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
diff --git a/doc/mpdconf.example b/doc/mpdconf.example
index c31763ff..1aa9cf1d 100644
--- a/doc/mpdconf.example
+++ b/doc/mpdconf.example
@@ -103,6 +103,11 @@
#
#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
# music players.
#
diff --git a/src/conf.c b/src/conf.c
index c9657717..41941164 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -59,6 +59,7 @@ static struct config_entry config_entries[] = {
{ .name = CONF_LOG_FILE, false, false },
{ .name = CONF_PID_FILE, false, false },
{ .name = CONF_STATE_FILE, false, false },
+ { .name = "restore_paused", false, false },
{ .name = CONF_USER, false, false },
{ .name = CONF_GROUP, false, false },
{ .name = CONF_BIND_TO_ADDRESS, true, false },
diff --git a/src/playlist_state.c b/src/playlist_state.c
index 8f065e6c..4aa2c2c9 100644
--- a/src/playlist_state.c
+++ b/src/playlist_state.c
@@ -29,6 +29,7 @@
#include "queue_save.h"
#include "path.h"
#include "text_file.h"
+#include "conf.h"
#include <string.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))
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
called here, after the audio output states were
restored, before playback begins */