From d2f101da03aa58c354f42d217685019474329b44 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Fri, 25 Oct 2013 04:58:01 +0000 Subject: wildmidi: added delayed initialization git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3824 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Input/wildmidi/decoderwildmidifactory.cpp | 14 +++++++++----- src/plugins/Input/wildmidi/decoderwildmidifactory.h | 7 +++---- src/plugins/Input/wildmidi/wildmidihelper.cpp | 4 +--- 3 files changed, 13 insertions(+), 12 deletions(-) (limited to 'src/plugins') 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 - #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 #include #include - #include #include #include #include - 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 #include #include 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; } -- cgit v1.2.3-13-gbd6f