diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-09-24 18:19:12 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-09-24 18:19:12 +0000 |
| commit | 997de852100372a2d1b1f1fb9219f5a70a8d98c0 (patch) | |
| tree | 5e747c6e21c04660529ab1db5166d5851b5a5267 /src/plugins/Input/flac/flacmetadatamodel.cpp | |
| parent | d9b868c9adef69212e0f50c9a0cf1f739ccea506 (diff) | |
| download | qmmp-997de852100372a2d1b1f1fb9219f5a70a8d98c0.tar.gz qmmp-997de852100372a2d1b1f1fb9219f5a70a8d98c0.tar.bz2 qmmp-997de852100372a2d1b1f1fb9219f5a70a8d98c0.zip | |
fixed taglib 1.10 support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8374 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/flac/flacmetadatamodel.cpp')
| -rw-r--r-- | src/plugins/Input/flac/flacmetadatamodel.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/plugins/Input/flac/flacmetadatamodel.cpp b/src/plugins/Input/flac/flacmetadatamodel.cpp index 622e8a661..54c15b006 100644 --- a/src/plugins/Input/flac/flacmetadatamodel.cpp +++ b/src/plugins/Input/flac/flacmetadatamodel.cpp @@ -25,11 +25,18 @@ #include <taglib/tmap.h> #include <taglib/id3v2framefactory.h> #include <taglib/flacpicture.h> +#ifndef IS_COVER_EDITABLE +#include <FLAC/all.h> +#endif #include <qmmp/metadatamanager.h> #include "flacmetadatamodel.h" FLACMetaDataModel::FLACMetaDataModel(const QString &path, bool readOnly) +#ifdef IS_COVER_EDITABLE : MetaDataModel(true, MetaDataModel::IS_COVER_EDITABLE) +#else + : MetaDataModel(true) +#endif { m_file = 0; m_stream = 0; @@ -87,6 +94,7 @@ QList<TagModel* > FLACMetaDataModel::tags() const QPixmap FLACMetaDataModel::cover() const { +#ifdef IS_COVER_EDITABLE if(!m_tag || m_tag->isEmpty()) return QPixmap(); @@ -101,6 +109,22 @@ QPixmap FLACMetaDataModel::cover() const } } return QPixmap(); +#else + //embedded cover + QPixmap 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; + cover.loadFromData(QByteArray((char *)pict->data, (int) pict->data_length)); + FLAC__metadata_object_delete(metadata); + } + return cover; +#endif } QString FLACMetaDataModel::coverPath() const @@ -108,6 +132,7 @@ QString FLACMetaDataModel::coverPath() const return MetaDataManager::instance()->findCoverFile(m_path); } +#ifdef IS_COVER_EDITABLE void FLACMetaDataModel::setCover(const QPixmap &pix) { removeCover(); @@ -147,6 +172,7 @@ void FLACMetaDataModel::removeCover() } } } +#endif VorbisCommentModel::VorbisCommentModel(TagLib::Ogg::XiphComment *tag, TagLib::File *file) : TagModel(TagModel::Save) { |
