summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/mixer_strip.cc24
-rw-r--r--gtk2_ardour/mixer_strip.h1
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 ();