Tweak, optimize route setup
authorRobin Gareus <robin@gareus.org>
Tue, 5 Mar 2019 23:03:46 +0000 (00:03 +0100)
committerRobin Gareus <robin@gareus.org>
Tue, 5 Mar 2019 23:03:46 +0000 (00:03 +0100)
Speed up route creation: add_processor() takes a process-lock
and calls configure_processors() but this is done explicitly at the
end of init() already.

libs/ardour/route.cc

index 9997e72ba2ea042e12558f9b9c808ffaeca39577..89ab442e18ab20bbba99cdc3fee808d107c53fca 100644 (file)
@@ -187,7 +187,8 @@ Route::init ()
         */
 
        _amp.reset (new Amp (_session, X_("Fader"), _gain_control, true));
-       add_processor (_amp, PostFader);
+       _amp->activate ();
+       _amp->set_owner (this);
 
        _polarity.reset (new PolarityProcessor (_session, _phase_control));
        _polarity->activate();
@@ -244,10 +245,13 @@ Route::init ()
                panner_shell()->select_panner_by_uri ("http://ardour.org/plugin/panner_balance");
        }
 
-       /* now that we have _meter, its safe to connect to this */
-
+       /* now set up processor chain and invisible processors */
        {
                Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
+               {
+                       Glib::Threads::RWLock::WriterLock lm (_processor_lock);
+                       _processors.push_back (_amp);
+               }
                configure_processors (0);
        }