Fix/tweak various DSP-load window issues
* update when window is visible and session-changes * drop connections to prevent multiple callbacks * catch session-deletion, skip updates
This commit is contained in:
parent
7857083fc8
commit
144dda0581
|
@ -62,6 +62,8 @@ PluginDSPLoadWindow::set_session (Session* s)
|
||||||
ArdourWindow::set_session (s);
|
ArdourWindow::set_session (s);
|
||||||
if (!s) {
|
if (!s) {
|
||||||
drop_references ();
|
drop_references ();
|
||||||
|
} else if (is_visible ()) {
|
||||||
|
refill_processors ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,12 +109,18 @@ PluginDSPLoadWindow::drop_references ()
|
||||||
delete *child;
|
delete *child;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
_route_connections.drop_connections ();
|
||||||
|
_processor_connections.drop_connections ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
PluginDSPLoadWindow::refill_processors ()
|
PluginDSPLoadWindow::refill_processors ()
|
||||||
{
|
{
|
||||||
drop_references ();
|
drop_references ();
|
||||||
|
if (!_session || _session->deletion_in_progress()) {
|
||||||
|
/* may be called from session d'tor, removing monitor-section w/plugin */
|
||||||
|
return;
|
||||||
|
}
|
||||||
RouteList routes = _session->get_routelist ();
|
RouteList routes = _session->get_routelist ();
|
||||||
for (RouteList::const_iterator i = routes.begin(); i != routes.end(); ++i) {
|
for (RouteList::const_iterator i = routes.begin(); i != routes.end(); ++i) {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user