diff options
-rw-r--r-- | src/SongSave.cxx | 3 | ||||
-rw-r--r-- | src/queue/PlaylistState.cxx | 7 | ||||
-rw-r--r-- | src/tag/ReplayGain.cxx | 9 |
3 files changed, 11 insertions, 8 deletions
diff --git a/src/SongSave.cxx b/src/SongSave.cxx index ace38d4fe..ed5ab6d30 100644 --- a/src/SongSave.cxx +++ b/src/SongSave.cxx @@ -28,6 +28,7 @@ #include "tag/TagBuilder.hxx" #include "util/StringUtil.hxx" #include "util/RuntimeError.hxx" +#include "util/NumberParser.hxx" #include <string.h> #include <stdlib.h> @@ -94,7 +95,7 @@ song_load(TextFile &file, const char *uri) if ((type = tag_name_parse(line)) != TAG_NUM_OF_ITEM_TYPES) { tag.AddItem(type, value); } else if (strcmp(line, "Time") == 0) { - tag.SetDuration(SignedSongTime::FromS(atof(value))); + tag.SetDuration(SignedSongTime::FromS(ParseDouble(value))); } else if (strcmp(line, "Playlist") == 0) { tag.SetHasPlaylist(strcmp(value, "yes") == 0); } else if (strcmp(line, SONG_MTIME) == 0) { diff --git a/src/queue/PlaylistState.cxx b/src/queue/PlaylistState.cxx index d08610efc..614f01c19 100644 --- a/src/queue/PlaylistState.cxx +++ b/src/queue/PlaylistState.cxx @@ -35,6 +35,7 @@ #include "util/CharUtil.hxx" #include "util/StringAPI.hxx" #include "util/StringCompare.hxx" +#include "util/NumberParser.hxx" #include "Log.hxx" #include <string.h> @@ -148,7 +149,7 @@ playlist_state_restore(const char *line, TextFile &file, while ((line = file.ReadLine()) != nullptr) { const char *p; if ((p = StringAfterPrefix(line, PLAYLIST_STATE_FILE_TIME))) { - seek_time = SongTime::FromS(atof(p)); + seek_time = SongTime::FromS(ParseDouble(p)); } else if ((p = StringAfterPrefix(line, PLAYLIST_STATE_FILE_REPEAT))) { playlist.SetRepeat(pc, StringIsEqual(p, "1")); } else if ((p = StringAfterPrefix(line, PLAYLIST_STATE_FILE_SINGLE))) { @@ -158,12 +159,12 @@ playlist_state_restore(const char *line, TextFile &file, } else if ((p = StringAfterPrefix(line, PLAYLIST_STATE_FILE_CROSSFADE))) { pc.SetCrossFade(atoi(p)); } else if ((p = StringAfterPrefix(line, PLAYLIST_STATE_FILE_MIXRAMPDB))) { - pc.SetMixRampDb(atof(p)); + pc.SetMixRampDb(ParseFloat(p)); } else if ((p = StringAfterPrefix(line, PLAYLIST_STATE_FILE_MIXRAMPDELAY))) { /* this check discards "nan" which was used prior to MPD 0.18 */ if (IsDigitASCII(*p)) - pc.SetMixRampDelay(atof(p)); + pc.SetMixRampDelay(ParseFloat(p)); } else if ((p = StringAfterPrefix(line, PLAYLIST_STATE_FILE_RANDOM))) { random_mode = StringIsEqual(p, "1"); } else if ((p = StringAfterPrefix(line, PLAYLIST_STATE_FILE_CURRENT))) { diff --git a/src/tag/ReplayGain.cxx b/src/tag/ReplayGain.cxx index 10f2f8a32..ccdcf3fc8 100644 --- a/src/tag/ReplayGain.cxx +++ b/src/tag/ReplayGain.cxx @@ -22,6 +22,7 @@ #include "VorbisComment.hxx" #include "ReplayGainInfo.hxx" #include "util/ASCII.hxx" +#include "util/NumberParser.hxx" #include <assert.h> #include <stdlib.h> @@ -33,16 +34,16 @@ ParseReplayGainTagTemplate(ReplayGainInfo &info, const T t) const char *value; if ((value = t["replaygain_track_gain"]) != nullptr) { - info.track.gain = atof(value); + info.track.gain = ParseFloat(value); return true; } else if ((value = t["replaygain_album_gain"]) != nullptr) { - info.album.gain = atof(value); + info.album.gain = ParseFloat(value); return true; } else if ((value = t["replaygain_track_peak"]) != nullptr) { - info.track.peak = atof(value); + info.track.peak = ParseFloat(value); return true; } else if ((value = t["replaygain_album_peak"]) != nullptr) { - info.album.peak = atof(value); + info.album.peak = ParseFloat(value); return true; } else return false; |