[Scummvm-cvs-logs] SF.net SVN: scummvm:[43126] scummvm/trunk/sound/midiparser_xmidi.cpp
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sat Aug 8 15:57:22 CEST 2009
Revision: 43126
http://scummvm.svn.sourceforge.net/scummvm/?rev=43126&view=rev
Author: lordhoto
Date: 2009-08-08 13:57:21 +0000 (Sat, 08 Aug 2009)
Log Message:
-----------
Fix XMIDI looping implementation. Now for example the music in the ferret village of ITE plays fine.
Modified Paths:
--------------
scummvm/trunk/sound/midiparser_xmidi.cpp
Modified: scummvm/trunk/sound/midiparser_xmidi.cpp
===================================================================
--- scummvm/trunk/sound/midiparser_xmidi.cpp 2009-08-08 12:31:49 UTC (rev 43125)
+++ scummvm/trunk/sound/midiparser_xmidi.cpp 2009-08-08 13:57:21 UTC (rev 43126)
@@ -115,6 +115,8 @@
byte *pos = _position._play_pos;
if (_loopCount < ARRAYSIZE(_loop) - 1)
_loopCount++;
+ else
+ warning("XMIDI: Exceeding maximum loop count %d", ARRAYSIZE(_loop));
_loop[_loopCount].pos = pos;
_loop[_loopCount].repeat = info.basic.param2;
@@ -127,11 +129,14 @@
// End the current loop.
_loopCount--;
} else {
- _position._play_pos = _loop[_loopCount].pos;
// Repeat 0 means "loop forever".
if (_loop[_loopCount].repeat) {
if (--_loop[_loopCount].repeat == 0)
_loopCount--;
+ else
+ _position._play_pos = _loop[_loopCount].pos;
+ } else {
+ _position._play_pos = _loop[_loopCount].pos;
}
}
}
@@ -155,7 +160,6 @@
warning("Unsupported XMIDI controller %d (0x%2x)",
info.basic.param1, info.basic.param1);
}
- break;
}
// Should we really keep passing the XMIDI controller events to
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list