diff options
-rw-r--r-- | libs/surfaces/mackie/mcp_buttons.cc | 12 |
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; } |