diff options
author | Carl Hetherington <carl@carlh.net> | 2009-11-25 23:29:52 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2009-11-25 23:29:52 +0000 |
commit | 47b8fa21699e58f733f0ecb879193092f93c93d8 (patch) | |
tree | a47e1b89847432a89dba16f09cf8dc4700ee8d6f /libs/ardour/return.cc | |
parent | fe59ade87415d72072009f1e77a892f9989819a0 (diff) |
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
Diffstat (limited to 'libs/ardour/return.cc')
-rw-r--r-- | libs/ardour/return.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libs/ardour/return.cc b/libs/ardour/return.cc index f5122f3a5f..82d1cf6ff2 100644 --- a/libs/ardour/return.cc +++ b/libs/ardour/return.cc @@ -120,7 +120,7 @@ Return::set_state (const XMLNode& node, int version) } void -Return::run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframes_t nframes) +Return::run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframes_t nframes, bool) { if ((!_active && !_pending_active) || _input->n_ports() == ChanCount::ZERO) { return; @@ -132,13 +132,13 @@ Return::run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframe // Can't automate gain for sends or returns yet because we need different buffers // so that we don't overwrite the main automation data for the route amp // _amp->setup_gain_automation (start_frame, end_frame, nframes); - _amp->run (bufs, start_frame, end_frame, nframes); + _amp->run (bufs, start_frame, end_frame, nframes, true); if (_metering) { if (_amp->gain_control()->get_value() == 0) { _meter->reset(); } else { - _meter->run (bufs, start_frame, end_frame, nframes); + _meter->run (bufs, start_frame, end_frame, nframes, true); } } |