[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