diff options
-rw-r--r-- | gtk2_ardour/mixer_strip.cc | 3 | ||||
-rw-r--r-- | gtk2_ardour/route_ui.cc | 36 | ||||
-rw-r--r-- | gtk2_ardour/route_ui.h | 2 |
3 files changed, 37 insertions, 4 deletions
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 26977d1e70..3598f19e9b 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -83,8 +83,6 @@ using namespace ArdourMeter; MixerStrip* MixerStrip::_entered_mixer_strip; PBD::Signal1<void,MixerStrip*> MixerStrip::CatchDeletion; -static const uint32_t n_vca_buttons = 4; - MixerStrip::MixerStrip (Mixer_UI& mx, Session* sess, bool in_mixer) : AxisView(sess) , RouteUI (sess) @@ -649,6 +647,7 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt) update_mute_display (); update_solo_display (); + update_vca_display (); name_changed (); comment_changed (); route_group_changed (); diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index efacdb2fc1..53bcef531c 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -27,13 +27,16 @@ #include <gtkmm2ext/gtk_ui.h> #include <gtkmm2ext/utils.h> -#include "ardour/route_group.h" -#include "ardour/dB.h" #include "pbd/memento_command.h" #include "pbd/stacktrace.h" #include "pbd/controllable.h" #include "pbd/enumwriter.h" +#include "ardour/dB.h" +#include "ardour/route_group.h" +#include "ardour/vca.h" +#include "ardour/vca_manager.h" + #include "ardour_ui.h" #include "editor.h" #include "route_ui.h" @@ -1274,6 +1277,35 @@ RouteUI::update_mute_display () } void +RouteUI::update_vca_display () +{ + if (!vca_button) { + return; + } + + VCAList vcas (_session->vca_manager().vcas()); + string label; + + for (VCAList::iterator v = vcas.begin(); v != vcas.end(); ++v) { + if (_route->slaved_to (*v)) { + if (!label.empty()) { + label += ' '; + } + label += PBD::to_string ((*v)->number(), std::dec); + } + } + + if (label.empty()) { + label = _("-vca-"); + vca_button->set_active_state (Gtkmm2ext::Off); + } else { + vca_button->set_active_state (Gtkmm2ext::ExplicitActive); + } + + vca_button->set_text (label); +} + +void RouteUI::route_rec_enable_changed () { blink_rec_display(true); //this lets the button change "immediately" rather than wait for the next blink diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h index 1b021abd66..788c65101b 100644 --- a/gtk2_ardour/route_ui.h +++ b/gtk2_ardour/route_ui.h @@ -242,6 +242,8 @@ class RouteUI : public virtual AxisView void update_solo_display (); + void update_vca_display (); + virtual void map_frozen (); void adjust_latency (); |