diff options
-rw-r--r-- | gtk2_ardour/mixer_strip.cc | 24 | ||||
-rw-r--r-- | gtk2_ardour/mixer_strip.h | 1 |
2 files changed, 17 insertions, 8 deletions
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index b5ae269c7f..1e8717d327 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -458,6 +458,20 @@ MixerStrip::name() const } void +MixerStrip::update_trim_control () +{ + if (route()->trim() && route()->trim()->active() && + route()->n_inputs().n_audio() > 0) { + trim_control.show (); + trim_control.set_controllable (route()->trim()->gain_control()); + } else { + trim_control.hide (); + boost::shared_ptr<Controllable> none; + trim_control.set_controllable (none); + } +} + +void MixerStrip::set_route (boost::shared_ptr<Route> rt) { //the rec/monitor stuff only shows up for tracks. @@ -563,14 +577,7 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt) monitor_disk_button->hide (); } - if (route()->trim() && route()->trim()->active()) { - trim_control.show (); - trim_control.set_controllable (route()->trim()->gain_control()); - } else { - trim_control.hide (); - boost::shared_ptr<Controllable> none; - trim_control.set_controllable (none); - } + update_trim_control(); if (is_midi_track()) { if (midi_input_enable_button == 0) { @@ -1509,6 +1516,7 @@ void MixerStrip::io_changed_proxy () { Glib::signal_idle().connect_once (sigc::mem_fun (*this, &MixerStrip::update_panner_choices)); + Glib::signal_idle().connect_once (sigc::mem_fun (*this, &MixerStrip::update_trim_control)); } void diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h index c1c1726902..eb6da17f87 100644 --- a/gtk2_ardour/mixer_strip.h +++ b/gtk2_ardour/mixer_strip.h @@ -253,6 +253,7 @@ class MixerStrip : public AxisView, public RouteUI, public Gtk::EventBox PBD::ScopedConnection panstyle_connection; void connect_to_pan (); void update_panner_choices (); + void update_trim_control (); void update_diskstream_display (); void update_input_display (); |