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) {