From 2fb40fe728ac07574808c40034fc0f3d2254d49d Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Wed, 23 Feb 2011 09:09:48 +0100
Subject: playlist_state: add option "restore_paused"

When set, MPD will not auto-start playback on startup; it will be in
"paused" state.
---
 src/conf.c           | 1 +
 src/playlist_state.c | 8 ++++++++
 2 files changed, 9 insertions(+)

(limited to 'src')

diff --git a/src/conf.c b/src/conf.c
index c9657717a..419411648 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 8f065e6cb..4aa2c2c92 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 */
-- 
cgit v1.2.3