aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/wildmidi/decoderwildmidifactory.cpp')
-rw-r--r--src/plugins/Input/wildmidi/decoderwildmidifactory.cpp14
1 files changed, 9 insertions, 5 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;
}