generalize VCA assign/unassign code.
[ardour.git] / gtk2_ardour / shuttle_control.h
index a8c2e71d59807f8e06d31f82d7e1bcacdcacf01e..20fe46096f0e9f8254b483e19423939e5d9aa922 100644 (file)
@@ -22,6 +22,7 @@
 #include <gtkmm/drawingarea.h>
 
 #include "gtkmm2ext/binding_proxy.h"
+#include "gtkmm2ext/cairo_widget.h"
 
 #include "pbd/controllable.h"
 #include "ardour/session_handle.h"
@@ -39,14 +40,13 @@ class ShuttleControl : public CairoWidget, public ARDOUR::SessionHandlePtr
        ~ShuttleControl ();
 
        void map_transport_state ();
-       void update_speed_display ();
-        void set_shuttle_fract (double, bool zero_ok = false);
+       void set_shuttle_fract (double, bool zero_ok = false);
        double get_shuttle_fract () const { return shuttle_fract; }
        void set_session (ARDOUR::Session*);
 
        struct ShuttleControllable : public PBD::Controllable {
                ShuttleControllable (ShuttleControl&);
-               void set_value (double);
+               void set_value (double, PBD::Controllable::GroupControlDisposition group_override);
                double get_value (void) const;
 
                 double lower() const { return -1.0; }
@@ -79,6 +79,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*);
@@ -87,7 +88,7 @@ class ShuttleControl : public CairoWidget, public ARDOUR::SessionHandlePtr
        bool on_scroll_event (GdkEventScroll*);
        bool on_motion_notify_event(GdkEventMotion*);
 
-       void render (cairo_t *);
+       void render (cairo_t *, cairo_rectangle_t*);
 
        void on_size_allocate (Gtk::Allocation&);
        bool on_query_tooltip (int, int, bool, const Glib::RefPtr<Gtk::Tooltip>&);