diff options
Diffstat (limited to 'src/plugins/Input/mpc/decodermpcfactory.cpp')
| -rw-r--r-- | src/plugins/Input/mpc/decodermpcfactory.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/plugins/Input/mpc/decodermpcfactory.cpp b/src/plugins/Input/mpc/decodermpcfactory.cpp index a5d8efb5b..323637c8b 100644 --- a/src/plugins/Input/mpc/decodermpcfactory.cpp +++ b/src/plugins/Input/mpc/decodermpcfactory.cpp @@ -21,6 +21,8 @@ #include <QtGui> #include <taglib/tag.h> #include <taglib/fileref.h> +#include <taglib/mpcfile.h> +#include <taglib/apetag.h> #include "detailsdialog.h" #include "decoder_mpc.h" @@ -63,8 +65,8 @@ QList<FileInfo *> DecoderMPCFactory::createPlayList(const QString &fileName, boo { FileInfo *info = new FileInfo(fileName); - TagLib::FileRef fileRef(fileName.toLocal8Bit ()); - TagLib::Tag *tag = useMetaData ? fileRef.tag() : 0; + TagLib::MPC::File fileRef(fileName.toLocal8Bit ()); + TagLib::APE::Tag *tag = useMetaData ? fileRef.APETag() : 0; if (tag && !tag->isEmpty()) { info->setMetaData(Qmmp::ALBUM, @@ -82,6 +84,14 @@ QList<FileInfo *> DecoderMPCFactory::createPlayList(const QString &fileName, boo } if (fileRef.audioProperties()) info->setLength(fileRef.audioProperties()->length()); + //additional metadata + if(tag) + { + TagLib::APE::Item fld; + if(!(fld = tag->itemListMap()["COMPOSER"]).isEmpty()) + info->setMetaData(Qmmp::COMPOSER, + QString::fromUtf8(fld.toString().toCString(TRUE)).trimmed()); + } QList <FileInfo*> list; list << info; |
