summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-01-31 11:36:46 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-01-31 11:36:46 -0500
commitd3dfd744979fb6fea89fdd66e3fa24d764f2e292 (patch)
tree26492a1a9a8b6dabdc734a3a457f4f986afbc17e
parent2491549923062e6f9a45d1d051d4ce0976f7b4bc (diff)
mackie: strengthen behaviour of clear solo button
-rw-r--r--libs/surfaces/mackie/mcp_buttons.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/libs/surfaces/mackie/mcp_buttons.cc b/libs/surfaces/mackie/mcp_buttons.cc
index 004fe18859..83dae4c0dd 100644
--- a/libs/surfaces/mackie/mcp_buttons.cc
+++ b/libs/surfaces/mackie/mcp_buttons.cc
@@ -863,8 +863,16 @@ Mackie::LedState
MackieControlProtocol::clearsolo_press (Mackie::Button&)
{
// clears all solos and listens (pfl/afl)
- session->set_solo (session->get_routes(), false);
- session->set_listen (session->get_routes(), false);
+
+ if (session) {
+ if (session->soloing()) {
+ session->set_solo (session->get_routes(), false);
+ } else if (session->listening()) {
+ session->set_listen (session->get_routes(), false);
+ }
+
+ session->clear_all_solo_state (session->get_routes()); // safeguard, ideally this won't do anything, check the log-window
+ }
return none;
}