From 86a914ed7bf5316cad6dcac5f69cc3b300b40a23 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 18 Aug 2022 01:16:43 -0400 Subject: Fix control binding value computation --- src/server/ControlBindings.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/server/ControlBindings.cpp') diff --git a/src/server/ControlBindings.cpp b/src/server/ControlBindings.cpp index 8ae4f7c2..60684440 100644 --- a/src/server/ControlBindings.cpp +++ b/src/server/ControlBindings.cpp @@ -124,17 +124,20 @@ ControlBindings::midi_event_key(uint16_t, const uint8_t* buf, uint16_t& value) { switch (lv2_midi_message_type(buf)) { case LV2_MIDI_MSG_CONTROLLER: - value = static_cast(buf[2]); + value = buf[2]; return {Type::MIDI_CC, static_cast(buf[1])}; case LV2_MIDI_MSG_BENDER: - value = (static_cast(buf[2]) << 7) + static_cast(buf[1]); + value = (buf[2] << 7U) + buf[1]; return {Type::MIDI_BENDER}; case LV2_MIDI_MSG_CHANNEL_PRESSURE: - value = static_cast(buf[1]); + value = buf[1]; return {Type::MIDI_CHANNEL_PRESSURE}; case LV2_MIDI_MSG_NOTE_ON: - value = 1.0f; - return {Type::MIDI_NOTE, static_cast(buf[1])}; + value = 1; + return {Type::MIDI_NOTE, buf[1]}; + case LV2_MIDI_MSG_NOTE_OFF: + value = 0; + return {Type::MIDI_NOTE, buf[1]}; default: return {}; } -- cgit v1.2.1