Process Panner Automatables (emit Changed)
authorRobin Gareus <robin@gareus.org>
Sun, 31 Dec 2017 17:12:04 +0000 (18:12 +0100)
committerRobin Gareus <robin@gareus.org>
Sun, 31 Dec 2017 17:15:34 +0000 (18:15 +0100)
Pan-automation is evaluated directly from the control-list.
::distribute_automated() does not update the controls.

However, the *owner* of each automation-control is responsible to
evaluate automation of automated automation-controls (and emit Changed()
signals to notify the GUI and slaved controls).

This follow the same concept as PluginInsert: The Changed signal
is called on demand when evaluating automation.

This fixes pan-automation-sliders (automation-lane header) not updating.

libs/ardour/route.cc

index 639a0e19bc107136f01b3b120bcfdc8ac3413af5..ee31b2a4e769975af1fd702f1bd71ab48fc4a717 100644 (file)
@@ -335,6 +335,10 @@ Route::process_output_buffers (BufferSet& bufs,
         */
        automation_run (start_sample, nframes);
 
+       if (_pannable) {
+               _pannable->automation_run (start_sample + _signal_latency, nframes);
+       }
+
        /* figure out if we're going to use gain automation */
        if (gain_automation_ok) {
                _amp->set_gain_automation_buffer (_session.gain_automation_buffer ());
@@ -3090,6 +3094,9 @@ Route::silence_unlocked (samplecnt_t nframes)
 
        // update owned automated controllables
        automation_run (now, nframes);
+       if (_pannable) {
+               _pannable->automation_run (now, nframes);
+       }
 
        for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) {
                boost::shared_ptr<PluginInsert> pi;