[Scummvm-cvs-logs] CVS: scummvm/scumm imuse.cpp,1.74,1.75

Jamieson Christian jamieson630 at users.sourceforge.net
Sun Nov 10 05:45:16 CET 2002


Update of /cvsroot/scummvm/scummvm/scumm
In directory usw-pr-cvs1:/tmp/cvs-serv27972/scummvm/scumm

Modified Files:
	imuse.cpp 
Log Message:
Fixed IMuseGM device state trackers to prevent inappropriate dropped messages.

Index: imuse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse.cpp,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -d -r1.74 -r1.75
--- imuse.cpp	9 Nov 2002 16:55:16 -0000	1.74
+++ imuse.cpp	10 Nov 2002 13:44:53 -0000	1.75
@@ -690,7 +690,7 @@
 	void midiInit();
 
 public:
-	IMuseGM(MidiDriver *midi) { _md = midi; }
+	IMuseGM(MidiDriver *midi);
 	void uninit();
 	void init(IMuseInternal *eng, OSystem *os);
 	void update_pris();
@@ -4643,6 +4643,28 @@
 //********************************************
 //** GENERAL MIDI PART OF IMUSE STARTS HERE **
 //********************************************
+
+IMuseGM::IMuseGM (MidiDriver *midi)
+{
+	int i;
+
+	// Initialize our "last" trackers with impossible
+	// values, so that they don't accidentally match
+	// any changes that are sent (which would cause
+	// the changes to be ignored).
+	for (i = 0; i < 16; ++i) {
+		_midi_program_last [i] =
+		_midi_pitchbend_factor_last [i] =
+		_midi_volume_last [i] =
+		_midi_modwheel_last [i] =
+		_midi_effectlevel_last [i] =
+		_midi_chorus_last [i] = 255;
+		_midi_pan_last [i] = 127;
+		_midi_pitchbend_last [i] = (int16) -1;
+		_midi_pedal_last [i] = false;
+	}
+	_md = midi;
+}
 
 void IMuseGM::midiPitchBend(byte chan, int16 pitchbend)
 {





More information about the Scummvm-git-logs mailing list