Add 100% shuttle controls option - closes #6537
authorRobin Gareus <robin@gareus.org>
Sat, 22 Aug 2015 02:32:14 +0000 (04:32 +0200)
committerRobin Gareus <robin@gareus.org>
Sat, 22 Aug 2015 02:32:14 +0000 (04:32 +0200)
gtk2_ardour/shuttle_control.cc
gtk2_ardour/shuttle_control.h

index aeaf7d6b2832b25020c833d9c01a436f6ffcd191..2aca6b3ae6035a6b27662037a13339f52dc1d73e 100644 (file)
@@ -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
@@ -246,6 +248,16 @@ ShuttleControl::show_shuttle_context_menu ()
        shuttle_context_menu->popup (1, gtk_get_current_event_time());
 }
 
+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)
 {
index 21b02d9954640b061d19185d210d3d3ae765a7ca..cd751ebedcffc5a6ab7503ceef24a2ab8e9246e2 100644 (file)
@@ -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*);