soundkonverter: patch for taglib2

This commit is contained in:
Mateusz Sylwestrzak 2025-04-07 15:48:03 +02:00 committed by classabbyamp
parent c5d1d27faa
commit ec5feb46d5
2 changed files with 260 additions and 1 deletions

View file

@ -0,0 +1,259 @@
diff --git a/src/metadata/tagengine.cpp b/src/metadata/tagengine.cpp
index 4056d676..0aa48b26 100644
--- a/src/metadata/tagengine.cpp
+++ b/src/metadata/tagengine.cpp
@@ -367,8 +367,8 @@ TagData* TagEngine::readTags( const KUrl& fileName )
if( TagLib::MP4::Tag *tag = file->tag() )
{
- TagLib::MP4::ItemListMap map = tag->itemListMap();
- for( TagLib::MP4::ItemListMap::ConstIterator it = map.begin(); it != map.end(); ++it )
+ TagLib::MP4::ItemMap map = tag->itemMap();
+ for( TagLib::MP4::ItemMap::ConstIterator it = map.begin(); it != map.end(); ++it )
{
if( it->first == "aART" )
{
@@ -680,7 +680,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( !tagData->albumArtist.isEmpty() )
{
if( tag->contains("ALBUMARTIST") )
- tag->removeField("ALBUMARTIST");
+ tag->removeFields("ALBUMARTIST");
tag->addField( "ALBUMARTIST", TagLib::String(tagData->albumArtist.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -688,7 +688,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( !tagData->composer.isEmpty() )
{
if( tag->contains("COMPOSER") )
- tag->removeField("COMPOSER");
+ tag->removeFields("COMPOSER");
tag->addField( "COMPOSER", TagLib::String(tagData->composer.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -698,7 +698,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( config->data.general.preferredVorbisCommentTrackTotalTag == "TRACKNUMBER" )
{
if( tag->contains("TRACKNUMBER") )
- tag->removeField("TRACKNUMBER");
+ tag->removeFields("TRACKNUMBER");
tag->addField( "TRACKNUMBER", TagLib::String(track.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -711,7 +711,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( tagData->disc > 0 )
{
if( tag->contains("DISCNUMBER") )
- tag->removeField("DISCNUMBER");
+ tag->removeFields("DISCNUMBER");
tag->addField( "DISCNUMBER", TagLib::String(QString::number(tagData->disc).toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -721,7 +721,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( config->data.general.preferredVorbisCommentDiscTotalTag == "DISCNUMBER" )
{
if( tag->contains("DISCNUMBER") )
- tag->removeField("DISCNUMBER");
+ tag->removeFields("DISCNUMBER");
tag->addField( "DISCNUMBER", TagLib::String(disc.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -734,7 +734,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( !tagData->musicBrainzTrackId.isEmpty() )
{
if( tag->contains("MUSICBRAINZ_TRACKID") )
- tag->removeField("MUSICBRAINZ_TRACKID");
+ tag->removeFields("MUSICBRAINZ_TRACKID");
tag->addField( "MUSICBRAINZ_TRACKID", TagLib::String(tagData->musicBrainzTrackId.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -742,7 +742,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( !tagData->musicBrainzReleaseId.isEmpty() )
{
if( tag->contains("MUSICBRAINZ_ALBUMID") )
- tag->removeField("MUSICBRAINZ_ALBUMID");
+ tag->removeFields("MUSICBRAINZ_ALBUMID");
tag->addField( "MUSICBRAINZ_ALBUMID", TagLib::String(tagData->musicBrainzReleaseId.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -755,7 +755,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( !tagData->albumArtist.isEmpty() )
{
if( tag->contains("ALBUMARTIST") )
- tag->removeField("ALBUMARTIST");
+ tag->removeFields("ALBUMARTIST");
tag->addField( "ALBUMARTIST", TagLib::String(tagData->albumArtist.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -763,7 +763,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( !tagData->composer.isEmpty() )
{
if( tag->contains("COMPOSER") )
- tag->removeField("COMPOSER");
+ tag->removeFields("COMPOSER");
tag->addField( "COMPOSER", TagLib::String(tagData->composer.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -773,7 +773,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( config->data.general.preferredVorbisCommentTrackTotalTag == "TRACKNUMBER" )
{
if( tag->contains("TRACKNUMBER") )
- tag->removeField("TRACKNUMBER");
+ tag->removeFields("TRACKNUMBER");
tag->addField( "TRACKNUMBER", TagLib::String(track.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -786,7 +786,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( tagData->disc > 0 )
{
if( tag->contains("DISCNUMBER") )
- tag->removeField("DISCNUMBER");
+ tag->removeFields("DISCNUMBER");
tag->addField( "DISCNUMBER", TagLib::String(QString::number(tagData->disc).toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -796,7 +796,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( config->data.general.preferredVorbisCommentDiscTotalTag == "DISCNUMBER" )
{
if( tag->contains("DISCNUMBER") )
- tag->removeField("DISCNUMBER");
+ tag->removeFields("DISCNUMBER");
tag->addField( "DISCNUMBER", TagLib::String(disc.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -809,7 +809,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( !tagData->musicBrainzTrackId.isEmpty() )
{
if( tag->contains("MUSICBRAINZ_TRACKID") )
- tag->removeField("MUSICBRAINZ_TRACKID");
+ tag->removeFields("MUSICBRAINZ_TRACKID");
tag->addField( "MUSICBRAINZ_TRACKID", TagLib::String(tagData->musicBrainzTrackId.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -817,7 +817,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( !tagData->musicBrainzReleaseId.isEmpty() )
{
if( tag->contains("MUSICBRAINZ_ALBUMID") )
- tag->removeField("MUSICBRAINZ_ALBUMID");
+ tag->removeFields("MUSICBRAINZ_ALBUMID");
tag->addField( "MUSICBRAINZ_ALBUMID", TagLib::String(tagData->musicBrainzReleaseId.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -830,7 +830,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( !tagData->albumArtist.isEmpty() )
{
if( tag->contains("ALBUMARTIST") )
- tag->removeField("ALBUMARTIST");
+ tag->removeFields("ALBUMARTIST");
tag->addField( "ALBUMARTIST", TagLib::String(tagData->albumArtist.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -838,7 +838,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( !tagData->composer.isEmpty() )
{
if( tag->contains("COMPOSER") )
- tag->removeField("COMPOSER");
+ tag->removeFields("COMPOSER");
tag->addField( "COMPOSER", TagLib::String(tagData->composer.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -848,7 +848,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( config->data.general.preferredVorbisCommentTrackTotalTag == "TRACKNUMBER" )
{
if( tag->contains("TRACKNUMBER") )
- tag->removeField("TRACKNUMBER");
+ tag->removeFields("TRACKNUMBER");
tag->addField( "TRACKNUMBER", TagLib::String(track.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -861,7 +861,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( tagData->disc > 0 )
{
if( tag->contains("DISCNUMBER") )
- tag->removeField("DISCNUMBER");
+ tag->removeFields("DISCNUMBER");
tag->addField( "DISCNUMBER", TagLib::String(QString::number(tagData->disc).toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -871,7 +871,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( config->data.general.preferredVorbisCommentDiscTotalTag == "DISCNUMBER" )
{
if( tag->contains("DISCNUMBER") )
- tag->removeField("DISCNUMBER");
+ tag->removeFields("DISCNUMBER");
tag->addField( "DISCNUMBER", TagLib::String(disc.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -884,7 +884,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( !tagData->musicBrainzTrackId.isEmpty() )
{
if( tag->contains("MUSICBRAINZ_TRACKID") )
- tag->removeField("MUSICBRAINZ_TRACKID");
+ tag->removeFields("MUSICBRAINZ_TRACKID");
tag->addField( "MUSICBRAINZ_TRACKID", TagLib::String(tagData->musicBrainzTrackId.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -892,7 +892,7 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( !tagData->musicBrainzReleaseId.isEmpty() )
{
if( tag->contains("MUSICBRAINZ_ALBUMID") )
- tag->removeField("MUSICBRAINZ_ALBUMID");
+ tag->removeFields("MUSICBRAINZ_ALBUMID");
tag->addField( "MUSICBRAINZ_ALBUMID", TagLib::String(tagData->musicBrainzReleaseId.toUtf8().data(), TagLib::String::UTF8), true );
}
@@ -903,27 +903,27 @@ bool TagEngine::writeTags( const KUrl& fileName, TagData *tagData )
if( TagLib::MP4::Tag *tag = file->tag() )
{
if( !tagData->albumArtist.isEmpty() )
- tag->itemListMap()["aART"] = TagLib::StringList(TagLib::String(tagData->albumArtist.toUtf8().data(), TagLib::String::UTF8));
+ tag->setItem("aART", TagLib::StringList(TagLib::String(tagData->albumArtist.toUtf8().data(), TagLib::String::UTF8)));
if( !tagData->composer.isEmpty() )
- tag->itemListMap()["\xA9wrt"] = TagLib::StringList(TagLib::String(tagData->composer.toUtf8().data(), TagLib::String::UTF8));
+ tag->setItem("\xA9wrt", TagLib::StringList(TagLib::String(tagData->composer.toUtf8().data(), TagLib::String::UTF8)));
if( tagData->trackTotal > 0 )
- tag->itemListMap()["trkn"] = TagLib::MP4::Item( tagData->track, tagData->trackTotal );
+ tag->setItem("trkn", TagLib::MP4::Item( tagData->track, tagData->trackTotal ));
if( tagData->disc > 0 )
{
if( tagData->discTotal > 0 )
- tag->itemListMap()["disk"] = TagLib::MP4::Item( tagData->disc, tagData->discTotal );
+ tag->setItem("disk", TagLib::MP4::Item( tagData->disc, tagData->discTotal ));
else
- tag->itemListMap()["disk"] = TagLib::MP4::Item( tagData->disc );
+ tag->setItem("disk", TagLib::MP4::Item( tagData->disc ));
}
if( !tagData->musicBrainzTrackId.isEmpty() )
- tag->itemListMap()["----:com.apple.iTunes:MusicBrainz Track Id"] = TagLib::StringList(TagLib::String(tagData->musicBrainzTrackId.toUtf8().data(), TagLib::String::UTF8));
+ tag->setItem("----:com.apple.iTunes:MusicBrainz Track Id", TagLib::StringList(TagLib::String(tagData->musicBrainzTrackId.toUtf8().data(), TagLib::String::UTF8)));
if( !tagData->musicBrainzReleaseId.isEmpty() )
- tag->itemListMap()["----:com.apple.iTunes:MusicBrainz Album Id"] = TagLib::StringList(TagLib::String(tagData->musicBrainzReleaseId.toUtf8().data(), TagLib::String::UTF8));
+ tag->setItem("----:com.apple.iTunes:MusicBrainz Album Id", TagLib::StringList(TagLib::String(tagData->musicBrainzReleaseId.toUtf8().data(), TagLib::String::UTF8)));
}
}
else if( TagLib::ASF::File *file = dynamic_cast<TagLib::ASF::File*>(fileref.file()) )
@@ -1136,8 +1136,8 @@ QList<CoverData*> TagEngine::readCovers( const KUrl& fileName )
{
if( TagLib::MP4::Tag *tag = file->tag() )
{
- TagLib::MP4::ItemListMap map = tag->itemListMap();
- for( TagLib::MP4::ItemListMap::ConstIterator it = map.begin(); it != map.end(); ++it )
+ TagLib::MP4::ItemMap map = tag->itemMap();
+ for( TagLib::MP4::ItemMap::ConstIterator it = map.begin(); it != map.end(); ++it )
{
if( it->first == "covr" )
{
@@ -1290,7 +1290,7 @@ bool TagEngine::writeCovers( const KUrl& fileName, QList<CoverData*> covers )
coversList.append( TagLib::MP4::CoverArt( format, TagLib::ByteVector( cover->data.data(), cover->data.size() ) ) );
}
- tag->itemListMap()["covr"] = TagLib::MP4::Item( coversList );
+ tag->setItem("covr", TagLib::MP4::Item( coversList ));
}
return fileref.save();

View file

@ -1,7 +1,7 @@
# Template file for 'soundkonverter'
pkgname=soundkonverter
version=3.0.1
revision=2
revision=3
build_wrksrc=src
build_style=cmake
configure_args="-DCMAKE_CXX_STANDARD_LIBRARIES=-ltag"