summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorColin Fletcher <colin.m.fletcher@googlemail.com>2014-09-09 11:01:09 +0100
committerColin Fletcher <colin.m.fletcher@googlemail.com>2014-09-13 15:27:30 +0100
commit8b4eb07ab7a6b16646baf36c8d140cb694bbc830 (patch)
tree853ccca25c87c2d89454db91972bfe51745e7d1f /gtk2_ardour
parentc3a5cd487ade4355b3bf2034c0c540409337bec5 (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.cc26
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 ();