diff --git a/src/i_winmusic.c b/src/i_winmusic.c index b8421bab..7890a7c7 100644 --- a/src/i_winmusic.c +++ b/src/i_winmusic.c @@ -823,7 +823,7 @@ static boolean AddToBuffer(unsigned int delta_time, const midi_event_t *event, if (use_fallback) { - MIDI_CheckFallback(event, &fallback); + MIDI_CheckFallback(event, &fallback, true); } switch ((int)event->event_type) diff --git a/src/midifallback.c b/src/midifallback.c index a9b4bf75..6f2d1ffd 100644 --- a/src/midifallback.c +++ b/src/midifallback.c @@ -144,7 +144,8 @@ static boolean GetProgramFallback(byte idx, byte program, return false; } -void MIDI_CheckFallback(const midi_event_t *event, midi_fallback_t *fallback) +void MIDI_CheckFallback(const midi_event_t *event, midi_fallback_t *fallback, + boolean allow_sysex) { byte idx; byte program; @@ -152,7 +153,10 @@ void MIDI_CheckFallback(const midi_event_t *event, midi_fallback_t *fallback) switch ((int)event->event_type) { case MIDI_EVENT_SYSEX: - UpdateDrumMap(event->data.sysex.data, event->data.sysex.length); + if (allow_sysex) + { + UpdateDrumMap(event->data.sysex.data, event->data.sysex.length); + } break; case MIDI_EVENT_CONTROLLER: diff --git a/src/midifallback.h b/src/midifallback.h index 840311a1..dd96ff74 100644 --- a/src/midifallback.h +++ b/src/midifallback.h @@ -35,7 +35,8 @@ typedef struct midi_fallback_t byte value; } midi_fallback_t; -void MIDI_CheckFallback(const midi_event_t *event, midi_fallback_t *fallback); +void MIDI_CheckFallback(const midi_event_t *event, midi_fallback_t *fallback, + boolean allow_sysex); void MIDI_ResetFallback(void); void MIDI_InitFallback(void);