diff options
author | Robin Gareus <robin@gareus.org> | 2017-09-29 04:07:20 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-09-29 05:03:48 +0200 |
commit | eb6df8939dfb483b46b0549f39db219876bd4d2c (patch) | |
tree | bde06bc430e61a3e98a2ddc10bf05fef9cf050fc /libs/ardour/delayline.cc | |
parent | 5a2ea4d0e2b9afb23da25e43e1f6b7a3cbe4df11 (diff) |
Delayline: report if set_delay() actually changed the delay
Diffstat (limited to 'libs/ardour/delayline.cc')
-rw-r--r-- | libs/ardour/delayline.cc | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/libs/ardour/delayline.cc b/libs/ardour/delayline.cc index d92eec6a0a..0416a9a0bb 100644 --- a/libs/ardour/delayline.cc +++ b/libs/ardour/delayline.cc @@ -283,7 +283,7 @@ DelayLine::run (BufferSet& bufs, samplepos_t /* start_sample */, samplepos_t /* _delay = pending_delay; } -void +bool DelayLine::set_delay(samplecnt_t signal_delay) { if (signal_delay < 0) { @@ -291,13 +291,20 @@ DelayLine::set_delay(samplecnt_t signal_delay) cerr << "WARNING: latency compensation is not possible.\n"; } + if (signal_delay == _pending_delay) { + DEBUG_TRACE (DEBUG::LatencyCompensation, + string_compose ("%1 set_delay - no change: %2 samples for %3 channels\n", + name(), signal_delay, _configured_output.n_audio())); + return false; + } + DEBUG_TRACE (DEBUG::LatencyCompensation, string_compose ("%1 set_delay to %2 samples for %3 channels\n", name(), signal_delay, _configured_output.n_audio())); if (signal_delay <= _bsiz) { _pending_delay = signal_delay; - return; + return true; } if (_pending_bsiz) { @@ -306,7 +313,7 @@ DelayLine::set_delay(samplecnt_t signal_delay) } else { _pending_delay = signal_delay; } - return; + return true; } allocate_pending_buffers (signal_delay); @@ -316,6 +323,8 @@ DelayLine::set_delay(samplecnt_t signal_delay) DEBUG_TRACE (DEBUG::LatencyCompensation, string_compose ("allocated buffer for %1 of size %2\n", name(), signal_delay)); + + return true; } bool |