diff options
author | Robin Gareus <robin@gareus.org> | 2017-09-28 16:06:57 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-09-29 05:03:48 +0200 |
commit | ddd4e3cf1d9e253f638719ca0664a0598383e857 (patch) | |
tree | de52e7ee2208218d610c4cc10167844128adceed /libs/ardour/send.cc | |
parent | f974cd5401f8e042f7c221261c5ce18b9adb8859 (diff) |
Aux-Send Latency compensation, part 1: latent sources
Diffstat (limited to 'libs/ardour/send.cc')
-rw-r--r-- | libs/ardour/send.cc | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/libs/ardour/send.cc b/libs/ardour/send.cc index 28f4286f70..ae442d5715 100644 --- a/libs/ardour/send.cc +++ b/libs/ardour/send.cc @@ -131,7 +131,14 @@ Send::deactivate () } void -Send::set_delay_in(samplecnt_t delay) +Send::set_output_latency (samplecnt_t cnt) +{ + Processor::set_output_latency (cnt); + set_delay_in (cnt); +} + +void +Send::set_delay_in (samplecnt_t delay) { if (!_delayline) return; if (_delay_in == delay) { @@ -140,13 +147,13 @@ Send::set_delay_in(samplecnt_t delay) _delay_in = delay; DEBUG_TRACE (DEBUG::LatencyCompensation, - string_compose ("Send::set_delay_in(%1) + %2 = %3\n", - delay, _delay_out, _delay_out + _delay_in)); - _delayline.get()->set_delay(_delay_out + _delay_in); + string_compose ("Send::set_delay_in %1: (%2) - %3 = %4\n", + name (), _delay_in, _delay_out, _delay_in - _delay_out)); + _delayline->set_delay(_delay_in - _delay_out); } void -Send::set_delay_out(samplecnt_t delay) +Send::set_delay_out (samplecnt_t delay) { if (!_delayline) return; if (_delay_out == delay) { @@ -154,9 +161,9 @@ Send::set_delay_out(samplecnt_t delay) } _delay_out = delay; DEBUG_TRACE (DEBUG::LatencyCompensation, - string_compose ("Send::set_delay_out(%1) + %2 = %3\n", - delay, _delay_in, _delay_out + _delay_in)); - _delayline.get()->set_delay(_delay_out + _delay_in); + string_compose ("Send::set_delay_out %1: %2 - (%3) = %4\n", + name (), _delay_in, _delay_out, _delay_in - _delay_out)); + _delayline->set_delay(_delay_in - _delay_out); } void |