summaryrefslogtreecommitdiffstats
path: root/src/server/ControlBindings.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-08-18 01:16:43 -0400
committerDavid Robillard <d@drobilla.net>2022-08-18 01:16:43 -0400
commit86a914ed7bf5316cad6dcac5f69cc3b300b40a23 (patch)
treea21951bd3115520a06c93cc3c86c82b32b35a884 /src/server/ControlBindings.cpp
parent1bf1ab5c898f6e6d6e878a716540d0049f5cb206 (diff)
downloadingen-86a914ed7bf5316cad6dcac5f69cc3b300b40a23.tar.gz
ingen-86a914ed7bf5316cad6dcac5f69cc3b300b40a23.tar.bz2
ingen-86a914ed7bf5316cad6dcac5f69cc3b300b40a23.zip
Fix control binding value computation
Diffstat (limited to 'src/server/ControlBindings.cpp')
-rw-r--r--src/server/ControlBindings.cpp13
1 files changed, 8 insertions, 5 deletions
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<int8_t>(buf[2]);
+ value = buf[2];
return {Type::MIDI_CC, static_cast<int8_t>(buf[1])};
case LV2_MIDI_MSG_BENDER:
- value = (static_cast<int8_t>(buf[2]) << 7) + static_cast<int8_t>(buf[1]);
+ value = (buf[2] << 7U) + buf[1];
return {Type::MIDI_BENDER};
case LV2_MIDI_MSG_CHANNEL_PRESSURE:
- value = static_cast<int8_t>(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<int8_t>(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 {};
}