diff options
author | Carl Hetherington <carl@carlh.net> | 2011-11-03 01:44:17 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2011-11-03 01:44:17 +0000 |
commit | 154c2a35d7a14eda847a6a610f5fbe8fb17109d8 (patch) | |
tree | 0ab60ea0bd686f2fde078a5ff3a0d7a74135f7d6 /gtk2_ardour/mixer_strip.cc | |
parent | 22d87a18dc602ef29a82f5c1fa68ba00ecacfe4b (diff) |
Allow overrides of the user-set visibility stuff and use it to make sure the master bus doesn't get solo isolate etc. (#4431).
git-svn-id: svn://localhost/ardour2/branches/3.0@10407 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/mixer_strip.cc')
-rw-r--r-- | gtk2_ardour/mixer_strip.cc | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 4f4d400a56..288e9f830d 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -338,8 +338,8 @@ MixerStrip::init () are recognised when they occur. */ _visibility.add (&_invert_button_box, X_("PhaseInvert"), _("Phase Invert")); - _visibility.add (solo_safe_led, X_("SoloSafe"), _("Solo Safe")); - _visibility.add (solo_isolated_led, X_("SoloIsolated"), _("Solo Isolated")); + _visibility.add (solo_safe_led, X_("SoloSafe"), _("Solo Safe"), true, boost::bind (&MixerStrip::override_solo_visibility, this)); + _visibility.add (solo_isolated_led, X_("SoloIsolated"), _("Solo Isolated"), true, boost::bind (&MixerStrip::override_solo_visibility, this)); _visibility.add (&_comment_button, X_("Comments"), _("Comments")); _visibility.add (&group_button, X_("Group"), _("Group")); _visibility.add (&meter_point_button, X_("MeterPoint"), _("Meter Point")); @@ -2000,3 +2000,18 @@ MixerStrip::parameter_changed (string p) _visibility.set_state (Config->get_mixer_strip_visibility ()); } } + +/** Called to decide whether the solo isolate / solo lock button visibility should + * be overridden from that configured by the user. We do this for the master bus. + * + * @return optional value that is present if visibility state should be overridden. + */ +boost::optional<bool> +MixerStrip::override_solo_visibility () const +{ + if (_route && _route->is_master ()) { + return boost::optional<bool> (false); + } + + return boost::optional<bool> (); +} |