diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2019-12-10 19:30:28 -0700 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2019-12-10 19:30:37 -0700 |
commit | e46c45f6f03b28f2dd64434a71d0519e0d6e6278 (patch) | |
tree | 42a23397a6b9e15e4d7fb77785f8e89e12e29194 /libs/ardour/disk_reader.cc | |
parent | a660ab25846e74281c46f063b226487f8da84953 (diff) |
fix unnecssary disruption of MIDI stream when disabling loop
Diffstat (limited to 'libs/ardour/disk_reader.cc')
-rw-r--r-- | libs/ardour/disk_reader.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libs/ardour/disk_reader.cc b/libs/ardour/disk_reader.cc index 560d49458b..375cc1c937 100644 --- a/libs/ardour/disk_reader.cc +++ b/libs/ardour/disk_reader.cc @@ -526,6 +526,10 @@ DiskReader::set_pending_overwrite (OverwriteReason why) overwrite_offset = c->front()->rbuf->read_ptr(); } + if (why & (PlaylistModified|PlaylistChanged)) { + run_must_resolve = true; + } + while (true) { OverwriteReason current = OverwriteReason (g_atomic_int_get (&_pending_overwrite)); OverwriteReason next = OverwriteReason (current | why); @@ -534,7 +538,6 @@ DiskReader::set_pending_overwrite (OverwriteReason why) } } - run_must_resolve = true; } bool @@ -633,7 +636,7 @@ DiskReader::overwrite_existing_buffers () } } - if (g_atomic_int_get (&_pending_overwrite) & (LoopChanged|LoopDisabled|PlaylistChanged)) { + if (g_atomic_int_get (&_pending_overwrite) & (PlaylistModified|PlaylistChanged)) { if (!overwrite_existing_midi ()) { ret = false; } |