diff options
author | Matthew Hoops | 2012-09-07 14:47:30 -0400 |
---|---|---|
committer | Matthew Hoops | 2012-09-07 14:47:30 -0400 |
commit | c882ef9dabbb69e569bd5861712cf4117794a9ae (patch) | |
tree | 84f9efb70ec8ab2e04515c0f0e7e7dc077443d7e | |
parent | 342cc027c4d360590753a129f0c622fc1757cc0e (diff) | |
download | scummvm-rg350-c882ef9dabbb69e569bd5861712cf4117794a9ae.tar.gz scummvm-rg350-c882ef9dabbb69e569bd5861712cf4117794a9ae.tar.bz2 scummvm-rg350-c882ef9dabbb69e569bd5861712cf4117794a9ae.zip |
AUDIO: Make MidiParser_QT::loadMusic() detect the file type
-rw-r--r-- | audio/midiparser_qt.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/audio/midiparser_qt.cpp b/audio/midiparser_qt.cpp index 5500c28e44..d6440508df 100644 --- a/audio/midiparser_qt.cpp +++ b/audio/midiparser_qt.cpp @@ -25,10 +25,19 @@ #include "common/memstream.h" bool MidiParser_QT::loadMusic(byte *data, uint32 size) { - // Assume that this is a Tune and not a QuickTime container + if (size < 8) + return false; + Common::SeekableReadStream *stream = new Common::MemoryReadStream(data, size, DisposeAfterUse::NO); - if (!loadFromTune(stream)) { + // Attempt to detect what format we have + bool result; + if (READ_BE_UINT32(data + 4) == MKTAG('m', 'u', 's', 'i')) + result = loadFromTune(stream); + else + result = loadFromContainerStream(stream); + + if (!result) { delete stream; return false; } |