diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-08-04 21:28:03 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-08-04 21:28:03 +0000 |
| commit | c40c1ba38df9efce07a9f8372e6d357ff3c5d9b6 (patch) | |
| tree | f26a179cd319f4ac19c3c65de069d17c9e1c2646 /src/plugins/Input/vorbis | |
| parent | 0ab8a1f1aa6b2064d5d97becbb7b2ad40cfe4501 (diff) | |
| download | qmmp-c40c1ba38df9efce07a9f8372e6d357ff3c5d9b6.tar.gz qmmp-c40c1ba38df9efce07a9f8372e6d357ff3c5d9b6.tar.bz2 qmmp-c40c1ba38df9efce07a9f8372e6d357ff3c5d9b6.zip | |
changed MetaDataModel API, disabled broken plugins
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8223 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/vorbis')
| -rw-r--r-- | src/plugins/Input/vorbis/decodervorbisfactory.cpp | 4 | ||||
| -rw-r--r-- | src/plugins/Input/vorbis/decodervorbisfactory.h | 2 | ||||
| -rw-r--r-- | src/plugins/Input/vorbis/vorbismetadatamodel.cpp | 35 | ||||
| -rw-r--r-- | src/plugins/Input/vorbis/vorbismetadatamodel.h | 13 |
4 files changed, 20 insertions, 34 deletions
diff --git a/src/plugins/Input/vorbis/decodervorbisfactory.cpp b/src/plugins/Input/vorbis/decodervorbisfactory.cpp index fc7e2f9e2..8c2dcdd50 100644 --- a/src/plugins/Input/vorbis/decodervorbisfactory.cpp +++ b/src/plugins/Input/vorbis/decodervorbisfactory.cpp @@ -57,9 +57,9 @@ Decoder *DecoderVorbisFactory::create(const QString &, QIODevice *input) return new DecoderVorbis(input); } -MetaDataModel* DecoderVorbisFactory::createMetaDataModel(const QString &path, QObject *parent) +MetaDataModel* DecoderVorbisFactory::createMetaDataModel(const QString &path, bool readOnly, QObject *parent) { - return new VorbisMetaDataModel(path, parent); + return new VorbisMetaDataModel(path, readOnly, parent); } QList<TrackInfo *> DecoderVorbisFactory::createPlayList(const QString &path, TrackInfo::Parts parts, QStringList *) diff --git a/src/plugins/Input/vorbis/decodervorbisfactory.h b/src/plugins/Input/vorbis/decodervorbisfactory.h index dc0a39264..e75198a08 100644 --- a/src/plugins/Input/vorbis/decodervorbisfactory.h +++ b/src/plugins/Input/vorbis/decodervorbisfactory.h @@ -36,7 +36,7 @@ public: bool canDecode(QIODevice *input) const; DecoderProperties properties() const; Decoder *create(const QString &, QIODevice *input); - MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); + MetaDataModel* createMetaDataModel(const QString &path, bool readOnly = true, QObject *parent = 0); QList<TrackInfo *> createPlayList(const QString &path, TrackInfo::Parts parts, QStringList *); QObject* showDetails(QWidget *parent, const QString &path); void showSettings(QWidget *parent); diff --git a/src/plugins/Input/vorbis/vorbismetadatamodel.cpp b/src/plugins/Input/vorbis/vorbismetadatamodel.cpp index b00ad9bd7..67b7d0fb5 100644 --- a/src/plugins/Input/vorbis/vorbismetadatamodel.cpp +++ b/src/plugins/Input/vorbis/vorbismetadatamodel.cpp @@ -26,10 +26,12 @@ #include <taglib/tmap.h> #include "vorbismetadatamodel.h" -VorbisMetaDataModel::VorbisMetaDataModel(const QString &path, QObject *parent) : MetaDataModel(parent) +VorbisMetaDataModel::VorbisMetaDataModel(const QString &path, bool readOnly, QObject *parent) + : MetaDataModel(readOnly, parent) { m_path = path; - m_file = new TagLib::Ogg::Vorbis::File(QStringToFileName(path)); + m_stream = new TagLib::FileStream(QStringToFileName(path), readOnly); + m_file = new TagLib::Ogg::Vorbis::File(m_stream); m_tag = m_file->tag(); m_tags << new VorbisCommentModel(this); } @@ -39,35 +41,16 @@ VorbisMetaDataModel::~VorbisMetaDataModel() while(!m_tags.isEmpty()) delete m_tags.takeFirst(); - if(m_file) - { - delete m_file; - m_file = 0; - } -} - -QHash<QString, QString> VorbisMetaDataModel::audioProperties() -{ - QHash<QString, QString> ap; - if(m_file->audioProperties()) - { - QString text = QString("%1").arg(m_file->audioProperties()->length()/60); - text +=":"+QString("%1").arg(m_file->audioProperties()->length()%60,2,10,QChar('0')); - ap.insert(tr("Length"), text); - ap.insert(tr("Sample rate"), QString("%1 " + tr("Hz")).arg(m_file->audioProperties()->sampleRate())); - ap.insert(tr("Channels"), QString("%1").arg(m_file->audioProperties()->channels())); - ap.insert(tr("Bitrate"), QString("%1 " + tr("kbps")).arg(m_file->audioProperties()->bitrate())); - ap.insert(tr("File size"), QString("%1 "+tr("KB")).arg(m_file->length()/1024)); - } - return ap; + delete m_file; + delete m_stream; } -QList<TagModel* > VorbisMetaDataModel::tags() +QList<TagModel* > VorbisMetaDataModel::tags() const { return m_tags; } -QPixmap VorbisMetaDataModel::cover() +QPixmap VorbisMetaDataModel::cover() const { if(!m_tag || m_tag->isEmpty()) return QPixmap(); @@ -103,7 +86,7 @@ QPixmap VorbisMetaDataModel::cover() return QPixmap(); } -ulong VorbisMetaDataModel::readPictureBlockField(QByteArray data, int offset) +ulong VorbisMetaDataModel::readPictureBlockField(QByteArray data, int offset) const { return (((uchar)data.data()[offset] & 0xff) << 24) | (((uchar)data.data()[offset+1] & 0xff) << 16) | diff --git a/src/plugins/Input/vorbis/vorbismetadatamodel.h b/src/plugins/Input/vorbis/vorbismetadatamodel.h index a21d3d503..fc63a2cb3 100644 --- a/src/plugins/Input/vorbis/vorbismetadatamodel.h +++ b/src/plugins/Input/vorbis/vorbismetadatamodel.h @@ -24,6 +24,8 @@ #include <qmmp/metadatamodel.h> #include <taglib/vorbisfile.h> #include <taglib/xiphcomment.h> +#include <taglib/tfilestream.h> +#include <taglib/tfilestream.h> class VorbisCommentModel; @@ -31,20 +33,21 @@ class VorbisMetaDataModel : public MetaDataModel { Q_OBJECT public: - VorbisMetaDataModel(const QString &path, QObject *parent); + VorbisMetaDataModel(const QString &path, bool readOnly, QObject *parent); ~VorbisMetaDataModel(); friend class VorbisCommentModel; - QHash<QString, QString> audioProperties(); - QList<TagModel* > tags(); - QPixmap cover(); + QList<TagModel* > tags() const override; + QPixmap cover() const override; private: + ulong readPictureBlockField(QByteArray data, int offset) const; + QString m_path; TagLib::Ogg::Vorbis::File *m_file; TagLib::Ogg::XiphComment *m_tag; QList<TagModel* > m_tags; - ulong readPictureBlockField(QByteArray data, int offset); + TagLib::FileStream *m_stream; }; class VorbisCommentModel : public TagModel |
