diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-03-07 22:13:53 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-03-07 22:13:53 +0000 |
commit | f07ea817511902d6ef52d3aa07dc3539fcc4d11c (patch) | |
tree | 4aa2341043f71485505ff3cf382c433f3bc3c870 /libs/ardour/track.cc | |
parent | 5a0a06f94fd6531a7ec23516c87452c0af384e63 (diff) |
manage Route::_have_internal_generator more accurately and never flush processors if there is on; correctly manage declicking so that only *TRACKS* without internal generators will declick at transport state transitions (fixes horrible click at transport stop in some configurations
git-svn-id: svn://localhost/ardour2/branches/3.0@9100 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/track.cc')
-rw-r--r-- | libs/ardour/track.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libs/ardour/track.cc b/libs/ardour/track.cc index 5767c45e6e..44f84ca3dc 100644 --- a/libs/ardour/track.cc +++ b/libs/ardour/track.cc @@ -690,3 +690,23 @@ Track::send_silence () const return send_silence; } + +void +Track::maybe_declick (BufferSet& bufs, framecnt_t nframes, int declick) +{ + /* never declick if there is an internal generator - we just want it to + keep generating sound without interruption. + */ + + if (_have_internal_generator) { + return; + } + + if (!declick) { + declick = _pending_declick; + } + + if (declick != 0) { + Amp::declick (bufs, nframes, declick); + } +} |