summaryrefslogtreecommitdiff
path: root/libs/ardour/send.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-07-21 14:39:21 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-07-21 14:39:21 +0000
commitf41149628955fc8145bef6db0c110b71664c0a3a (patch)
tree316e15017f50f3f320ee6a74edbc57eaf35cbd6e /libs/ardour/send.cc
parent2093d59a9613dccd509c90f5413b1a2efd164c4b (diff)
fix clicking when processors become active/inactive; reduce crazy 2.5sec delay for quit dialog
git-svn-id: svn://localhost/ardour2/branches/3.0@5402 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/send.cc')
-rw-r--r--libs/ardour/send.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/libs/ardour/send.cc b/libs/ardour/send.cc
index ea4c16a416..1728dc52d9 100644
--- a/libs/ardour/send.cc
+++ b/libs/ardour/send.cc
@@ -86,8 +86,16 @@ Send::deactivate ()
void
Send::run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframes_t nframes)
{
- if (!_active || _output->n_ports() == ChanCount::ZERO) {
+ if (_output->n_ports() == ChanCount::ZERO) {
_meter->reset ();
+ _active = _pending_active;
+ return;
+ }
+
+ if (!_active && !_pending_active) {
+ _meter->reset ();
+ _output->silence (nframes);
+ _active = _pending_active;
return;
}
@@ -118,6 +126,8 @@ Send::run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframes_
_meter->run (*_output_buffers, start_frame, end_frame, nframes);
}
}
+
+ /* _active was set to _pending_active by Delivery::run() */
}
XMLNode&