StateFileConfig: add attribute "restore_paused"

This commit is contained in:
Max Kellermann 2018-07-17 23:34:45 +02:00
parent bcc1e51097
commit 113141bf2a
5 changed files with 12 additions and 8 deletions

View File

@ -129,7 +129,7 @@ try {
while ((line = file.ReadLine()) != nullptr) { while ((line = file.ReadLine()) != nullptr) {
success = read_sw_volume_state(line, partition.outputs) || success = read_sw_volume_state(line, partition.outputs) ||
audio_output_state_read(line, partition.outputs) || audio_output_state_read(line, partition.outputs) ||
playlist_state_restore(line, file, song_loader, playlist_state_restore(config, line, file, song_loader,
partition.playlist, partition.playlist,
partition.pc); partition.pc);
#ifdef ENABLE_DATABASE #ifdef ENABLE_DATABASE

View File

@ -30,7 +30,8 @@ constexpr std::chrono::steady_clock::duration StateFileConfig::DEFAULT_INTERVAL;
StateFileConfig::StateFileConfig(const ConfigData &config) StateFileConfig::StateFileConfig(const ConfigData &config)
:path(config.GetPath(ConfigOption::STATE_FILE)), :path(config.GetPath(ConfigOption::STATE_FILE)),
interval(config.GetUnsigned(ConfigOption::STATE_FILE_INTERVAL, interval(config.GetUnsigned(ConfigOption::STATE_FILE_INTERVAL,
DEFAULT_INTERVAL)) DEFAULT_INTERVAL)),
restore_paused(config.GetBool(ConfigOption::RESTORE_PAUSED, false))
{ {
#ifdef ANDROID #ifdef ANDROID
if (path.IsNull()) { if (path.IsNull()) {

View File

@ -34,6 +34,8 @@ struct StateFileConfig {
std::chrono::steady_clock::duration interval; std::chrono::steady_clock::duration interval;
bool restore_paused;
explicit StateFileConfig(const ConfigData &config); explicit StateFileConfig(const ConfigData &config);
bool IsEnabled() const noexcept { bool IsEnabled() const noexcept {

View File

@ -27,12 +27,11 @@
#include "PlaylistError.hxx" #include "PlaylistError.hxx"
#include "Playlist.hxx" #include "Playlist.hxx"
#include "SingleMode.hxx" #include "SingleMode.hxx"
#include "StateFileConfig.hxx"
#include "queue/QueueSave.hxx" #include "queue/QueueSave.hxx"
#include "fs/io/TextFile.hxx" #include "fs/io/TextFile.hxx"
#include "fs/io/BufferedOutputStream.hxx" #include "fs/io/BufferedOutputStream.hxx"
#include "player/Control.hxx" #include "player/Control.hxx"
#include "config/Global.hxx"
#include "config/Option.hxx"
#include "util/CharUtil.hxx" #include "util/CharUtil.hxx"
#include "util/StringAPI.hxx" #include "util/StringAPI.hxx"
#include "util/StringCompare.hxx" #include "util/StringCompare.hxx"
@ -128,7 +127,8 @@ playlist_state_load(TextFile &file, const SongLoader &song_loader,
} }
bool bool
playlist_state_restore(const char *line, TextFile &file, playlist_state_restore(const StateFileConfig &config,
const char *line, TextFile &file,
const SongLoader &song_loader, const SongLoader &song_loader,
struct playlist &playlist, PlayerControl &pc) struct playlist &playlist, PlayerControl &pc)
{ {
@ -183,8 +183,7 @@ playlist_state_restore(const char *line, TextFile &file,
if (!playlist.queue.IsValidPosition(current)) if (!playlist.queue.IsValidPosition(current))
current = 0; current = 0;
if (state == PlayerState::PLAY && if (state == PlayerState::PLAY && config.restore_paused)
config_get_bool(ConfigOption::RESTORE_PAUSED, false))
/* the user doesn't want MPD to auto-start /* the user doesn't want MPD to auto-start
playback after startup; fall back to playback after startup; fall back to
"pause" */ "pause" */

View File

@ -25,6 +25,7 @@
#ifndef MPD_PLAYLIST_STATE_HXX #ifndef MPD_PLAYLIST_STATE_HXX
#define MPD_PLAYLIST_STATE_HXX #define MPD_PLAYLIST_STATE_HXX
struct StateFileConfig;
struct playlist; struct playlist;
struct PlayerControl; struct PlayerControl;
class TextFile; class TextFile;
@ -36,7 +37,8 @@ playlist_state_save(BufferedOutputStream &os, const playlist &playlist,
PlayerControl &pc); PlayerControl &pc);
bool bool
playlist_state_restore(const char *line, TextFile &file, playlist_state_restore(const StateFileConfig &config,
const char *line, TextFile &file,
const SongLoader &song_loader, const SongLoader &song_loader,
playlist &playlist, PlayerControl &pc); playlist &playlist, PlayerControl &pc);