From b17dc03047f6edde97084d9a2ba4344dc0679c62 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 27 Jan 2011 23:00:17 +0000 Subject: [PATCH] "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 --- libs/ardour/delivery.cc | 8 +++++--- libs/ardour/panner_shell.cc | 5 ----- libs/ardour/route.cc | 7 +++++++ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/libs/ardour/delivery.cc b/libs/ardour/delivery.cc index 5c535b8918..fd32214446 100644 --- a/libs/ardour/delivery.cc +++ b/libs/ardour/delivery.cc @@ -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; } diff --git a/libs/ardour/panner_shell.cc b/libs/ardour/panner_shell.cc index 7963682bcf..ffe8e66ceb 100644 --- a/libs/ardour/panner_shell.cc +++ b/libs/ardour/panner_shell.cc @@ -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 */ } diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index b732fd09e8..016c72b8a7 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -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 ());