+ was_solo_safe = false;
+ polarity_menu_item = 0;
+ denormal_menu_item = 0;
+ multiple_mute_change = false;
+ multiple_solo_change = false;
+
+ mute_button = manage (new BindableToggleButton (""));
+ mute_button->set_self_managed (true);
+ mute_button->set_name ("MuteButton");
+ UI::instance()->set_tip (mute_button, _("Mute this track"), "");
+
+ solo_button = manage (new BindableToggleButton (""));
+ solo_button->set_self_managed (true);
+ solo_button->set_name ("SoloButton");
+ UI::instance()->set_tip (solo_button, _("Mute other (non-soloed) tracks"), "");
+
+ rec_enable_button = manage (new BindableToggleButton (""));
+ rec_enable_button->set_name ("RecordEnableButton");
+ rec_enable_button->set_self_managed (true);
+ UI::instance()->set_tip (rec_enable_button, _("Enable recording on this track"), "");
+
+ _session.SoloChanged.connect (mem_fun(*this, &RouteUI::solo_changed_so_update_mute));
+}
+
+void
+RouteUI::reset ()
+{
+ connections.clear ();
+
+ delete solo_menu;
+ solo_menu = 0;
+
+ delete mute_menu;
+ mute_menu = 0;
+
+ if (xml_node) {
+ /* do not delete the node - its owned by the route */
+ xml_node = 0;
+ }
+
+ route_active_menu_item = 0;
+ polarity_menu_item = 0;
+ denormal_menu_item = 0;
+}
+
+void
+RouteUI::set_button_names (const char* mute, const char* solo, const char* rec)
+{
+ m_name = mute;
+ s_name = solo;
+ r_name = rec;
+}
+
+void
+RouteUI::set_route (boost::shared_ptr<Route> rp)
+{
+ reset ();
+
+ _route = rp;