diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-09-16 10:18:25 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-09-16 10:18:25 -0400 |
commit | 4d503c20539e465fb88bdba5edfb23d999c31539 (patch) | |
tree | 7a1e9253f4ad3dc3d600784482d7c828d792f7df /gtk2_ardour | |
parent | 7cc451d81d456b9073877db7c53262bc38be8c0f (diff) |
commit some logic problems with the EngineDialog when change the driver/device name combos
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/engine_dialog.cc | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index d724f4f4d3..e8f9bfdf6b 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -387,8 +387,10 @@ EngineControl::list_devices () available_devices.push_back (i->name); } + ignore_changes++; set_popdown_strings (device_combo, available_devices); - + ignore_changes--; + if (!available_devices.empty()) { sample_rate_combo.set_sensitive (true); buffer_size_combo.set_sensitive (true); @@ -464,12 +466,20 @@ EngineControl::device_changed () } } - set_popdown_strings (sample_rate_combo, s); - if (desired.empty()) { - sample_rate_combo.set_active_text (s.front()); + if (!s.empty()) { + set_popdown_strings (sample_rate_combo, s); + + if (desired.empty()) { + sample_rate_combo.set_active_text (s.front()); + } else { + sample_rate_combo.set_active_text (desired); + } } else { - sample_rate_combo.set_active_text (desired); + /* hmm ... how to tell the user about the fact that we have no + * available sample rates. + */ } + vector<uint32_t> bs = backend->available_buffer_sizes(device_name); s.clear (); @@ -482,9 +492,15 @@ EngineControl::device_changed () s.push_back (buf); } - set_popdown_strings (buffer_size_combo, s); - buffer_size_combo.set_active_text (s.front()); - show_buffer_duration (); + if (!s.empty()) { + set_popdown_strings (buffer_size_combo, s); + buffer_size_combo.set_active_text (s.front()); + show_buffer_duration (); + } else { + /* hmm ... how to tell the user about the fact that we have no + * available buffer sizes. + */ + } manage_control_app_sensitivity (); |