summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_ui2.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-01-19 19:12:25 +0100
committerRobin Gareus <robin@gareus.org>2017-01-19 19:12:25 +0100
commite35f11e515bac6ea0d76684badef28408fc0d0e5 (patch)
tree036d977f5dab099bdeaed29538bb8cd1787100c1 /gtk2_ardour/ardour_ui2.cc
parentdc11651694b97b5a4c7e3b57ca7cd5c019714166 (diff)
Allow to change metronome level via mouse-wheel
Diffstat (limited to 'gtk2_ardour/ardour_ui2.cc')
-rw-r--r--gtk2_ardour/ardour_ui2.cc26
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) {