diff options
Diffstat (limited to 'src/plugins/Input/wildmidi')
| -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; } |
