diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-05-21 16:54:34 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-05-31 15:30:44 -0400 |
commit | 531dca486d8fd4296f3b5823c970da757224eff2 (patch) | |
tree | 9d7b0b676ad3c47c09d4ac9a7e714279c417173b /gtk2_ardour/vca_master_strip.cc | |
parent | 670e79f7d1a6a9908e8729af7036907665142eb5 (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.cc | 31 |
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()); |