diff --git a/src/libs/metadata/impl/Parser.cpp b/src/libs/metadata/impl/Parser.cpp index d6805e352..52f76b3fe 100644 --- a/src/libs/metadata/impl/Parser.cpp +++ b/src/libs/metadata/impl/Parser.cpp @@ -332,19 +332,19 @@ namespace lms::metadata if (track.year.has_value()) { - track.userExtraTags["YEAR"] = {std::to_string(track.year.value())}; + track.userExtraTags["YEAR"] = { std::to_string(track.year.value()) }; } if (track.audioProperties.duration > std::chrono::minutes(10)) { - track.userExtraTags["LENGTH"] = {"long"}; + track.userExtraTags["LENGTH"] = { "long" }; } - else { - track.userExtraTags["LENGTH"] = {"short"}; + else + { + track.userExtraTags["LENGTH"] = { "short" }; } } - /** * This function gets the rating tag and will convert is to 0 to 5 starts * for flac this means a value of 0 to 100, for mp3 it will be takenb from the popularity meter. @@ -355,7 +355,8 @@ namespace lms::metadata std::optional Parser::getRating(const ITagReader& tagReader) { std::optional tagRating = getTagValueAs(tagReader, TagType::Rating); - if (tagRating.has_value()) { + if (tagRating.has_value()) + { if (tagRating.value() == 100 || tagRating.value() == 255) return 5; if (tagRating.value() == 80 || tagRating.value() == 196) return 4; if (tagRating.value() == 60 || tagRating.value() == 128) return 3; diff --git a/src/libs/metadata/impl/TagLibParser.cpp b/src/libs/metadata/impl/TagLibParser.cpp index ee98167ae..5821e971c 100644 --- a/src/libs/metadata/impl/TagLibParser.cpp +++ b/src/libs/metadata/impl/TagLibParser.cpp @@ -26,9 +26,9 @@ #include #include -#include #include #include +#include #include #include #include @@ -38,12 +38,12 @@ #include #include -#include "utils/IConfig.hpp" +#include "Utils.hpp" #include "utils/Exception.hpp" +#include "utils/IConfig.hpp" #include "utils/ILogger.hpp" #include "utils/Service.hpp" #include "utils/String.hpp" -#include "Utils.hpp" namespace MetaData { @@ -59,7 +59,7 @@ namespace MetaData for (std::string_view key : keys) { - const auto itValues{ tags.find(std::string {key}) }; + const auto itValues{ tags.find(std::string{ key }) }; if (itValues == std::cend(tags)) continue; @@ -84,7 +84,7 @@ namespace MetaData return res; } - template + template std::optional getPropertyValueFirstMatchAs(const TagMap& tags, std::initializer_list keys) { std::optional res; @@ -95,13 +95,13 @@ namespace MetaData return res; } - template + template std::vector getPropertyValuesAs(const TagMap& tags, std::string_view key) { return getPropertyValuesFirstMatchAs(tags, { key }); } - template + template std::optional getPropertyValueAs(const TagMap& tags, std::string_view key) { return getPropertyValueFirstMatchAs(tags, { key }); @@ -122,9 +122,9 @@ namespace MetaData auto pos = artist.find('/'); if (pos != std::string_view::npos) { - artists.emplace_back(artist.substr(0, pos)); // Add the part before '/' + artists.emplace_back(artist.substr(0, pos)); // Add the part before '/' auto arts = splitArtist(artist.substr(pos + 1)); // Add the part after '/' - for (const auto& art: arts) + for (const auto& art : arts) artists.emplace_back(art); } else @@ -137,8 +137,7 @@ namespace MetaData std::vector getArtists(const TagMap& tags, std::initializer_list artistTagNames, std::initializer_list artistSortTagNames, - std::initializer_list artistMBIDTagNames - ) + std::initializer_list artistMBIDTagNames) { std::vector artistNamesInput{ getPropertyValuesFirstMatchAs(tags, artistTagNames) }; std::vector artistNames{}; @@ -146,10 +145,10 @@ namespace MetaData return {}; // convert artistnames with an / to 2 seperate artists - for (const auto& an: artistNamesInput) + for (const auto& an : artistNamesInput) { auto arts = splitArtist(an); - for (const auto& art: arts) + for (const auto& art : arts) artistNames.emplace_back(art); } std::vector artists; @@ -176,7 +175,6 @@ namespace MetaData } } - return artists; } @@ -289,9 +287,12 @@ namespace MetaData { switch (readStyle) { - case ParserReadStyle::Fast: return TagLib::AudioProperties::ReadStyle::Fast; - case ParserReadStyle::Average: return TagLib::AudioProperties::ReadStyle::Average; - case ParserReadStyle::Accurate: return TagLib::AudioProperties::ReadStyle::Accurate; + case ParserReadStyle::Fast: + return TagLib::AudioProperties::ReadStyle::Fast; + case ParserReadStyle::Average: + return TagLib::AudioProperties::ReadStyle::Average; + case ParserReadStyle::Accurate: + return TagLib::AudioProperties::ReadStyle::Accurate; } throw LmsException{ "Cannot convert read style" }; @@ -324,7 +325,7 @@ namespace MetaData } } - } + } // namespace TagLibParser::TagLibParser(ParserReadStyle readStyle) : _readStyle{ readStyleToTagLibReadStyle(readStyle) } @@ -344,14 +345,14 @@ namespace MetaData if (tag == "TITLE") track.title = value; else if (tag == "MUSICBRAINZ_RELEASETRACKID" - || tag == "MUSICBRAINZ RELEASE TRACK ID" - || tag == "MUSICBRAINZ/RELEASE TRACK ID") + || tag == "MUSICBRAINZ RELEASE TRACK ID" + || tag == "MUSICBRAINZ/RELEASE TRACK ID") { track.mbid = UUID::fromString(value); } else if (tag == "MUSICBRAINZ_TRACKID" - || tag == "MUSICBRAINZ TRACK ID" - || tag == "MUSICBRAINZ/TRACK ID") + || tag == "MUSICBRAINZ TRACK ID" + || tag == "MUSICBRAINZ/TRACK ID") track.recordingMBID = UUID::fromString(value); else if (tag == "ACOUSTID_ID") track.acoustID = UUID::fromString(value); @@ -394,16 +395,23 @@ namespace MetaData track.artistDisplayName = value; else if (tag == "RATING") { - //Convert flac rating to stars + // Convert flac rating to stars int rating = StringUtils::readAs(value).value_or(-1); - if (rating == 100) track.rating= 5; - else if (rating == 80) track.rating= 4; - else if (rating == 60) track.rating= 3; - else if (rating == 40) track.rating= 2; - else if (rating == 20) track.rating= 1; - else if (rating == 0) track.rating = 0; - else track.rating = std::nullopt; + if (rating == 100) + track.rating = 5; + else if (rating == 80) + track.rating = 4; + else if (rating == 60) + track.rating = 3; + else if (rating == 40) + track.rating = 2; + else if (rating == 20) + track.rating = 1; + else if (rating == 0) + track.rating = 0; + else + track.rating = std::nullopt; } else if (std::find(std::cbegin(_userExtraTags), std::cend(_userExtraTags), tag) != std::cend(_userExtraTags)) { @@ -434,7 +442,7 @@ namespace MetaData Track track; - if (const TagLib::AudioProperties* properties{ f.audioProperties() }) + if (const TagLib::AudioProperties * properties{ f.audioProperties() }) { track.duration = std::chrono::milliseconds{ properties->lengthInMilliseconds() }; track.bitrate = static_cast(properties->bitrate() * 1000); @@ -447,13 +455,12 @@ namespace MetaData TagMap tags{ constructTagMap(f.file()->properties()) }; - auto getAPETags = [&](const TagLib::APE::Tag* apeTag) - { - if (!apeTag) - return; + auto getAPETags = [&](const TagLib::APE::Tag* apeTag) { + if (!apeTag) + return; - mergeTagMaps(tags, constructTagMap(apeTag->properties())); - }; + mergeTagMaps(tags, constructTagMap(apeTag->properties())); + }; // Not that good embedded pictures handling @@ -509,12 +516,18 @@ namespace MetaData // Extract the rating value std::string rating_value = rating_substring.substr(0, space_pos); - if (rating_value == "255") track.rating= 5; - else if (rating_value == "196") track.rating= 4; - else if (rating_value == "128") track.rating= 3; - else if (rating_value == "64") track.rating= 2; - else if (rating_value == "1") track.rating= 1; - else track.rating= 0; + if (rating_value == "255") + track.rating = 5; + else if (rating_value == "196") + track.rating = 4; + else if (rating_value == "128") + track.rating = 3; + else if (rating_value == "64") + track.rating = 2; + else if (rating_value == "1") + track.rating = 1; + else + track.rating = 0; } else track.rating = std::nullopt; @@ -527,7 +540,7 @@ namespace MetaData getAPETags(mp3File->APETag()); } - //MP4 + // MP4 else if (TagLib::MP4::File * mp4File{ dynamic_cast(f.file()) }) { TagLib::MP4::Item coverItem{ mp4File->tag()->item("covr") }; @@ -577,18 +590,18 @@ namespace MetaData if (track.date.year()) { - track.userExtraTags["YEAR"] = {std::to_string(track.date.year())}; + track.userExtraTags["YEAR"] = { std::to_string(track.date.year()) }; } if (track.duration > std::chrono::minutes(10)) { - track.userExtraTags["LENGTH"] = {"long"}; + track.userExtraTags["LENGTH"] = { "long" }; } - else { - track.userExtraTags["LENGTH"] = {"short"}; + else + { + track.userExtraTags["LENGTH"] = { "short" }; } return track; } } // namespace MetaData - diff --git a/src/libs/metadata/test/Parser.cpp b/src/libs/metadata/test/Parser.cpp index 27f8fc9fc..fda5a3cff 100644 --- a/src/libs/metadata/test/Parser.cpp +++ b/src/libs/metadata/test/Parser.cpp @@ -67,7 +67,7 @@ namespace lms::metadata { TagType::Lyricist, { "MyLyricist1", "MyLyricist2" } }, { TagType::OriginalReleaseDate, { "2019/02/03" } }, { TagType::ReleaseType, { "Album", "Compilation" } }, - { TagType::Rating, {"255"} }, + { TagType::Rating, { "255" } }, { TagType::ReplayGainTrackGain, { "-0.33" } }, { TagType::ReplayGainAlbumGain, { "-0.5" } }, { TagType::TrackTitle, { "MyTitle" } }, diff --git a/src/lms/ui/explore/ReleaseView.cpp b/src/lms/ui/explore/ReleaseView.cpp index 7308baeb4..991487de6 100644 --- a/src/lms/ui/explore/ReleaseView.cpp +++ b/src/lms/ui/explore/ReleaseView.cpp @@ -474,7 +474,7 @@ namespace lms::ui Wt::WString star("★"); Wt::WString empty_star("☆"); Wt::WString rating = star; - for (unsigned int i=1; i < track->getRating(); i++) + for (unsigned int i = 1; i < track->getRating(); i++) rating += star; for (unsigned int i = 5; i > track->getRating(); i--) rating += empty_star; @@ -487,7 +487,6 @@ namespace lms::ui entry->bindInt("year", track->getYear().value()); } - entry->bindString("duration", utils::durationToString(track->getDuration()), Wt::TextFormat::Plain); LmsApp->getMediaPlayer().trackLoaded.connect(entry, [=](TrackId loadedTrackId) { diff --git a/src/lms/ui/explore/TrackListHelpers.cpp b/src/lms/ui/explore/TrackListHelpers.cpp index ef30ec6cb..43e460cf2 100644 --- a/src/lms/ui/explore/TrackListHelpers.cpp +++ b/src/lms/ui/explore/TrackListHelpers.cpp @@ -137,8 +137,8 @@ namespace lms::ui::TrackListHelpers if (track->getYear().has_value()) { - trackInfo->setCondition("if-has-year", true); - trackInfo->bindInt("year", track->getYear().value()); + trackInfo->setCondition("if-has-year", true); + trackInfo->bindInt("year", track->getYear().value()); } if (track->getBitrate()) @@ -203,19 +203,18 @@ namespace lms::ui::TrackListHelpers Wt::WString star("★"); Wt::WString empty_star("☆"); Wt::WString rating = star; - for (unsigned int i=1; igetRating(); i++) + for (unsigned int i = 1; i < track->getRating(); i++) rating += star; for (unsigned int i = 5; i > track->getRating(); i--) rating += empty_star; entry->bindString("rating", rating); } - - if (track->getYear().has_value()) - { - entry->setCondition("if-has-year", true); - entry->bindInt("year", track->getYear().value()); - } + if (track->getYear().has_value()) + { + entry->setCondition("if-has-year", true); + entry->bindInt("year", track->getYear().value()); + } Wt::WPushButton* playBtn{ entry->bindNew("play-btn", Wt::WString::tr("Lms.template.play-btn"), Wt::TextFormat::XHTML) }; playBtn->clicked().connect([trackId, &playQueueController] {