commit 93056dc73cc999d70d12b0175769742791fa2a1c
Author: ceski <56656010+ceski-1@users.noreply.github.com>
AuthorDate: Mon May 15 12:05:05 2023 -0700
Commit: ceski <56656010+ceski-1@users.noreply.github.com>
CommitDate: Tue May 16 09:24:57 2023 -0700
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 261d44f0..c60ba430 100644
--- a/src/i_winmusic.c
+++ b/src/i_winmusic.c
@@ -829,7 +829,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 dcfe9fd4..615d6880 100644
--- a/src/midifallback.c
+++ b/src/midifallback.c
@@ -145,7 +145,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;
@@ -153,7 +154,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 e66b8112..6093b2e6 100644
--- a/src/midifallback.h
+++ b/src/midifallback.h
@@ -37,7 +37,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);