aboutsummaryrefslogtreecommitdiff
path: root/simon
diff options
context:
space:
mode:
Diffstat (limited to 'simon')
-rw-r--r--simon/midi.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/simon/midi.cpp b/simon/midi.cpp
index 02cf6aec8a..9159f6f993 100644
--- a/simon/midi.cpp
+++ b/simon/midi.cpp
@@ -258,8 +258,8 @@ void MidiPlayer::clearConstructs() {
}
void MidiPlayer::clearConstructs (MusicInfo &info) {
+ int i;
if (info.num_songs > 0) {
- byte i;
for (i = 0; i < info.num_songs; ++i)
free (info.songs [i]);
}
@@ -267,6 +267,12 @@ void MidiPlayer::clearConstructs (MusicInfo &info) {
free (info.data);
if (info.parser)
delete info.parser;
+ if (_driver) {
+ for (i = 0; i < 16; ++i) {
+ if (info.in_use[i])
+ _driver->send (0x007BB0 | i); // All Notes Off
+ }
+ }
info.clear();
}