more changes flowing from a persistent MonitorSection object
[ardour.git] / gtk2_ardour / mixer_strip.cc
index 278863a5cbe9fdd974b666286ce0434e01060a69..1e7c94f9069406d13406877f46340c9e0001265c 100644 (file)
@@ -581,7 +581,7 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
                solo_iso_table.set_sensitive(false);
                control_slave_ui.set_sensitive(false);
                if (monitor_section_button == 0) {
-                       Glib::RefPtr<Action> act = ActionManager::get_action ("Common", "ToggleMonitorSection");
+                       Glib::RefPtr<Action> act = ActionManager::get_action ("Mixer", "ToggleMonitorSection");
                        _session->MonitorChanged.connect (route_connections, invalidator (*this), boost::bind (&MixerStrip::monitor_changed, this), gui_context());
 
                        monitor_section_button = manage (new ArdourButton);
@@ -873,9 +873,7 @@ gint
 MixerStrip::output_press (GdkEventButton *ev)
 {
        using namespace Menu_Helpers;
-       if (!_session->engine().connected()) {
-               MessageDialog msg (_("Not connected to audio engine - no I/O changes are possible"));
-               msg.run ();
+       if (!ARDOUR_UI_UTILS::engine_is_running ()) {
                return true;
        }
 
@@ -910,8 +908,7 @@ MixerStrip::output_press (GdkEventButton *ev)
                }
 
                /* then other routes inputs */
-               boost::shared_ptr<ARDOUR::RouteList> routes = _session->get_routes ();
-               RouteList copy = *routes;
+               RouteList copy = _session->get_routelist ();
                copy.sort (RouteCompareByName ());
                for (ARDOUR::RouteList::const_iterator i = copy.begin(); i != copy.end(); ++i) {
                        maybe_add_bundle_to_output_menu ((*i)->input()->bundle(), current, intended_type);
@@ -990,9 +987,7 @@ MixerStrip::input_press (GdkEventButton *ev)
        input_menu.set_name ("ArdourContextMenu");
        citems.clear();
 
-       if (!_session->engine().connected()) {
-               MessageDialog msg (_("Not connected to audio engine - no I/O changes are possible"));
-               msg.run ();
+       if (!ARDOUR_UI_UTILS::engine_is_running ()) {
                return true;
        }
 
@@ -2173,6 +2168,11 @@ MixerStrip::drop_send ()
        monitor_input_button->set_sensitive (true);
        monitor_disk_button->set_sensitive (true);
        _comment_button.set_sensitive (true);
+       trim_control.set_sensitive (true);
+       if (midi_input_enable_button) {
+               midi_input_enable_button->set_sensitive (true);
+       }
+       control_slave_ui.set_sensitive (true);
        RouteUI::check_rec_enable_sensitivity ();
        set_button_names (); // update solo button visual state
 }
@@ -2221,6 +2221,11 @@ MixerStrip::show_send (boost::shared_ptr<Send> send)
        monitor_input_button->set_sensitive (false);
        monitor_disk_button->set_sensitive (false);
        _comment_button.set_sensitive (false);
+       trim_control.set_sensitive (false);
+       if (midi_input_enable_button) {
+               midi_input_enable_button->set_sensitive (false);
+       }
+       control_slave_ui.set_sensitive (false);
 
        if (boost::dynamic_pointer_cast<InternalSend>(send)) {
                output_button.set_sensitive (false);