summaryrefslogtreecommitdiff
path: root/libs/ardour/delivery.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/delivery.cc')
-rw-r--r--libs/ardour/delivery.cc10
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