summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/shuttle_control.cc12
-rw-r--r--gtk2_ardour/shuttle_control.h1
2 files changed, 13 insertions, 0 deletions
diff --git a/gtk2_ardour/shuttle_control.cc b/gtk2_ardour/shuttle_control.cc
index aeaf7d6b28..2aca6b3ae6 100644
--- a/gtk2_ardour/shuttle_control.cc
+++ b/gtk2_ardour/shuttle_control.cc
@@ -234,6 +234,8 @@ ShuttleControl::build_shuttle_context_menu ()
items.push_back (MenuElem (_("Maximum speed"), *speed_menu));
+ items.push_back (SeparatorElem ());
+ items.push_back (MenuElem (_("Reset to 100%"), sigc::mem_fun (*this, &ShuttleControl::reset_speed)));
}
void
@@ -247,6 +249,16 @@ ShuttleControl::show_shuttle_context_menu ()
}
void
+ShuttleControl::reset_speed ()
+{
+ if (_session->transport_rolling()) {
+ _session->request_transport_speed (1.0, true);
+ } else {
+ _session->request_transport_speed (0.0, true);
+ }
+}
+
+void
ShuttleControl::set_shuttle_max_speed (float speed)
{
Config->set_shuttle_max_speed (speed);
diff --git a/gtk2_ardour/shuttle_control.h b/gtk2_ardour/shuttle_control.h
index 21b02d9954..cd751ebedc 100644
--- a/gtk2_ardour/shuttle_control.h
+++ b/gtk2_ardour/shuttle_control.h
@@ -78,6 +78,7 @@ class ShuttleControl : public CairoWidget, public ARDOUR::SessionHandlePtr
void shuttle_style_changed();
void shuttle_unit_clicked ();
void set_shuttle_max_speed (float);
+ void reset_speed ();
bool on_enter_notify_event (GdkEventCrossing*);
bool on_leave_notify_event (GdkEventCrossing*);