aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-08-04 21:46:14 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-08-04 21:46:14 +0000
commit89e33b8d34bfa667e69a3422b9b73806d83e53bf (patch)
tree00434d6874843504f6d5a4fcb30d303c8845a757 /src
parentc40c1ba38df9efce07a9f8372e6d357ff3c5d9b6 (diff)
downloadqmmp-89e33b8d34bfa667e69a3422b9b73806d83e53bf.tar.gz
qmmp-89e33b8d34bfa667e69a3422b9b73806d83e53bf.tar.bz2
qmmp-89e33b8d34bfa667e69a3422b9b73806d83e53bf.zip
mpc: fixed recent api support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8224 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
-rw-r--r--src/plugins/Input/Input.pro2
-rw-r--r--src/plugins/Input/mpc/decodermpcfactory.cpp4
-rw-r--r--src/plugins/Input/mpc/decodermpcfactory.h2
-rw-r--r--src/plugins/Input/mpc/mpcmetadatamodel.cpp23
-rw-r--r--src/plugins/Input/mpc/mpcmetadatamodel.h7
5 files changed, 14 insertions, 24 deletions
diff --git a/src/plugins/Input/Input.pro b/src/plugins/Input/Input.pro
index 0c16b04a1..6ca225333 100644
--- a/src/plugins/Input/Input.pro
+++ b/src/plugins/Input/Input.pro
@@ -12,7 +12,7 @@ contains(CONFIG, FLAC_PLUGIN){
}
contains(CONFIG, MUSEPACK_PLUGIN){
-# SUBDIRS += mpc
+ SUBDIRS += mpc
}
contains(CONFIG, MODPLUG_PLUGIN){
diff --git a/src/plugins/Input/mpc/decodermpcfactory.cpp b/src/plugins/Input/mpc/decodermpcfactory.cpp
index d0664d249..54a3c9e24 100644
--- a/src/plugins/Input/mpc/decodermpcfactory.cpp
+++ b/src/plugins/Input/mpc/decodermpcfactory.cpp
@@ -104,9 +104,9 @@ QList<TrackInfo *> DecoderMPCFactory::createPlayList(const QString &path, TrackI
return QList<TrackInfo*>() << info;
}
-MetaDataModel* DecoderMPCFactory::createMetaDataModel(const QString &path, QObject *parent)
+MetaDataModel* DecoderMPCFactory::createMetaDataModel(const QString &path, bool readOnly, QObject *parent)
{
- return new MPCMetaDataModel(path, parent);
+ return new MPCMetaDataModel(path, readOnly, parent);
}
void DecoderMPCFactory::showSettings(QWidget *)
diff --git a/src/plugins/Input/mpc/decodermpcfactory.h b/src/plugins/Input/mpc/decodermpcfactory.h
index 3941166bf..facaa4a9d 100644
--- a/src/plugins/Input/mpc/decodermpcfactory.h
+++ b/src/plugins/Input/mpc/decodermpcfactory.h
@@ -33,7 +33,7 @@ public:
DecoderProperties properties() const;
Decoder *create(const QString &url, QIODevice *i);
QList<TrackInfo *> createPlayList(const QString &path, TrackInfo::Parts parts, QStringList *);
- MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0);
+ MetaDataModel* createMetaDataModel(const QString &path, bool readOnly = true, QObject *parent = 0);
void showSettings(QWidget *parent);
void showAbout(QWidget *parent);
QString translation() const;
diff --git a/src/plugins/Input/mpc/mpcmetadatamodel.cpp b/src/plugins/Input/mpc/mpcmetadatamodel.cpp
index 3b58b16f4..74daf0b86 100644
--- a/src/plugins/Input/mpc/mpcmetadatamodel.cpp
+++ b/src/plugins/Input/mpc/mpcmetadatamodel.cpp
@@ -24,9 +24,10 @@
#include <taglib/apetag.h>
#include "mpcmetadatamodel.h"
-MPCMetaDataModel::MPCMetaDataModel(const QString &path, QObject *parent) : MetaDataModel(parent)
+MPCMetaDataModel::MPCMetaDataModel(const QString &path, bool readOnly, QObject *parent) : MetaDataModel(readOnly, parent)
{
- m_file = new TagLib::MPC::File (QStringToFileName(path));
+ m_stream = new TagLib::FileStream(QStringToFileName(path), readOnly);
+ m_file = new TagLib::MPC::File(m_stream);
m_tags << new MPCFileTagModel(m_file, TagLib::MPC::File::ID3v1);
m_tags << new MPCFileTagModel(m_file, TagLib::MPC::File::APE);
}
@@ -35,23 +36,11 @@ MPCMetaDataModel::~MPCMetaDataModel()
{
while(!m_tags.isEmpty())
delete m_tags.takeFirst();
- delete m_file;
+ delete m_file;
+ delete m_stream;
}
-QHash<QString, QString> MPCMetaDataModel::audioProperties()
-{
- QHash<QString, QString> ap;
- 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;
-}
-
-QList<TagModel* > MPCMetaDataModel::tags()
+QList<TagModel* > MPCMetaDataModel::tags() const
{
return m_tags;
}
diff --git a/src/plugins/Input/mpc/mpcmetadatamodel.h b/src/plugins/Input/mpc/mpcmetadatamodel.h
index d25a98351..4bc01e6be 100644
--- a/src/plugins/Input/mpc/mpcmetadatamodel.h
+++ b/src/plugins/Input/mpc/mpcmetadatamodel.h
@@ -24,6 +24,7 @@
#include <qmmp/metadatamodel.h>
#include <taglib/tag.h>
#include <taglib/mpcfile.h>
+#include <taglib/tfilestream.h>
class QTextCodec;
@@ -31,14 +32,14 @@ class MPCMetaDataModel : public MetaDataModel
{
Q_OBJECT
public:
- MPCMetaDataModel(const QString &path, QObject *parent);
+ MPCMetaDataModel(const QString &path, bool readOnly, QObject *parent);
~MPCMetaDataModel();
- QHash<QString, QString> audioProperties();
- QList<TagModel* > tags();
+ QList<TagModel* > tags() const override;
private:
QList<TagModel* > m_tags;
TagLib::MPC::File *m_file;
+ TagLib::FileStream *m_stream;
};
class MPCFileTagModel : public TagModel