+
+ void self_delete ();
+ virtual void start_step_editing () {}
+ virtual void stop_step_editing() {}
+
+ private:
+ void check_rec_enable_sensitivity ();
+ void parameter_changed (std::string const &);
+ void relabel_solo_button ();
+
+ struct SoloMuteRelease {
+ SoloMuteRelease (bool was_active)
+ : active (was_active)
+ , exclusive (false) {}
+
+ boost::shared_ptr<ARDOUR::RouteList> routes;
+ boost::shared_ptr<ARDOUR::RouteList> routes_on;
+ boost::shared_ptr<ARDOUR::RouteList> routes_off;
+ boost::shared_ptr<ARDOUR::Route> route;
+ bool active;
+ bool exclusive;
+ };
+
+ SoloMuteRelease* _solo_release;
+ SoloMuteRelease* _mute_release;
+
+ void setup_invert_buttons ();
+ void set_invert_button_state ();
+ void invert_toggled (uint32_t, BindableToggleButton *);
+ void invert_menu_toggled (uint32_t);
+ bool invert_press (GdkEventButton *);
+
+ int _i_am_the_modifier;
+ std::list<BindableToggleButton*> _invert_buttons;
+ Gtk::Menu* _invert_menu;
+
+ static uint32_t _max_invert_buttons;