summaryrefslogtreecommitdiff
path: root/libs/ardour/disk_reader.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2019-12-10 19:30:28 -0700
committerPaul Davis <paul@linuxaudiosystems.com>2019-12-10 19:30:37 -0700
commite46c45f6f03b28f2dd64434a71d0519e0d6e6278 (patch)
tree42a23397a6b9e15e4d7fb77785f8e89e12e29194 /libs/ardour/disk_reader.cc
parenta660ab25846e74281c46f063b226487f8da84953 (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.cc7
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;
}