Scanner: fixed some values not updated when scanned again

This commit is contained in:
emeric
2021-09-29 09:23:37 +02:00
parent 0fc2100ef5
commit b15a7fa1cd
2 changed files with 7 additions and 8 deletions
+2 -2
View File
@@ -109,8 +109,8 @@ class Track : public Object<Track, TrackId>
void setRecordingMBID(const std::optional<UUID>& MBID) { _recordingMBID = MBID ? MBID->getAsString() : ""; } void setRecordingMBID(const std::optional<UUID>& MBID) { _recordingMBID = MBID ? MBID->getAsString() : ""; }
void setCopyright(const std::string& copyright) { _copyright = std::string(copyright, 0, _maxCopyrightLength); } 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 setCopyrightURL(const std::string& copyrightURL) { _copyrightURL = std::string(copyrightURL, 0, _maxCopyrightURLLength); }
void setTrackReplayGain(float replayGain) { _trackReplayGain = replayGain; } void setTrackReplayGain(std::optional<float> replayGain) { _trackReplayGain = replayGain; }
void setReleaseReplayGain(float replayGain) { _releaseReplayGain = replayGain; } void setReleaseReplayGain(std::optional<float> replayGain) { _releaseReplayGain = replayGain; }
void clearArtistLinks(); void clearArtistLinks();
void addArtistLink(const ObjectPtr<TrackArtistLink>& artistLink); void addArtistLink(const ObjectPtr<TrackArtistLink>& artistLink);
void setRelease(ObjectPtr<Release> release) { _release = getDboPtr(release); } void setRelease(ObjectPtr<Release> release) { _release = getDboPtr(release); }
+5 -6
View File
@@ -806,6 +806,8 @@ Scanner::scanAudioFile(const std::filesystem::path& file, bool forceScan, ScanSt
track.modify()->setScanVersion(_scanVersion); track.modify()->setScanVersion(_scanVersion);
if (trackInfo->album) if (trackInfo->album)
track.modify()->setRelease(getOrCreateRelease(_dbSession, *trackInfo->album)); track.modify()->setRelease(getOrCreateRelease(_dbSession, *trackInfo->album));
else
track.modify()->setRelease({});
track.modify()->setClusters(getOrCreateClusters(_dbSession, trackInfo->clusters)); track.modify()->setClusters(getOrCreateClusters(_dbSession, trackInfo->clusters));
track.modify()->setLastWriteTime(lastWriteTime); track.modify()->setLastWriteTime(lastWriteTime);
track.modify()->setName(title); 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()->setDiscNumber(trackInfo->discNumber ? *trackInfo->discNumber : 0);
track.modify()->setTotalTrack(trackInfo->totalTrack); track.modify()->setTotalTrack(trackInfo->totalTrack);
track.modify()->setTotalDisc(trackInfo->totalDisc); 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()->setDate(trackInfo->date);
track.modify()->setOriginalDate(trackInfo->originalDate); 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()->setHasCover(trackInfo->hasCover);
track.modify()->setCopyright(trackInfo->copyright); track.modify()->setCopyright(trackInfo->copyright);
track.modify()->setCopyrightURL(trackInfo->copyrightURL); track.modify()->setCopyrightURL(trackInfo->copyrightURL);
if (trackInfo->trackReplayGain) track.modify()->setTrackReplayGain(trackInfo->trackReplayGain);
track.modify()->setTrackReplayGain(*trackInfo->trackReplayGain); track.modify()->setReleaseReplayGain(trackInfo->albumReplayGain);
if (trackInfo->albumReplayGain)
track.modify()->setReleaseReplayGain(*trackInfo->albumReplayGain);
} }
void void