From 5ec9e0fa5e4f91b545994ff80fa50c15a11a2491 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 3 Nov 2019 17:48:36 +0100 Subject: [PATCH] Virtual-keyboard: momentary pedal (no toggle) --- gtk2_ardour/pianokeyboard.cc | 22 +++++++++------------- gtk2_ardour/pianokeyboard.h | 1 - 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/gtk2_ardour/pianokeyboard.cc b/gtk2_ardour/pianokeyboard.cc index d7635cf3c6..9c56ae8a0e 100644 --- a/gtk2_ardour/pianokeyboard.cc +++ b/gtk2_ardour/pianokeyboard.cc @@ -556,7 +556,7 @@ APianoKeyboard::on_key_press_event (GdkEventKey* event) return false; } if (note == 129) { - toggle_sustain (); + sustain_press (); return true; } @@ -582,14 +582,20 @@ APianoKeyboard::on_key_release_event (GdkEventKey* event) return false; } - if (key_binding (key) == 128) { + int note = key_binding (key); + + if (note == 128) { Rest (); /* EMIT SIGNAL */ return true; } + if (note == 129) { + sustain_release (); + return true; + } std::map::const_iterator kv = _note_stack.find (key); if (kv == _note_stack.end ()) { - return key_binding (key) != -1; + return note != -1; } release_key (kv->second); @@ -926,16 +932,6 @@ APianoKeyboard::set_velocities (int min_vel, int max_vel, int key_vel) } } -void -APianoKeyboard::toggle_sustain () -{ - if (_sustain_new_notes) { - sustain_release (); - } else { - sustain_press (); - } -} - void APianoKeyboard::sustain_press () { diff --git a/gtk2_ardour/pianokeyboard.h b/gtk2_ardour/pianokeyboard.h index 56c2d2cdf1..2b12befe73 100644 --- a/gtk2_ardour/pianokeyboard.h +++ b/gtk2_ardour/pianokeyboard.h @@ -79,7 +79,6 @@ private: void queue_note_draw (int note); - void toggle_sustain (); void press_key (int key, int vel); void release_key (int key); void stop_sustained_notes ();