27 QByteArray fname = filename.toLocal8Bit();
28 TagLib::Ogg::Vorbis::File *oggfile =
29 new TagLib::Ogg::Vorbis::File(fname.constData());
31 if (!oggfile->isOpen())
54 TagLib::Ogg::XiphComment *tag = oggfile->tag();
67 tag->addField(
"MUSICBRAINZ_ALBUMARTISTID",
68 MYTH_MUSICBRAINZ_ALBUMARTIST_UUID,
true);
69 tag->addField(
"COMPILATION_ARTIST",
75 if (tag->contains(
"MUSICBRAINZ_ALBUMARTISTID") &&
76 (tag->fieldListMap()[
"MUSICBRAINZ_ALBUMARTISTID"].toString() ==
77 MYTH_MUSICBRAINZ_ALBUMARTIST_UUID))
79 tag->removeField(
"MUSICBRAINZ_ALBUMARTISTID");
81 tag->removeField(
"COMPILATION_ARTIST");
84 bool result = oggfile->save();
97 TagLib::Ogg::Vorbis::File *oggfile =
OpenFile(filename);
102 TagLib::Ogg::XiphComment *tag = oggfile->tag();
114 bool compilation =
false;
116 if (tag->contains(
"COMPILATION_ARTIST"))
118 QString compilation_artist = TStringToQString(
119 tag->fieldListMap()[
"COMPILATION_ARTIST"].toString()).trimmed();
120 if (compilation_artist != metadata->
Artist())
127 if (!compilation && tag->contains(
"MUSICBRAINZ_ALBUMARTISTID"))
129 QString musicbrainzcode = TStringToQString(
130 tag->fieldListMap()[
"MUSICBRAINZ_ALBUMARTISTID"].toString()).trimmed();
131 if (musicbrainzcode == MYTH_MUSICBRAINZ_ALBUMARTIST_UUID)
137 if (metadata->
Length() <= 0)