aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/flac
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/flac')
-rw-r--r--src/plugins/Input/flac/decoderflacfactory.cpp3
-rw-r--r--src/plugins/Input/flac/flacmetadatamodel.cpp10
2 files changed, 13 insertions, 0 deletions
diff --git a/src/plugins/Input/flac/decoderflacfactory.cpp b/src/plugins/Input/flac/decoderflacfactory.cpp
index d45a8164c..7e2600b7d 100644
--- a/src/plugins/Input/flac/decoderflacfactory.cpp
+++ b/src/plugins/Input/flac/decoderflacfactory.cpp
@@ -152,6 +152,9 @@ QList<FileInfo *> DecoderFLACFactory::createPlayList(const QString &fileName, bo
//additional metadata
TagLib::StringList fld;
+ if(!(fld = tag->fieldListMap()["ALBUMARTIST"]).isEmpty())
+ info->setMetaData(Qmmp::ALBUMARTIST,
+ QString::fromUtf8(fld.toString().toCString(true)).trimmed());
if(!(fld = tag->fieldListMap()["COMPOSER"]).isEmpty())
info->setMetaData(Qmmp::COMPOSER,
QString::fromUtf8(fld.toString().toCString(true)).trimmed());
diff --git a/src/plugins/Input/flac/flacmetadatamodel.cpp b/src/plugins/Input/flac/flacmetadatamodel.cpp
index 3c0738819..9b700383f 100644
--- a/src/plugins/Input/flac/flacmetadatamodel.cpp
+++ b/src/plugins/Input/flac/flacmetadatamodel.cpp
@@ -160,6 +160,11 @@ const QString VorbisCommentModel::value(Qmmp::MetaData key)
return TStringToQString_qt4(m_tag->title());
case Qmmp::ARTIST:
return TStringToQString_qt4(m_tag->artist());
+ case Qmmp::ALBUMARTIST:
+ if(m_tag->fieldListMap()["ALBUMARTIST"].isEmpty())
+ return QString();
+ else
+ return TStringToQString_qt4(m_tag->fieldListMap()["ALBUMARTIST"].front());
case Qmmp::ALBUM:
return TStringToQString_qt4(m_tag->album());
case Qmmp::COMMENT:
@@ -199,6 +204,11 @@ void VorbisCommentModel::setValue(Qmmp::MetaData key, const QString &value)
case Qmmp::ARTIST:
m_tag->setArtist(str);
return;
+ case Qmmp::ALBUMARTIST:
+ value.isEmpty() ?
+ m_tag->removeField("ALBUMARTIST"):
+ m_tag->addField("ALBUMARTIST", str, true);
+ return;
case Qmmp::ALBUM:
m_tag->setAlbum(str);
return;