"Listen" delivery processors (i.e. monitor out) never get their own panner; Route...
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 27 Jan 2011 23:00:17 +0000 (23:00 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 27 Jan 2011 23:00:17 +0000 (23:00 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@8591 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/delivery.cc
libs/ardour/panner_shell.cc
libs/ardour/route.cc

index 5c535b89182860bea73c89769c5753bda324606d..fd32214446e4c0e70e8c8ffc8ed748bf84a2a6f1 100644 (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;
 }
index 7963682bcffab0d91d71f4c55eae0e67fb631f9b..ffe8e66cebe59af31831f0c443abca1ecfb28e16 100644 (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 */
 }
 
index b732fd09e8b6c08cff0b59fbfd6b0fff85d62782..016c72b8a727e30e458d53e50507a522e7fb2a3b 100644 (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 ());