From 995be9470d0982bacad0715b7560414283a9c5f0 Mon Sep 17 00:00:00 2001 From: emeric Date: Wed, 26 Sep 2018 22:44:52 +0200 Subject: [PATCH] Fixed bad cluster scan on track update --- src/database/Track.hpp | 1 + src/scanner/MediaScanner.cpp | 3 +-- tools/metadata/LmsMetadata.cpp | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/database/Track.hpp b/src/database/Track.hpp index e16b54d3..18c96618 100644 --- a/src/database/Track.hpp +++ b/src/database/Track.hpp @@ -95,6 +95,7 @@ class Track : public Wt::Dbo::Dbo void setCopyrightURL(const std::string& copyrightURL) { _copyrightURL = std::string(copyrightURL, 0, _maxCopyrightURLLength); } void setArtist(Wt::Dbo::ptr artist) { _artist = artist; } void setRelease(Wt::Dbo::ptr release) { _release = release; } + void eraseClusters() { _clusters.clear(); } std::size_t getScanVersion() const { return _scanVersion; } boost::optional getTrackNumber() const; diff --git a/src/scanner/MediaScanner.cpp b/src/scanner/MediaScanner.cpp index 28d54b7f..a6b0ec59 100644 --- a/src/scanner/MediaScanner.cpp +++ b/src/scanner/MediaScanner.cpp @@ -504,8 +504,7 @@ MediaScanner::scanAudioFile(const boost::filesystem::path& file, bool forceScan, LMS_LOG(DBUPDATER, INFO) << "Updating '" << file.string() << "'"; // Remove the songs from its clusters - for (auto cluster : track->getClusters()) - cluster.remove(); + track.modify()->eraseClusters(); stats.updates++; } diff --git a/tools/metadata/LmsMetadata.cpp b/tools/metadata/LmsMetadata.cpp index 6afd04ba..b67f8fdf 100644 --- a/tools/metadata/LmsMetadata.cpp +++ b/tools/metadata/LmsMetadata.cpp @@ -20,6 +20,8 @@ int main(int argc, char *argv[]) { MetaData::TagLibParser parser; + parser.setClusterTypeNames( {"MOOD", "GENRE"} ); + boost::optional items = parser.parse(argv[1], true); if (!items) {