diff options
author | Robin Gareus <robin@gareus.org> | 2017-01-19 19:12:25 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-01-19 19:12:25 +0100 |
commit | e35f11e515bac6ea0d76684badef28408fc0d0e5 (patch) | |
tree | 036d977f5dab099bdeaed29538bb8cd1787100c1 /gtk2_ardour/ardour_ui2.cc | |
parent | dc11651694b97b5a4c7e3b57ca7cd5c019714166 (diff) |
Allow to change metronome level via mouse-wheel
Diffstat (limited to 'gtk2_ardour/ardour_ui2.cc')
-rw-r--r-- | gtk2_ardour/ardour_ui2.cc | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc index 4c370730e0..48a5ea53a7 100644 --- a/gtk2_ardour/ardour_ui2.cc +++ b/gtk2_ardour/ardour_ui2.cc @@ -84,7 +84,7 @@ ARDOUR_UI::setup_tooltips () set_tip (auto_return_button, _("Return to last playback start when stopped")); set_tip (follow_edits_button, _("Playhead follows Range tool clicks, and Range selections")); set_tip (auto_input_button, _("Track Input Monitoring automatically follows transport state")); - set_tip (click_button, _("Enable/Disable audio click")); + set_tip (click_button, _("Enable/Disable metronome\n\nRight-click to access preferences\nMouse-wheel to modify level")); set_tip (solo_alert_button, _("When active, something is soloed.\nClick to de-solo everything")); set_tip (auditioning_alert_button, _("When active, auditioning is taking place.\nClick to stop the audition")); set_tip (feedback_alert_button, _("When active, there is a feedback loop.")); @@ -328,6 +328,7 @@ ARDOUR_UI::setup_transport () act = ActionManager::get_action ("Transport", "ToggleClick"); click_button.set_related_action (act); click_button.signal_button_press_event().connect (sigc::mem_fun (*this, &ARDOUR_UI::click_button_clicked), false); + click_button.signal_scroll_event().connect (sigc::mem_fun (*this, &ARDOUR_UI::click_button_scroll), false); act = ActionManager::get_action (X_("Transport"), X_("Stop")); stop_button.set_related_action (act); @@ -904,6 +905,29 @@ ARDOUR_UI::click_button_clicked (GdkEventButton* ev) } bool +ARDOUR_UI::click_button_scroll (GdkEventScroll* ev) +{ + gain_t gain = Config->get_click_gain(); + float gain_db = accurate_coefficient_to_dB (gain); + + switch (ev->direction) { + case GDK_SCROLL_UP: + case GDK_SCROLL_LEFT: + gain_db += 1; + break; + case GDK_SCROLL_DOWN: + case GDK_SCROLL_RIGHT: + gain_db -= 1; + break; + } + gain_db = std::max (-60.f, gain_db); + gain = dB_to_coefficient (gain_db); + gain = std::min (gain, Config->get_max_gain()); + Config->set_click_gain (gain); + return true; +} + +bool ARDOUR_UI::sync_button_clicked (GdkEventButton* ev) { if (ev->button != 3) { |