summaryrefslogtreecommitdiff
path: root/libs
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 /libs
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 'libs')
-rw-r--r--libs/ardour/route.cc11
-rw-r--r--libs/gtkmm2ext/stateful_button.cc4
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);