Prepare to configure procs only once - fix missing panners

During session load, all earlier configure_processors() calls
were useless and not taking I/O into account! The Delivery ::pan_out()
needs _output I/O ports in order to correctly report the correct
port-count!

This worked in earlier versions because Config->map_parameters()
triggered [two] processor re-configs via ::listen_position_changed().
That behavior was changed in 1af123465c
This commit is contained in:
Robin Gareus 2019-03-17 17:19:02 +01:00
parent b14fdbb516
commit b890cf73ad
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
1 changed files with 13 additions and 0 deletions

View File

@ -316,6 +316,19 @@ Session::post_engine_init ()
config.map_parameters (ft);
_butler->map_parameters ();
/* Configure all processors; now that the
* engine is running, ports are re-established,
* and IOChange are complete.
*/
{
Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
ProcessorChangeBlocker pcb (this);
boost::shared_ptr<RouteList> r = routes.reader ();
for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
(*i)->configure_processors (0);
}
}
/* Reset all panners */
Delivery::reset_panners ();