diff options
Diffstat (limited to 'libs/ardour/delivery.cc')
-rw-r--r-- | libs/ardour/delivery.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libs/ardour/delivery.cc b/libs/ardour/delivery.cc index 72f24c065e..ec2ae7d4cc 100644 --- a/libs/ardour/delivery.cc +++ b/libs/ardour/delivery.cc @@ -275,7 +275,7 @@ Delivery::configure_io (ChanCount in, ChanCount out) } void -Delivery::run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframes_t nframes) +Delivery::run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframes_t nframes, bool result_required) { assert (_output); @@ -318,7 +318,9 @@ Delivery::run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nfra */ _output->silence (nframes); - Amp::apply_simple_gain (bufs, nframes, 0.0); + if (result_required) { + Amp::apply_simple_gain (bufs, nframes, 0.0); + } goto out; } else if (tgain != 1.0) { @@ -333,6 +335,10 @@ Delivery::run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nfra _panner->run (bufs, output_buffers(), start_frame, end_frame, nframes); + if (result_required) { + bufs.read_from (output_buffers (), nframes); + } + } else { // Do a 1:1 copy of data to output ports |