aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-06-20 06:49:57 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-06-20 06:49:57 +0000
commit30dc47d87a4e4ff591c9eef3f6a18308fa6ba532 (patch)
tree342183ff6ad252a674cc959af76955e7eccc17e6 /src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
parent29ba92f7e9ad3d3f397a592f8c2b1770b9fee380 (diff)
downloadqmmp-30dc47d87a4e4ff591c9eef3f6a18308fa6ba532.tar.gz
qmmp-30dc47d87a4e4ff591c9eef3f6a18308fa6ba532.tar.bz2
qmmp-30dc47d87a4e4ff591c9eef3f6a18308fa6ba532.zip
added wildmidi-0.4.0 support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6478 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/wildmidi/decoderwildmidifactory.cpp')
-rw-r--r--src/plugins/Input/wildmidi/decoderwildmidifactory.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp b/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
index 304616135..ecc6c5dd3 100644
--- a/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
+++ b/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp
@@ -35,13 +35,25 @@ DecoderWildMidiFactory::DecoderWildMidiFactory()
bool DecoderWildMidiFactory::supports(const QString &source) const
{
- return source.endsWith(".mid", Qt::CaseInsensitive);
+ foreach(QString filter, properties().filters)
+ {
+ QRegExp regexp(filter, Qt::CaseInsensitive, QRegExp::Wildcard);
+ if (regexp.exactMatch(source))
+ return true;
+ }
+ return false;
}
bool DecoderWildMidiFactory::canDecode(QIODevice *input) const
{
char buf[4];
- return (input->peek(buf, 4) == 4 && !memcmp(buf, "MThd", 4));
+ if(input->peek(buf, 4) != 4)
+ return false;
+#if defined(LIBWILDMIDI_VERSION) && (LIBWILDMIDI_VERSION >= 0x000400)
+ return !memcmp(buf, "MThd", 4) || !memcmp(buf, "MUS", 3) || !memcmp(buf, "FORM", 4);
+#else
+ return !memcmp(buf, "MThd", 4);
+#endif
}
const DecoderProperties DecoderWildMidiFactory::properties() const
@@ -49,6 +61,9 @@ const DecoderProperties DecoderWildMidiFactory::properties() const
DecoderProperties properties;
properties.name = tr("WildMidi Plugin");
properties.filters << "*.mid";
+#if defined(LIBWILDMIDI_VERSION) && (LIBWILDMIDI_VERSION >= 0x000400)
+ properties.filters << "*.mus" << "*.xmi";
+#endif
properties.description = tr("Midi Files");
//properties.contentType = ;
properties.shortName = "wildmidi";