diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-04-20 12:38:37 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-04-20 12:38:37 +0000 |
commit | f119387d767d9e8411556579e48022ed9b5d3974 (patch) | |
tree | 5595577ae9970b34bfb9bd6c4ef03e34891e7a7a /gtk2_ardour/mixer_strip.cc | |
parent | 2cb5595b11df77375d199c4bed3e35361fba52a3 (diff) |
indicate "soloed-by-others" state on solo button via a "half-lit" state
git-svn-id: svn://localhost/ardour2/branches/3.0@6939 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/mixer_strip.cc')
-rw-r--r-- | gtk2_ardour/mixer_strip.cc | 61 |
1 files changed, 36 insertions, 25 deletions
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 290081c2f1..5e7064ee8d 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -115,7 +115,6 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session* sess, boost::shared_ptr<Route> rt , comment_button (_("Comments")) { init (); - set_button_names (); set_route (rt); } @@ -326,6 +325,11 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt) RouteUI::set_route (rt); + /* map the current state */ + + mute_changed (0); + solo_changed (0); + delete input_selector; input_selector = 0; @@ -1731,35 +1735,42 @@ MixerStrip::set_button_names () case Wide: rec_enable_button_label.set_text (_("Rec")); mute_button_label.set_text (_("Mute")); - if (!Config->get_solo_control_is_listen_control()) { - solo_button_label.set_text (_("Solo")); - } else { - switch (Config->get_listen_position()) { - case AfterFaderListen: - solo_button_label.set_text (_("AFL")); - break; - case PreFaderListen: - solo_button_label.set_text (_("PFL")); - break; - } - } + if (_route && _route->solo_safe()) { + solo_button_label.set_text (X_("!")); + } else { + if (!Config->get_solo_control_is_listen_control()) { + solo_button_label.set_text (_("Solo")); + } else { + switch (Config->get_listen_position()) { + case AfterFaderListen: + solo_button_label.set_text (_("AFL")); + break; + case PreFaderListen: + solo_button_label.set_text (_("PFL")); + break; + } + } + } break; default: rec_enable_button_label.set_text (_("R")); mute_button_label.set_text (_("M")); - if (!Config->get_solo_control_is_listen_control()) { - solo_button_label.set_text (_("S")); - } else { - switch (Config->get_listen_position()) { - case AfterFaderListen: - solo_button_label.set_text (_("A")); - break; - case PreFaderListen: - solo_button_label.set_text (_("P")); - break; - } - } + if (_route && _route->solo_safe()) { + solo_button_label.set_text (X_("!")); + if (!Config->get_solo_control_is_listen_control()) { + solo_button_label.set_text (_("S")); + } else { + switch (Config->get_listen_position()) { + case AfterFaderListen: + solo_button_label.set_text (_("A")); + break; + case PreFaderListen: + solo_button_label.set_text (_("P")); + break; + } + } + } break; } |