Prefer testing the session instead of using a global variable
[ardour.git] / gtk2_ardour / mixer_strip.cc
index 9c1bdeda9d22a4a915cdbcaa0e5b965174a2bbd9..43ad8a2828e259db571cd1c857789ee9bb6f95bd 100644 (file)
@@ -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;
        }
 
@@ -1256,7 +1251,6 @@ MixerStrip::guess_main_type(bool for_input, bool favor_connected) const
 
 /*
  * Output port labelling
- * =====================
  *
  * Case 1: Each output has one connection, all connections are to system:playback_%i
  *   out 1 -> system:playback_1
@@ -1280,8 +1274,9 @@ MixerStrip::guess_main_type(bool for_input, bool favor_connected) const
  * Default case (unusual routing):
  *   Display as: *number of connections*
  *
+ *
  * Tooltips
- * ========
+ *
  * .-----------------------------------------------.
  * | Mixdown                                       |
  * | out 1 -> ardour:master/in 1, jamin:input/in 1 |
@@ -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);