summaryrefslogtreecommitdiff
path: root/libs/ardour/audioengine.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-09-20 19:38:34 +0200
committerRobin Gareus <robin@gareus.org>2019-09-20 19:41:05 +0200
commit467795f46747396edddae9fd5e9d531304d14c00 (patch)
treed5e82b68059983ebe76b01fee7e3526b467a16d8 /libs/ardour/audioengine.cc
parent4d2ccdd9055cf47fcfa165f8b751a91b1030fd7f (diff)
Fix Latency Measurement without device re-start
This handles a case when the engine was started normally (not for latency measurement), and measurement is performed later. This resulted in a duplicate backend start
Diffstat (limited to 'libs/ardour/audioengine.cc')
-rw-r--r--libs/ardour/audioengine.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc
index 73e48f1e93..7fe9bebed1 100644
--- a/libs/ardour/audioengine.cc
+++ b/libs/ardour/audioengine.cc
@@ -898,6 +898,10 @@ AudioEngine::start (bool for_latency)
return -1;
}
+ if (_running && _backend->can_change_systemic_latency_when_running()) {
+ _started_for_latency = for_latency;
+ }
+
if (_running) {
return 0;
}
@@ -963,7 +967,7 @@ AudioEngine::stop (bool for_latency)
if (for_latency && _backend->can_change_systemic_latency_when_running()) {
stop_engine = false;
- if (_running) {
+ if (_running && _started_for_latency) {
_backend->start (false); // keep running, reload latencies
}
} else {