aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sound/midiparser.h2
-rw-r--r--sound/midiparser_smf.cpp9
-rw-r--r--sound/midiparser_xmidi.cpp4
3 files changed, 13 insertions, 2 deletions
diff --git a/sound/midiparser.h b/sound/midiparser.h
index c46c5789d6..3a87bf3ce0 100644
--- a/sound/midiparser.h
+++ b/sound/midiparser.h
@@ -34,6 +34,8 @@ protected:
uint32 _timer_rate;
public:
+ virtual ~MidiParser() { }
+
virtual bool loadMusic (byte *data, uint32 size) = 0;
virtual void unloadMusic() = 0;
diff --git a/sound/midiparser_smf.cpp b/sound/midiparser_smf.cpp
index 5c72ceb21b..f1a7df8f2b 100644
--- a/sound/midiparser_smf.cpp
+++ b/sound/midiparser_smf.cpp
@@ -68,6 +68,8 @@ protected:
void allNotesOff();
public:
+ ~MidiParser_SMF();
+
bool loadMusic (byte *data, uint32 size);
void unloadMusic();
@@ -90,6 +92,11 @@ public:
//
//////////////////////////////////////////////////
+MidiParser_SMF::~MidiParser_SMF() {
+ if (_buffer)
+ free (_buffer);
+}
+
// This is the conventional (i.e. SMF) variable length quantity
uint32 MidiParser_SMF::readVLQ (byte * &data) {
byte str;
@@ -481,7 +488,7 @@ void MidiParser_SMF::jumpToTick (uint32 tick) {
_play_time = 0;
_last_event_time = 0;
if (tick > 0) {
- printf ("jumpToTick (%ld) not completely implemented!\n", tick);
+ printf ("jumpToTick (%ld) not completely implemented!\n", (long) tick);
playToTime (tick * _psec_per_tick - 1, false);
}
allNotesOff();
diff --git a/sound/midiparser_xmidi.cpp b/sound/midiparser_xmidi.cpp
index 6e7a40f295..91dbc7b619 100644
--- a/sound/midiparser_xmidi.cpp
+++ b/sound/midiparser_xmidi.cpp
@@ -70,6 +70,8 @@ protected:
void playToTime (uint32 psec, bool transmit);
public:
+ ~MidiParser_XMIDI() { }
+
bool loadMusic (byte *data, uint32 size);
void unloadMusic();
@@ -458,7 +460,7 @@ void MidiParser_XMIDI::jumpToTick (uint32 tick) {
_play_time = 0;
_last_event_time = 0;
if (tick > 0) {
- printf ("jumpToTick (%ld) not completely implemented!\n", tick);
+ printf ("jumpToTick (%ld) not completely implemented!\n", (long) tick);
playToTime (tick * MICROSECONDS_PER_TICK - 1, false);
}
}