[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