diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2020-05-12 10:06:36 -0600 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2020-05-12 11:34:37 -0600 |
commit | 7138e76d2d86881c5d6b92b63e61802e112b3b97 (patch) | |
tree | 1edf34beb6cb5f5bda6d605f548aa73893b54fb2 /libs/ardour/disk_reader.cc | |
parent | 6a542fe5fec00cc53ac0b01e804a3fea434ef8db (diff) |
new mechanism to refill pre-loop buffer when loop changes (used for xfading loop ends)
Diffstat (limited to 'libs/ardour/disk_reader.cc')
-rw-r--r-- | libs/ardour/disk_reader.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libs/ardour/disk_reader.cc b/libs/ardour/disk_reader.cc index 69b7a7dad3..29e53df87a 100644 --- a/libs/ardour/disk_reader.cc +++ b/libs/ardour/disk_reader.cc @@ -64,6 +64,7 @@ DiskReader::DiskReader (Session& s, string const& str, DiskIOProcessor::Flag f) , _declick_amp (s.nominal_sample_rate ()) , _declick_offs (0) , _declick_enabled (false) + , last_refill_loop_start (0) { file_sample[DataType::AUDIO] = 0; file_sample[DataType::MIDI] = 0; @@ -1044,6 +1045,10 @@ DiskReader::audio_read (Sample* sum_buffer, loop_declick_out.run (sum_buffer, start, start + this_read); break; case XFadeLoop: + if (last_refill_loop_start != loc->start()) { + setup_preloop_buffer (); + last_refill_loop_start = loc->start(); + } maybe_xfade_loop (sum_buffer, start, start + this_read, rci); break; } |