+ void save_as_template ();
+ void open_remote_control_id_dialog ();
+
+ static int solo_visual_state (boost::shared_ptr<ARDOUR::Route>);
+ static int solo_visual_state_with_isolate (boost::shared_ptr<ARDOUR::Route>);
+ static int solo_isolate_visual_state (boost::shared_ptr<ARDOUR::Route>);
+ static int solo_safe_visual_state (boost::shared_ptr<ARDOUR::Route>);
+ static int mute_visual_state (ARDOUR::Session*, boost::shared_ptr<ARDOUR::Route>);
+
+ protected:
+ PBD::ScopedConnectionList route_connections;
+ bool self_destruct;
+
+ void init ();
+ void reset ();
+
+ void self_delete ();
+
+ 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;
+