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 /libs | |
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 'libs')
-rw-r--r-- | libs/ardour/route.cc | 11 | ||||
-rw-r--r-- | libs/gtkmm2ext/stateful_button.cc | 4 |
2 files changed, 14 insertions, 1 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 27a5429c47..a29dab5365 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -522,6 +522,10 @@ Route::passthru_silence (sframes_t start_frame, sframes_t end_frame, nframes_t n void Route::set_listen (bool yn, void* src) { + if (_solo_safe) { + return; + } + if (_monitor_send) { if (yn != _monitor_send->active()) { if (yn) { @@ -585,12 +589,16 @@ Route::set_solo (bool yn, void *src) void Route::set_self_solo (bool yn) { - _self_solo = yn; + _self_solo = yn; } void Route::mod_solo_by_others (int32_t delta) { + if (_solo_safe) { + return; + } + if (delta < 0) { if (_soloed_by_others >= (uint32_t) abs (delta)) { _soloed_by_others += delta; @@ -602,6 +610,7 @@ Route::mod_solo_by_others (int32_t delta) } set_delivery_solo (); + solo_changed (this); } void diff --git a/libs/gtkmm2ext/stateful_button.cc b/libs/gtkmm2ext/stateful_button.cc index ea6abdac43..d8bb1f212f 100644 --- a/libs/gtkmm2ext/stateful_button.cc +++ b/libs/gtkmm2ext/stateful_button.cc @@ -67,6 +67,10 @@ StateButton::set_visual_state (int n) case 2: name += "-alternate"; break; + + case 3: + name += "-alternate2"; + break; } set_widget_name (name); |