aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-10-25 04:58:01 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-10-25 04:58:01 +0000
commitd2f101da03aa58c354f42d217685019474329b44 (patch)
tree0b471c5c905a5ab97b942260a5b33ef9c921117d /src/plugins
parent78015dd4f074f53bd08bedd877b0f0737539ccc9 (diff)
downloadqmmp-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
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/Input/wildmidi/decoderwildmidifactory.cpp14
-rw-r--r--src/plugins/Input/wildmidi/decoderwildmidifactory.h7
-rw-r--r--src/plugins/Input/wildmidi/wildmidihelper.cpp4
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;
}