[Scummvm-cvs-logs] CVS: scummvm/sound midiparser.cpp,1.30,1.31

Torbjörn Andersson eriktorbjorn at users.sourceforge.net
Tue Oct 11 10:48:43 CEST 2005


Update of /cvsroot/scummvm/scummvm/sound
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30346

Modified Files:
	midiparser.cpp 
Log Message:
Moved the pitch wheel centering to unloadMusic() instead, since having it
in allNotesOff() broke the Kyra music. I have no idea why.


Index: midiparser.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/midiparser.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- midiparser.cpp	10 Oct 2005 09:31:27 -0000	1.30
+++ midiparser.cpp	11 Oct 2005 17:48:16 -0000	1.31
@@ -257,13 +257,10 @@
 	_hanging_notes_count = 0;
 
 	// To be sure, send an "All Note Off" event (but not all MIDI devices
-	// support this...). We also center the pitch wheel. Perhaps we should
-	// reset all controllers, but at the time of writing that isn't
-	// supported on all our MIDI drivers.
+	// support this...).
 
 	for (i = 0; i < 16; ++i) {
 		_driver->send(0x007BB0 | i); // All notes off
-		_driver->send(0x4000E0 | i); // Center the pitch wheel
 	}
 
 	memset(_active_notes, 0, sizeof(_active_notes));
@@ -398,4 +395,13 @@
 	_num_tracks = 0;
 	_active_track = 255;
 	_abort_parse = true;
+
+	// Center the pitch wheels in preparation for the next piece of music.
+	// It's not safe to do this from within allNotesOff().
+
+	if (_driver) {
+		for (int i = 0; i < 16; ++i) {
+			_driver->send(0x4000E0 | i); // Center the pitch wheel
+		}
+	}
 }





More information about the Scummvm-git-logs mailing list