[Scummvm-cvs-logs] SF.net SVN: scummvm:[43127] scummvm/branches/branch-1-0-0/sound/ midiparser_xmidi.cpp
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sat Aug 8 15:59:47 CEST 2009
Revision: 43127
http://scummvm.svn.sourceforge.net/scummvm/?rev=43127&view=rev
Author: lordhoto
Date: 2009-08-08 13:59:47 +0000 (Sat, 08 Aug 2009)
Log Message:
-----------
Backport of r43126: "Fix XMIDI looping implementation. Now for example the music in the ferret village of ITE plays fine."
Modified Paths:
--------------
scummvm/branches/branch-1-0-0/sound/midiparser_xmidi.cpp
Modified: scummvm/branches/branch-1-0-0/sound/midiparser_xmidi.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/sound/midiparser_xmidi.cpp 2009-08-08 13:57:21 UTC (rev 43126)
+++ scummvm/branches/branch-1-0-0/sound/midiparser_xmidi.cpp 2009-08-08 13:59:47 UTC (rev 43127)
@@ -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