From ddd4e3cf1d9e253f638719ca0664a0598383e857 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 28 Sep 2017 16:06:57 +0200 Subject: Aux-Send Latency compensation, part 1: latent sources --- libs/ardour/send.cc | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'libs/ardour/send.cc') 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 -- cgit v1.2.3