aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/mad
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-10-12 20:59:52 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-10-12 20:59:52 +0000
commit16aab306ccdd546b9184629a5a0692785d5d6c6f (patch)
treeb352038da3899a30b61c974083ee1565cf8ce0ad /src/plugins/Input/mad
parentb1b762bab241adf3cb28953ebcb415d73346215f (diff)
downloadqmmp-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.cpp23
-rw-r--r--src/plugins/Input/mad/mpegmetadatamodel.h1
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;