13
0

"Listen" delivery processors (i.e. monitor out) never get their own panner; Route calls Pannable::set_panner() so that it is always the panner for the main outs that controls the Route's own Pannable

git-svn-id: svn://localhost/ardour2/branches/3.0@8591 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2011-01-27 23:00:17 +00:00
parent d116af22db
commit b17dc03047
3 changed files with 12 additions and 8 deletions

View File

@ -364,6 +364,11 @@ Delivery::set_state (const XMLNode& node, int version)
void
Delivery::reset_panner ()
{
if (_role == Listen) {
/* monitor out gets no panner */
return;
}
if (panners_legal) {
if (!no_panner_reset) {
@ -395,9 +400,6 @@ Delivery::panners_became_legal ()
}
_panshell->configure_io (ChanCount (DataType::AUDIO, pans_required()), ChanCount (DataType::AUDIO, ntargets));
#ifdef PANNER_HACKS
_panner->load (); // automation
#endif
panner_legal_c.disconnect ();
return 0;
}

View File

@ -104,11 +104,6 @@ PannerShell::configure_io (ChanCount in, ChanCount out)
_panner.reset (pi->descriptor.factory (_pannable, _session.get_speakers()));
_panner->configure_io (in, out);
/* PANNER_HACKS: only the real owner should be able to claim the pannable
*/
_pannable->set_panner (_panner);
Changed (); /* EMIT SIGNAL */
}

View File

@ -1602,6 +1602,13 @@ Route::configure_processors_unlocked (ProcessorStreams* err)
_meter->reset_max_channels (processor_max_streams);
}
/* if we haven't bound the main outs panner & our pannable together yet, do it now ..
*/
if (_main_outs && !_pannable->panner()) {
_pannable->set_panner (_main_outs->panner_shell()->panner());
}
/* make sure we have sufficient scratch buffers to cope with the new processor
configuration */
_session.ensure_buffers (n_process_buffers ());