aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/Input/flac/flacmetadatamodel.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/plugins/Input/flac/flacmetadatamodel.cpp b/src/plugins/Input/flac/flacmetadatamodel.cpp
index 6ff5b0c8c..3c1366e25 100644
--- a/src/plugins/Input/flac/flacmetadatamodel.cpp
+++ b/src/plugins/Input/flac/flacmetadatamodel.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2009 by Ilya Kotov *
+ * Copyright (C) 2009-2010 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -22,6 +22,7 @@
#include <taglib/tag.h>
#include <taglib/fileref.h>
#include <taglib/tmap.h>
+#include <FLAC/all.h>
#include <qmmp/metadatamanager.h>
#include "flacmetadatamodel.h"
@@ -74,6 +75,20 @@ QList<TagModel* > FLACMetaDataModel::tags()
QPixmap FLACMetaDataModel::cover()
{
+ //embedded cover
+ FLAC__StreamMetadata *metadata;
+ FLAC__metadata_get_picture (qPrintable(m_path),
+ &metadata,
+ FLAC__STREAM_METADATA_PICTURE_TYPE_FRONT_COVER,
+ 0,0, -1,-1,-1,-1);
+ if(metadata)
+ {
+ FLAC__StreamMetadata_Picture *pict = &metadata->data.picture;
+ QPixmap cover;
+ cover.loadFromData(QByteArray((char *)pict->data, (int) pict->data_length));
+ FLAC__metadata_object_delete(metadata);
+ return cover;
+ }
QString cPath = coverPath();
return cPath.isEmpty() ? QPixmap() : QPixmap(cPath);
}