diff options
author | Robin Gareus <robin@gareus.org> | 2017-05-05 15:36:08 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-05-05 15:36:08 +0200 |
commit | 8288fa40b9c5101e1d14274b6972c1c4fb0215a4 (patch) | |
tree | fc24dbf1bd083be14b44839fe509b93cce280366 /libs | |
parent | 3a75e7c53b62a69976714e30c4307d955a711047 (diff) |
FP8: ignore inactive muted tracks w/mute-clear
Diffstat (limited to 'libs')
-rw-r--r-- | libs/surfaces/faderport8/actions.cc | 4 | ||||
-rw-r--r-- | libs/surfaces/faderport8/callbacks.cc | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/libs/surfaces/faderport8/actions.cc b/libs/surfaces/faderport8/actions.cc index a14c516c3c..5789961ea1 100644 --- a/libs/surfaces/faderport8/actions.cc +++ b/libs/surfaces/faderport8/actions.cc @@ -294,6 +294,10 @@ FaderPort8::button_mute_clear () if ((*i)->is_auditioner() || (*i)->is_monitor()) { continue; } + boost::shared_ptr<Route> r = boost::dynamic_pointer_cast<Route>(*i); + if (r && !r->active()) { + continue; + } boost::shared_ptr<AutomationControl> ac = (*i)->mute_control(); if (ac && ac->get_value () > 0) { cl->push_back (ac); diff --git a/libs/surfaces/faderport8/callbacks.cc b/libs/surfaces/faderport8/callbacks.cc index fa822bb8df..28fa9fd954 100644 --- a/libs/surfaces/faderport8/callbacks.cc +++ b/libs/surfaces/faderport8/callbacks.cc @@ -197,11 +197,16 @@ void FaderPort8::notify_mute_changed () { bool muted = false; - boost::shared_ptr<RouteList> rl = session->get_routes(); - for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) { + StripableList all; + session->get_stripables (all); + for (StripableList::const_iterator i = all.begin(); i != all.end(); ++i) { if ((*i)->is_auditioner() || (*i)->is_monitor()) { continue; } + boost::shared_ptr<Route> r = boost::dynamic_pointer_cast<Route>(*i); + if (r && !r->active()) { + continue; + } boost::shared_ptr<MuteControl> mc = (*i)->mute_control(); if (mc && mc->muted ()) { muted = true; |