summaryrefslogtreecommitdiff
path: root/gtk2_ardour/engine_dialog.h
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-01-29 01:12:32 +0100
committerRobin Gareus <robin@gareus.org>2016-01-29 01:12:53 +0100
commitc0a843a905a094659bbf95fd9a9602edcce60f54 (patch)
tree4d83c17199e7d9eb4f6871b42f9ccfc1562e73a3 /gtk2_ardour/engine_dialog.h
parentcf558ee18ca35e29d4d688cd5601085c92fcafb5 (diff)
fix device-list update concurrency issue.
It may happen that during push_state_to_backend() a device is reconfigured in a way that triggers a "Device Changed" callback before the engine is started. This callback can trigger a change to the configuration that will be used when the engine is actually started. This has been seen on OSX in conjunction with Aggregate Devices (even if the aggregate is not used, but the device which is used is also part of an aggregate) example: HW changed callback arrives, device-list is re-populated, *A*irplay" is at the top of the list, Airplay supports only 44.1K, Samplerate changes... later save also writes this new rate to the file.
Diffstat (limited to 'gtk2_ardour/engine_dialog.h')
-rw-r--r--gtk2_ardour/engine_dialog.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/gtk2_ardour/engine_dialog.h b/gtk2_ardour/engine_dialog.h
index d5c54d088e..71c95cc209 100644
--- a/gtk2_ardour/engine_dialog.h
+++ b/gtk2_ardour/engine_dialog.h
@@ -120,7 +120,8 @@ class EngineControl : public ArdourDialog, public PBD::ScopedConnectionList {
Gtk::CheckButton aj_button;
- uint32_t ignore_changes;
+ uint32_t ignore_changes; // state save/load
+ uint32_t ignore_device_changes; // AudioEngine::DeviceListChanged
uint32_t _desired_sample_rate;
bool started_at_least_once;
bool queue_device_changed;