Add SysEx check for MIDI instrument fallback

This commit is contained in:
ceski 2023-05-12 23:39:12 -07:00
parent 4bc11c4371
commit 49c8450450
3 changed files with 9 additions and 4 deletions

View File

@ -823,7 +823,7 @@ static boolean AddToBuffer(unsigned int delta_time, const midi_event_t *event,
if (use_fallback) if (use_fallback)
{ {
MIDI_CheckFallback(event, &fallback); MIDI_CheckFallback(event, &fallback, true);
} }
switch ((int)event->event_type) switch ((int)event->event_type)

View File

@ -144,7 +144,8 @@ static boolean GetProgramFallback(byte idx, byte program,
return false; 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 idx;
byte program; byte program;
@ -152,7 +153,10 @@ void MIDI_CheckFallback(const midi_event_t *event, midi_fallback_t *fallback)
switch ((int)event->event_type) switch ((int)event->event_type)
{ {
case MIDI_EVENT_SYSEX: 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; break;
case MIDI_EVENT_CONTROLLER: case MIDI_EVENT_CONTROLLER:

View File

@ -35,7 +35,8 @@ typedef struct midi_fallback_t
byte value; byte value;
} midi_fallback_t; } 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_ResetFallback(void);
void MIDI_InitFallback(void); void MIDI_InitFallback(void);