5 #include <c++utilities/conversion/stringconversion.h>
19 switch (tagTargetLevel) {
20 case TagTargetLevel::Shot:
22 case TagTargetLevel::Subtrack:
23 return "subtrack, part, movement, scene";
25 return "track, song, chapter";
26 case TagTargetLevel::Part:
27 return "part, session";
29 return "album, opera, concert, movie, episode";
30 case TagTargetLevel::Edition:
31 return "edition, issue, volume, opus, season, sequel";
32 case TagTargetLevel::Collection:
35 return std::string_view();
62 auto levelString = std::string();
64 levelString +=
"level ";
65 levelString += numberToString(level());
67 auto defaultLevelName = std::string_view();
68 if (!levelName().empty() || !(defaultLevelName =
tagTargetLevelName(tagTargetLevel)).empty()) {
69 if (!levelString.empty()) {
73 if (!levelName().empty()) {
74 levelString += levelName();
76 levelString += defaultLevelName;
81 if (levelString.empty()) {
82 parts.emplace_back(
"undefined target");
84 parts.emplace_back(move(levelString));
86 for (
auto v : tracks()) {
87 parts.emplace_back(
"track " + numberToString(v));
89 for (
auto v : chapters()) {
90 parts.emplace_back(
"chapter " + numberToString(v));
92 for (
auto v : editions()) {
93 parts.emplace_back(
"edition " + numberToString(v));
95 for (
auto v : attachments()) {
96 parts.emplace_back(
"attachment " + numberToString(v));
98 return joinStrings(parts,
", ");
Contains all classes and functions of the TagInfo library.
TAG_PARSER_EXPORT std::string_view tagTargetLevelName(TagTargetLevel tagTargetLevel)
Returns a string representation for the specified tagTargetLevel.
TagTargetLevel
The TagTargetLevel enum specifies tag target levels.