From 531dca486d8fd4296f3b5823c970da757224eff2 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sat, 21 May 2016 16:54:34 -0400 Subject: make VCA strips sensitive to solo model --- gtk2_ardour/vca_master_strip.cc | 31 +++++++++++++++++++++++++++++++ gtk2_ardour/vca_master_strip.h | 3 +++ 2 files changed, 34 insertions(+) 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 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 () @@ -187,6 +190,34 @@ VCAMasterStrip::self_delete () delete_when_idle (this); } +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 () { diff --git a/gtk2_ardour/vca_master_strip.h b/gtk2_ardour/vca_master_strip.h index 99e1101a50..8c31f2b1c7 100644 --- a/gtk2_ardour/vca_master_strip.h +++ b/gtk2_ardour/vca_master_strip.h @@ -96,6 +96,9 @@ class VCAMasterStrip : public AxisView, public Gtk::EventBox void remove (); void drop_button_press (); void drop_all_slaves (); + + void parameter_changed (std::string const& p); + void set_button_names (); }; -- cgit v1.2.3