summaryrefslogtreecommitdiff
path: root/gtk2_ardour/vca_master_strip.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-05-21 16:54:34 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-05-31 15:30:44 -0400
commit531dca486d8fd4296f3b5823c970da757224eff2 (patch)
tree9d7b0b676ad3c47c09d4ac9a7e714279c417173b /gtk2_ardour/vca_master_strip.cc
parent670e79f7d1a6a9908e8729af7036907665142eb5 (diff)
make VCA strips sensitive to solo model
Diffstat (limited to 'gtk2_ardour/vca_master_strip.cc')
-rw-r--r--gtk2_ardour/vca_master_strip.cc31
1 files changed, 31 insertions, 0 deletions
diff --git a/gtk2_ardour/vca_master_strip.cc b/gtk2_ardour/vca_master_strip.cc
index 7b7b3b5ab0..7cfa48c091 100644
--- a/gtk2_ardour/vca_master_strip.cc
+++ b/gtk2_ardour/vca_master_strip.cc
@@ -166,6 +166,9 @@ VCAMasterStrip::VCAMasterStrip (Session* s, boost::shared_ptr<VCA> v)
_vca->DropReferences.connect (vca_connections, invalidator (*this), boost::bind (&VCAMasterStrip::self_delete, this), gui_context());
+ s->config.ParameterChanged.connect (*this, invalidator (*this), boost::bind (&VCAMasterStrip::parameter_changed, this, _1), gui_context());
+ Config->ParameterChanged.connect (*this, invalidator (*this), boost::bind (&VCAMasterStrip::parameter_changed, this, _1), gui_context());
+ UIConfiguration::instance().ParameterChanged.connect (sigc::mem_fun (*this, &VCAMasterStrip::parameter_changed));
}
VCAMasterStrip::~VCAMasterStrip ()
@@ -188,6 +191,34 @@ VCAMasterStrip::self_delete ()
}
void
+VCAMasterStrip::parameter_changed (std::string const & p)
+{
+ if (p == "use-monitor-bus" || p == "solo-control-is-listen-control" || p == "listen-position") {
+ set_button_names ();
+ }
+}
+
+void
+VCAMasterStrip::set_button_names ()
+{
+ if (Config->get_solo_control_is_listen_control()) {
+ switch (Config->get_listen_position()) {
+ case AfterFaderListen:
+ solo_button.set_text (S_("AfterFader|A"));
+ set_tooltip (solo_button, _("After-fade listen (AFL)"));
+ break;
+ case PreFaderListen:
+ solo_button.set_text (S_("PreFader|P"));
+ set_tooltip (solo_button, _("Pre-fade listen (PFL)"));
+ break;
+ }
+ } else {
+ solo_button.set_text (S_("Solo|S"));
+ set_tooltip (solo_button, _("Solo"));
+ }
+}
+
+void
VCAMasterStrip::update_vca_display ()
{
VCAList vcas (_session->vca_manager().vcas());