diff options
author | Colin Fletcher <colin.m.fletcher@googlemail.com> | 2014-09-09 11:01:09 +0100 |
---|---|---|
committer | Colin Fletcher <colin.m.fletcher@googlemail.com> | 2014-09-13 15:27:30 +0100 |
commit | 8b4eb07ab7a6b16646baf36c8d140cb694bbc830 (patch) | |
tree | 853ccca25c87c2d89454db91972bfe51745e7d1f /gtk2_ardour | |
parent | c3a5cd487ade4355b3bf2034c0c540409337bec5 (diff) |
Fix restore of Jack driver setting
A small hack to ensure that the driver setting in the audio engine dialog
is restored when ardour starts up and when switching drivers.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/engine_dialog.cc | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index f081ce21e5..9f95ecce08 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -713,9 +713,20 @@ EngineControl::backend_changed () if (!drivers.empty()) { { + string current_driver; + current_driver = backend->driver_name (); + + // driver might not have been set yet + if (current_driver == "") { + current_driver = driver_combo.get_active_text (); + if (current_driver == "") + // driver has never been set, make sure it's not blank + current_driver = drivers.front (); + } + PBD::Unwinder<uint32_t> protect_ignore_changes (ignore_changes, ignore_changes + 1); set_popdown_strings (driver_combo, drivers); - driver_combo.set_active_text (drivers.front()); + driver_combo.set_active_text (current_driver); } driver_changed (); @@ -797,9 +808,20 @@ EngineControl::list_devices () update_sensitivity (); { + string current_device; + current_device = backend->device_name (); + if (current_device == "") { + // device might not have been set yet + current_device = device_combo.get_active_text (); + if (current_device == "") + // device has never been set, make sure it's not blank + current_device = available_devices.front (); + } + PBD::Unwinder<uint32_t> protect_ignore_changes (ignore_changes, ignore_changes + 1); set_popdown_strings (device_combo, available_devices); - device_combo.set_active_text (available_devices.front()); + + device_combo.set_active_text (current_device); } device_changed (); |