From 47b8fa21699e58f733f0ecb879193092f93c93d8 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 25 Nov 2009 23:29:52 +0000 Subject: Give Processor::run a new parameter to say whether or not the run method must leave the passed-in buffers valid. In the case where the main outs delivery is the last processor in a route, this is not necessary (and wasteful). If another processor (e.g. a meter) follows the main outs, the passed-in (scratch) buffers must be valid or the meter will get garbage data. Fixes meters displaying phantom signals in some cases. git-svn-id: svn://localhost/ardour2/branches/3.0@6180 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/ardour/processor.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libs/ardour/ardour/processor.h') diff --git a/libs/ardour/ardour/processor.h b/libs/ardour/ardour/processor.h index 3ec4a9885d..c57eb4354c 100644 --- a/libs/ardour/ardour/processor.h +++ b/libs/ardour/ardour/processor.h @@ -70,7 +70,10 @@ class Processor : public SessionObject, public AutomatableControls, public Laten virtual void set_block_size (nframes_t /*nframes*/) {} - virtual void run (BufferSet& /*bufs*/, sframes_t /*start_frame*/, sframes_t /*end_frame*/, nframes_t /*nframes*/) {} + /** @param result_required true if, on return from this method, bufs is required to contain valid data; + * if false, the method need not bother writing to bufs if it doesn't want to. + */ + virtual void run (BufferSet& /*bufs*/, sframes_t /*start_frame*/, sframes_t /*end_frame*/, nframes_t /*nframes*/, bool /*result_required*/) {} virtual void silence (nframes_t /*nframes*/) {} virtual void activate () { _pending_active = true; ActiveChanged(); } -- cgit v1.2.3