diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-10-25 04:58:01 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-10-25 04:58:01 +0000 |
| commit | d2f101da03aa58c354f42d217685019474329b44 (patch) | |
| tree | 0b471c5c905a5ab97b942260a5b33ef9c921117d | |
| parent | 78015dd4f074f53bd08bedd877b0f0737539ccc9 (diff) | |
| download | qmmp-d2f101da03aa58c354f42d217685019474329b44.tar.gz qmmp-d2f101da03aa58c354f42d217685019474329b44.tar.bz2 qmmp-d2f101da03aa58c354f42d217685019474329b44.zip | |
wildmidi: added delayed initialization
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3824 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/plugins/Input/wildmidi/decoderwildmidifactory.cpp | 14 | ||||
| -rw-r--r-- | src/plugins/Input/wildmidi/decoderwildmidifactory.h | 7 | ||||
| -rw-r--r-- | src/plugins/Input/wildmidi/wildmidihelper.cpp | 4 |
3 files changed, 13 insertions, 12 deletions
diff --git a/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp b/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp index 02a060ea9..3ea14b670 100644 --- a/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp +++ b/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp @@ -19,7 +19,6 @@ ***************************************************************************/ #include <QtGui> - #include "wildmidihelper.h" #include "decoder_wildmidi.h" #include "settingsdialog.h" @@ -27,14 +26,20 @@ // DecoderWildMidiFactory +DecoderWildMidiFactory::DecoderWildMidiFactory() +{ + new WildMidiHelper(qApp); +} + bool DecoderWildMidiFactory::supports(const QString &source) const { - return (source.right(4).toLower() == ".mid"); + return source.endsWith(".mid", Qt::CaseInsensitive); } -bool DecoderWildMidiFactory::canDecode(QIODevice *) const +bool DecoderWildMidiFactory::canDecode(QIODevice *input) const { - return false; + char buf[4]; + return (input->peek(buf, 4) == 4 && !memcmp(buf, "MThd", 4)); } const DecoderProperties DecoderWildMidiFactory::properties() const @@ -49,7 +54,6 @@ const DecoderProperties DecoderWildMidiFactory::properties() const properties.hasSettings = true; properties.noInput = true; properties.protocols << "file"; - WildMidiHelper::instance()->initialize(); return properties; } diff --git a/src/plugins/Input/wildmidi/decoderwildmidifactory.h b/src/plugins/Input/wildmidi/decoderwildmidifactory.h index a962a5e57..60d0d6f47 100644 --- a/src/plugins/Input/wildmidi/decoderwildmidifactory.h +++ b/src/plugins/Input/wildmidi/decoderwildmidifactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008 by Ilya Kotov * + * Copyright (C) 2008-2013 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -24,19 +24,18 @@ #include <QString> #include <QIODevice> #include <QWidget> - #include <qmmp/decoder.h> #include <qmmp/output.h> #include <qmmp/decoderfactory.h> #include <qmmp/fileinfo.h> - class DecoderWildMidiFactory : public QObject, DecoderFactory { Q_OBJECT - Q_INTERFACES(DecoderFactory); + Q_INTERFACES(DecoderFactory) public: + DecoderWildMidiFactory(); bool supports(const QString &source) const; bool canDecode(QIODevice *input) const; const DecoderProperties properties() const; diff --git a/src/plugins/Input/wildmidi/wildmidihelper.cpp b/src/plugins/Input/wildmidi/wildmidihelper.cpp index 40faa11a2..720295878 100644 --- a/src/plugins/Input/wildmidi/wildmidihelper.cpp +++ b/src/plugins/Input/wildmidi/wildmidihelper.cpp @@ -18,7 +18,6 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#include <QApplication> #include <QSettings> #include <QFile> extern "C"{ @@ -34,6 +33,7 @@ WildMidiHelper::WildMidiHelper(QObject *parent) : { m_inited = false; m_sample_rate = 0; + m_instance = this; } WildMidiHelper::~WildMidiHelper() @@ -131,7 +131,5 @@ quint32 WildMidiHelper::sampleRate() WildMidiHelper *WildMidiHelper::instance() { - if(!m_instance) - m_instance = new WildMidiHelper(qApp); return m_instance; } |
