aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/opus/opusmetadatamodel.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-09-24 18:19:12 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-09-24 18:19:12 +0000
commit997de852100372a2d1b1f1fb9219f5a70a8d98c0 (patch)
tree5e747c6e21c04660529ab1db5166d5851b5a5267 /src/plugins/Input/opus/opusmetadatamodel.cpp
parentd9b868c9adef69212e0f50c9a0cf1f739ccea506 (diff)
downloadqmmp-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/opus/opusmetadatamodel.cpp')
-rw-r--r--src/plugins/Input/opus/opusmetadatamodel.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/plugins/Input/opus/opusmetadatamodel.cpp b/src/plugins/Input/opus/opusmetadatamodel.cpp
index cc6bd4dfd..56edfb9da 100644
--- a/src/plugins/Input/opus/opusmetadatamodel.cpp
+++ b/src/plugins/Input/opus/opusmetadatamodel.cpp
@@ -29,7 +29,11 @@
#include "opusmetadatamodel.h"
OpusMetaDataModel::OpusMetaDataModel(const QString &path, bool readOnly)
+#ifdef IS_COVER_EDITABLE
: MetaDataModel(readOnly, MetaDataModel::IS_COVER_EDITABLE)
+#else
+ : MetaDataModel(readOnly)
+#endif
{
m_path = path;
m_stream = new TagLib::FileStream(QStringToFileName(path), readOnly);
@@ -71,6 +75,7 @@ QPixmap OpusMetaDataModel::cover() const
if(!tag || tag->isEmpty())
return QPixmap();
+#ifdef IS_COVER_EDITABLE
TagLib::List<TagLib::FLAC::Picture *> list = tag->pictureList();
for(uint i = 0; i < list.size(); ++i)
{
@@ -81,9 +86,25 @@ QPixmap OpusMetaDataModel::cover() const
return cover;
}
}
+#else
+ TagLib::StringList list = tag->fieldListMap()["METADATA_BLOCK_PICTURE"];
+ if(list.isEmpty())
+ return QPixmap();
+ for(uint i = 0; i < list.size(); ++i)
+ {
+ TagLib::FLAC::Picture pict;
+ TagLib::String value = list[i];
+ QByteArray block = QByteArray::fromBase64(TStringToQString(value).toLatin1());
+ pict.parse(TagLib::ByteVector(block.constData(), block.size()));
+ QPixmap cover;
+ cover.loadFromData(QByteArray(pict.data().data(), pict.data().size())); //read binary picture data
+ return cover;
+ }
+#endif
return QPixmap();
}
+#ifdef IS_COVER_EDITABLE
void OpusMetaDataModel::setCover(const QPixmap &pix)
{
removeCover();
@@ -125,6 +146,7 @@ void OpusMetaDataModel::removeCover()
}
}
}
+#endif
VorbisCommentModel::VorbisCommentModel(TagLib::Ogg::Opus::File *file) : TagModel(TagModel::Save)
{