summaryrefslogtreecommitdiff
path: root/gtk2_ardour/mixer_strip.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-04-20 12:38:37 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-04-20 12:38:37 +0000
commitf119387d767d9e8411556579e48022ed9b5d3974 (patch)
tree5595577ae9970b34bfb9bd6c4ef03e34891e7a7a /gtk2_ardour/mixer_strip.cc
parent2cb5595b11df77375d199c4bed3e35361fba52a3 (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.cc61
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;
}