15 QByteArray fname =
filename.toLocal8Bit();
16 auto *oggfile =
new TagLib::Ogg::Vorbis::File(fname.constData());
18 if (!oggfile->isOpen())
46 TagLib::Ogg::XiphComment *tag = oggfile->tag();
59 tag->addField(
"MUSICBRAINZ_ALBUMARTISTID",
61 tag->addField(
"COMPILATION_ARTIST",
67 if (tag->contains(
"MUSICBRAINZ_ALBUMARTISTID") &&
68 (tag->fieldListMap()[
"MUSICBRAINZ_ALBUMARTISTID"].toString() ==
71 tag->removeFields(
"MUSICBRAINZ_ALBUMARTISTID");
73 tag->removeFields(
"COMPILATION_ARTIST");
77 bool result = oggfile->save();
95 TagLib::Ogg::XiphComment *tag = oggfile->tag();
107 bool compilation =
false;
109 if (tag->contains(
"COMPILATION_ARTIST"))
111 QString compilation_artist = TStringToQString(
112 tag->fieldListMap()[
"COMPILATION_ARTIST"].toString()).trimmed();
113 if (compilation_artist != metadata->Artist())
115 metadata->setCompilationArtist(compilation_artist);
120 if (!compilation && tag->contains(
"MUSICBRAINZ_ALBUMARTISTID"))
122 QString musicbrainzcode = TStringToQString(
123 tag->fieldListMap()[
"MUSICBRAINZ_ALBUMARTISTID"].toString()).trimmed();
128 metadata->setCompilation(compilation);
130 if (metadata->Length() <= 0ms)