From c515397c5ebb19e12bd56258f63c0bd4a56429e0 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sat, 8 Aug 2009 11:40:22 +0000 Subject: flac plugin: added support for composer and disc number tags git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1121 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Input/flac/detailsdialog.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/plugins/Input/flac/detailsdialog.cpp') diff --git a/src/plugins/Input/flac/detailsdialog.cpp b/src/plugins/Input/flac/detailsdialog.cpp index a06b0778e..a3740b3f9 100644 --- a/src/plugins/Input/flac/detailsdialog.cpp +++ b/src/plugins/Input/flac/detailsdialog.cpp @@ -20,6 +20,8 @@ #include #include #include +#include +#include #include #include @@ -72,6 +74,12 @@ void DetailsDialog::loadTags() setMetaData(Qmmp::YEAR, f.tag()->year()); setMetaData(Qmmp::TRACK, f.tag()->track()); setMetaData(Qmmp::URL, m_path); + TagLib::FLAC::File *file = dynamic_cast< TagLib::FLAC::File *>(f.file()); + TagLib::StringList fld; + if(file->xiphComment() && !(fld = file->xiphComment()->fieldListMap()["COMPOSER"]).isEmpty()) + setMetaData(Qmmp::COMPOSER, TStringToQString_qt4(fld.toString())); + if(file->xiphComment() && !(fld = file->xiphComment()->fieldListMap()["DISCNUMBER"]).isEmpty()) + setMetaData(Qmmp::DISCNUMBER, TStringToQString_qt4(fld.toString())); } void DetailsDialog::writeTags() @@ -84,5 +92,13 @@ void DetailsDialog::writeTags() f.tag()->setGenre(QStringToTString_qt4(strMetaData(Qmmp::GENRE))); f.tag()->setYear(intMetaData(Qmmp::YEAR)); f.tag()->setTrack(intMetaData(Qmmp::TRACK)); + TagLib::FLAC::File *file = dynamic_cast< TagLib::FLAC::File *>(f.file()); + strMetaData(Qmmp::COMPOSER).isEmpty() ? + file->xiphComment()->removeField("COMPOSER"): + file->xiphComment()->addField("COMPOSER", QStringToTString_qt4(strMetaData(Qmmp::COMPOSER)), TRUE); + intMetaData(Qmmp::DISCNUMBER) == 0 ? + file->xiphComment()->removeField("DISCNUMBER"): + file->xiphComment()->addField("DISCNUMBER", + QStringToTString_qt4(strMetaData(Qmmp::DISCNUMBER)), TRUE); f.save(); } -- cgit v1.2.3-13-gbd6f