aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/mad/mpegmetadatamodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/mad/mpegmetadatamodel.cpp')
-rw-r--r--src/plugins/Input/mad/mpegmetadatamodel.cpp23
1 files changed, 23 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()
{