|
|
@@ -136,13 +136,15 @@ void EngineEvent::fillFromMidiData(const uint8_t size, const uint8_t* const data |
|
|
|
|
|
|
|
if (midiStatus == MIDI_STATUS_CONTROL_CHANGE) |
|
|
|
{ |
|
|
|
CARLA_SAFE_ASSERT_RETURN(size >= 2,); |
|
|
|
|
|
|
|
type = kEngineEventTypeControl; |
|
|
|
|
|
|
|
const uint8_t midiControl(data[1]); |
|
|
|
|
|
|
|
if (MIDI_IS_CONTROL_BANK_SELECT(midiControl)) |
|
|
|
{ |
|
|
|
CARLA_SAFE_ASSERT_INT(size == 3, size); |
|
|
|
CARLA_SAFE_ASSERT_RETURN(size >= 3,); |
|
|
|
|
|
|
|
const uint8_t midiBank(data[2]); |
|
|
|
|
|
|
@@ -152,23 +154,19 @@ void EngineEvent::fillFromMidiData(const uint8_t size, const uint8_t* const data |
|
|
|
} |
|
|
|
else if (midiControl == MIDI_CONTROL_ALL_SOUND_OFF) |
|
|
|
{ |
|
|
|
CARLA_SAFE_ASSERT_INT(size == 2, size); |
|
|
|
|
|
|
|
ctrl.type = kEngineControlEventTypeAllSoundOff; |
|
|
|
ctrl.param = 0; |
|
|
|
ctrl.value = 0.0f; |
|
|
|
} |
|
|
|
else if (midiControl == MIDI_CONTROL_ALL_NOTES_OFF) |
|
|
|
{ |
|
|
|
CARLA_SAFE_ASSERT_INT(size == 2, size); |
|
|
|
|
|
|
|
ctrl.type = kEngineControlEventTypeAllNotesOff; |
|
|
|
ctrl.param = 0; |
|
|
|
ctrl.value = 0.0f; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
CARLA_SAFE_ASSERT_INT2(size == 3, size, midiControl); |
|
|
|
CARLA_SAFE_ASSERT_RETURN(size >= 3,); |
|
|
|
|
|
|
|
const uint8_t midiValue(carla_fixValue<uint8_t>(0, 127, data[2])); // ensures 0.0<->1.0 value range |
|
|
|
|
|
|
@@ -179,7 +177,7 @@ void EngineEvent::fillFromMidiData(const uint8_t size, const uint8_t* const data |
|
|
|
} |
|
|
|
else if (midiStatus == MIDI_STATUS_PROGRAM_CHANGE) |
|
|
|
{ |
|
|
|
CARLA_SAFE_ASSERT_INT2(size == 2, size, data[1]); |
|
|
|
CARLA_SAFE_ASSERT_RETURN(size >= 2,); |
|
|
|
|
|
|
|
type = kEngineEventTypeControl; |
|
|
|
|
|
|
|