From 49c8450450840710d159c5a5c83f1f642222cd0f Mon Sep 17 00:00:00 2001 From: ceski <56656010+ceski-1@users.noreply.github.com> Date: Fri, 12 May 2023 23:39:12 -0700 Subject: [PATCH] Add SysEx check for MIDI instrument fallback --- src/i_winmusic.c | 2 +- src/midifallback.c | 8 ++++++-- src/midifallback.h | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) 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);