Remove direct calls to set solo_control()
Changing solo-state needs to be done in rt-context to atomically propagate solo/mute. set_control() queues a rt-event, later Session::rt_set_control() calls Session::update_route_solo_state() to propagate solo/mute.
This commit is contained in:
parent
fef0739a10
commit
9d8829f5bf
|
@ -295,7 +295,8 @@ ControlProtocol::route_set_soloed (uint32_t table_index, bool yn)
|
|||
boost::shared_ptr<Route> r = route_table[table_index];
|
||||
|
||||
if (r != 0) {
|
||||
r->solo_control()->set_value (yn ? 1.0 : 0.0, Controllable::UseGroup);
|
||||
r->solo_control()->set_value (yn ? 1.0 : 0.0, Controllable::UseGroup); // XXX does not propagate
|
||||
//_session->set_control (r->solo_control(), yn ? 1.0 : 0.0, Controllable::UseGroup); // << correct way, needs a session ptr
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -140,7 +140,7 @@ FaderPort::solo ()
|
|||
return;
|
||||
}
|
||||
|
||||
_current_stripable->solo_control()->set_value (!_current_stripable->solo_control()->self_soloed(), PBD::Controllable::UseGroup);
|
||||
session->set_control (_current_stripable->solo_control(), !_current_stripable->solo_control()->self_soloed(), PBD::Controllable::UseGroup);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -2003,8 +2003,8 @@ OSC::sel_solo (uint32_t yn, lo_message msg)
|
|||
}
|
||||
if (s) {
|
||||
if (s->solo_control()) {
|
||||
s->solo_control()->set_value (yn ? 1.0 : 0.0, PBD::Controllable::NoGroup);
|
||||
return sel_fail ("solo", (float) s->solo_control()->get_value(), get_address (msg));
|
||||
session->set_control (s->solo_control(), yn ? 1.0 : 0.0, PBD::Controllable::NoGroup);
|
||||
return sel_fail ("solo", yn, get_address (msg));
|
||||
}
|
||||
}
|
||||
return sel_fail ("solo", 0, get_address (msg));
|
||||
|
|
|
@ -400,7 +400,7 @@ MixLayout::button_solo ()
|
|||
if (s) {
|
||||
boost::shared_ptr<AutomationControl> ac = s->solo_control();
|
||||
if (ac) {
|
||||
ac->set_value (!ac->get_value(), PBD::Controllable::UseGroup);
|
||||
session.set_control (ac, !ac->get_value(), PBD::Controllable::UseGroup);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user