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