From b15a7fa1cd3a0cff18d4d3e62db1c7b8bfc6f29f Mon Sep 17 00:00:00 2001 From: emeric Date: Wed, 29 Sep 2021 09:23:37 +0200 Subject: [PATCH] Scanner: fixed some values not updated when scanned again --- src/libs/database/include/database/Track.hpp | 4 ++-- src/libs/scanner/impl/Scanner.cpp | 11 +++++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/libs/database/include/database/Track.hpp b/src/libs/database/include/database/Track.hpp index 1e193405..0d78c627 100644 --- a/src/libs/database/include/database/Track.hpp +++ b/src/libs/database/include/database/Track.hpp @@ -109,8 +109,8 @@ class Track : public Object void setRecordingMBID(const std::optional& MBID) { _recordingMBID = MBID ? MBID->getAsString() : ""; } void setCopyright(const std::string& copyright) { _copyright = std::string(copyright, 0, _maxCopyrightLength); } void setCopyrightURL(const std::string& copyrightURL) { _copyrightURL = std::string(copyrightURL, 0, _maxCopyrightURLLength); } - void setTrackReplayGain(float replayGain) { _trackReplayGain = replayGain; } - void setReleaseReplayGain(float replayGain) { _releaseReplayGain = replayGain; } + void setTrackReplayGain(std::optional replayGain) { _trackReplayGain = replayGain; } + void setReleaseReplayGain(std::optional replayGain) { _releaseReplayGain = replayGain; } void clearArtistLinks(); void addArtistLink(const ObjectPtr& artistLink); void setRelease(ObjectPtr release) { _release = getDboPtr(release); } diff --git a/src/libs/scanner/impl/Scanner.cpp b/src/libs/scanner/impl/Scanner.cpp index bbc10fda..125324dc 100644 --- a/src/libs/scanner/impl/Scanner.cpp +++ b/src/libs/scanner/impl/Scanner.cpp @@ -806,6 +806,8 @@ Scanner::scanAudioFile(const std::filesystem::path& file, bool forceScan, ScanSt track.modify()->setScanVersion(_scanVersion); if (trackInfo->album) track.modify()->setRelease(getOrCreateRelease(_dbSession, *trackInfo->album)); + else + track.modify()->setRelease({}); track.modify()->setClusters(getOrCreateClusters(_dbSession, trackInfo->clusters)); track.modify()->setLastWriteTime(lastWriteTime); track.modify()->setName(title); @@ -815,8 +817,7 @@ Scanner::scanAudioFile(const std::filesystem::path& file, bool forceScan, ScanSt track.modify()->setDiscNumber(trackInfo->discNumber ? *trackInfo->discNumber : 0); track.modify()->setTotalTrack(trackInfo->totalTrack); track.modify()->setTotalDisc(trackInfo->totalDisc); - if (!trackInfo->discSubtitle.empty()) - track.modify()->setDiscSubtitle(trackInfo->discSubtitle); + track.modify()->setDiscSubtitle(trackInfo->discSubtitle); track.modify()->setDate(trackInfo->date); track.modify()->setOriginalDate(trackInfo->originalDate); @@ -830,10 +831,8 @@ Scanner::scanAudioFile(const std::filesystem::path& file, bool forceScan, ScanSt track.modify()->setHasCover(trackInfo->hasCover); track.modify()->setCopyright(trackInfo->copyright); track.modify()->setCopyrightURL(trackInfo->copyrightURL); - if (trackInfo->trackReplayGain) - track.modify()->setTrackReplayGain(*trackInfo->trackReplayGain); - if (trackInfo->albumReplayGain) - track.modify()->setReleaseReplayGain(*trackInfo->albumReplayGain); + track.modify()->setTrackReplayGain(trackInfo->trackReplayGain); + track.modify()->setReleaseReplayGain(trackInfo->albumReplayGain); } void