[Scummvm-cvs-logs] CVS: scummvm/sound midiparser.h,1.7,1.8 midiparser_xmidi.cpp,1.6,1.7

Jamieson Christian jamieson630 at users.sourceforge.net
Mon May 19 20:28:06 CEST 2003


Update of /cvsroot/scummvm/scummvm/sound
In directory sc8-pr-cvs1:/tmp/cvs-serv3113/scummvm/sound

Modified Files:
	midiparser.h midiparser_xmidi.cpp 
Log Message:
Fixed regression in XMIDI parsing.

Index: midiparser.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/midiparser.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- midiparser.h	19 May 2003 19:24:22 -0000	1.7
+++ midiparser.h	20 May 2003 03:27:45 -0000	1.8
@@ -70,8 +70,8 @@
 
 protected:
 	static uint32 readVLQ (byte * &data);
-	void resetTracking();
-	void allNotesOff();
+	virtual void resetTracking();
+	virtual void allNotesOff();
 	virtual void parseNextEvent (EventInfo &info) = 0;
 
 	// Multi-byte read helpers

Index: midiparser_xmidi.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/midiparser_xmidi.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- midiparser_xmidi.cpp	19 May 2003 19:24:22 -0000	1.6
+++ midiparser_xmidi.cpp	20 May 2003 03:27:45 -0000	1.7
@@ -46,6 +46,8 @@
 
 protected:
 	uint32 readVLQ2 (byte * &data);
+	void allNotesOff();
+	void resetTracking();
 	void parseNextEvent (EventInfo &info);
 
 public:
@@ -330,6 +332,20 @@
 	_data = 0;
 	_num_tracks = 0;
 	_active_track = 255;
+}
+
+void MidiParser_XMIDI::allNotesOff() {
+	MidiParser::allNotesOff();
+
+	// Reset the list of active notes.
+	int i;
+	for (i = 0; i < ARRAYSIZE(_notes_cache); ++i)
+		_notes_cache[i].off_time = 0;
+}
+
+void MidiParser_XMIDI::resetTracking() {
+	MidiParser::resetTracking();
+	_inserted_delta = 0;
 }
 
 MidiParser *MidiParser::createParser_XMIDI() { return new MidiParser_XMIDI; }





More information about the Scummvm-git-logs mailing list