From da8bdd62c86961a7fb3a72635e05c45203bd8e3c Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 30 Oct 2013 22:32:21 +0100 Subject: PlaylistState: ignore "mixrampdelay:nan" mixramp_delay==nan() causes severe problems with cross-fading. --- src/PlaylistState.cxx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/PlaylistState.cxx b/src/PlaylistState.cxx index af89bc2d1..ac2deebbf 100644 --- a/src/PlaylistState.cxx +++ b/src/PlaylistState.cxx @@ -32,6 +32,7 @@ #include "ConfigGlobal.hxx" #include "ConfigOption.hxx" #include "fs/Limits.hxx" +#include "util/CharUtil.hxx" #include "Log.hxx" #include @@ -167,7 +168,12 @@ playlist_state_restore(const char *line, TextFile &file, } else if (g_str_has_prefix(line, PLAYLIST_STATE_FILE_MIXRAMPDB)) { pc.SetMixRampDb(atof(line + strlen(PLAYLIST_STATE_FILE_MIXRAMPDB))); } else if (g_str_has_prefix(line, PLAYLIST_STATE_FILE_MIXRAMPDELAY)) { - pc.SetMixRampDelay(atof(line + strlen(PLAYLIST_STATE_FILE_MIXRAMPDELAY))); + const char *p = line + strlen(PLAYLIST_STATE_FILE_MIXRAMPDELAY); + + /* this check discards "nan" which was used + prior to MPD 0.18 */ + if (IsDigitASCII(*p)) + pc.SetMixRampDelay(atof(p)); } else if (g_str_has_prefix(line, PLAYLIST_STATE_FILE_RANDOM)) { random_mode = strcmp(line + strlen(PLAYLIST_STATE_FILE_RANDOM), -- cgit v1.2.3