Do not allow to de/activate a track while the transport is rolling.
roll_delay and latency are only re-calculated when the transport is stopped. de/activating a track is also not RT-safe.
This commit is contained in:
parent
b46652c3c9
commit
14c6dfab07
@ -1526,6 +1526,7 @@ MixerStrip::build_route_ops_menu ()
|
||||
items.push_back (CheckMenuElem (_("Active")));
|
||||
Gtk::CheckMenuItem* i = dynamic_cast<Gtk::CheckMenuItem *> (&items.back());
|
||||
i->set_active (_route->active());
|
||||
i->set_sensitive(! _session->transport_rolling());
|
||||
i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &RouteUI::set_route_active), !_route->active(), false));
|
||||
|
||||
items.push_back (SeparatorElem());
|
||||
|
@ -710,6 +710,7 @@ RouteTimeAxisView::build_display_menu ()
|
||||
} else if (active > 0 && inactive > 0) {
|
||||
i->set_inconsistent (true);
|
||||
}
|
||||
i->set_sensitive(! _session->transport_rolling());
|
||||
i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &RouteUI::set_route_active), click_sets_active, true));
|
||||
|
||||
items.push_back (SeparatorElem());
|
||||
|
@ -3694,6 +3694,10 @@ Route::denormal_protection () const
|
||||
void
|
||||
Route::set_active (bool yn, void* src)
|
||||
{
|
||||
if (_session.transport_rolling()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (_route_group && src != _route_group && _route_group->is_active() && _route_group->is_route_active()) {
|
||||
_route_group->foreach_route (boost::bind (&Route::set_active, _1, yn, _route_group));
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user