diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-10-12 20:59:52 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-10-12 20:59:52 +0000 |
| commit | 16aab306ccdd546b9184629a5a0692785d5d6c6f (patch) | |
| tree | b352038da3899a30b61c974083ee1565cf8ce0ad /src/plugins/Input/mad | |
| parent | b1b762bab241adf3cb28953ebcb415d73346215f (diff) | |
| download | qmmp-16aab306ccdd546b9184629a5a0692785d5d6c6f.tar.gz qmmp-16aab306ccdd546b9184629a5a0692785d5d6c6f.tar.bz2 qmmp-16aab306ccdd546b9184629a5a0692785d5d6c6f.zip | |
added APIC frame support, added some api functions
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1309 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/mad')
| -rw-r--r-- | src/plugins/Input/mad/mpegmetadatamodel.cpp | 23 | ||||
| -rw-r--r-- | src/plugins/Input/mad/mpegmetadatamodel.h | 1 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/plugins/Input/mad/mpegmetadatamodel.cpp b/src/plugins/Input/mad/mpegmetadatamodel.cpp index cdf54774c..b1ae5a130 100644 --- a/src/plugins/Input/mad/mpegmetadatamodel.cpp +++ b/src/plugins/Input/mad/mpegmetadatamodel.cpp @@ -31,6 +31,7 @@ #include <taglib/mpegheader.h> #include <taglib/mpegproperties.h> #include <taglib/textidentificationframe.h> +#include <taglib/attachedpictureframe.h> #include "mpegmetadatamodel.h" @@ -108,6 +109,28 @@ QList<TagModel* > MPEGMetaDataModel::tags() return m_tags; } +QPixmap MPEGMetaDataModel::cover() +{ + if(!m_file->ID3v2Tag()) + return QPixmap(); + TagLib::ID3v2::FrameList frames = m_file->ID3v2Tag()->frameListMap()["APIC"]; + if(frames.isEmpty()) + return QPixmap(); + + for(TagLib::ID3v2::FrameList::Iterator it = frames.begin(); it != frames.end(); ++it) + { + TagLib::ID3v2::AttachedPictureFrame *frame = static_cast<TagLib::ID3v2::AttachedPictureFrame *>(*it); + if(frame && frame->type() == TagLib::ID3v2::AttachedPictureFrame::FrontCover) + { + QPixmap cover; + cover.loadFromData((const uchar *)frame->picture().data(), + frame->picture().size()); + return cover; + } + } + return QPixmap(); +} + MpegFileTagModel::MpegFileTagModel(TagLib::MPEG::File *file, TagLib::MPEG::File::TagTypes tagType) : TagModel() { diff --git a/src/plugins/Input/mad/mpegmetadatamodel.h b/src/plugins/Input/mad/mpegmetadatamodel.h index 2ed2a86f9..76d93d7f0 100644 --- a/src/plugins/Input/mad/mpegmetadatamodel.h +++ b/src/plugins/Input/mad/mpegmetadatamodel.h @@ -34,6 +34,7 @@ public: ~MPEGMetaDataModel(); QHash<QString, QString> audioProperties(); QList<TagModel* > tags(); + QPixmap cover(); private: QList<TagModel* > m_tags; |
