X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fengine_dialog.cc;h=e6c787359fab728278b555bb443cf75fe28d75e9;hb=c734f82ff224c6316c20d9c936895fbd35f8e43c;hp=625b476acca5b6baf3c20e5bbe8cb6369b50b890;hpb=212a4c1f8d00a65e868f8a3baad1a7c48b795c67;p=ardour.git diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index 625b476acc..e6c787359f 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -607,7 +607,13 @@ EngineControl::build_full_control_notebook () label = manage (left_aligned_label (_("MIDI System:"))); basic_packer.attach (*label, 0, 1, row, row + 1, xopt, (AttachOptions) 0); basic_packer.attach (midi_option_combo, 1, 2, row, row + 1, SHRINK, (AttachOptions) 0); +#if ! defined __APPLE__ && ! defined PLATFORM_WINDOWS // => linux, YAY + /* Currently the only backend with dedicated Midi setup is ALSA. + * lot of people complain that this is greyed out + * "I can't use MIDI, the setup is greyed out" + */ basic_packer.attach (midi_devices_button, 3, 4, row, row+1, xopt, xopt); +#endif row++; } @@ -800,12 +806,18 @@ EngineControl::update_sensitivity () input_device_combo.set_sensitive (false); output_device_combo.set_sensitive (false); device_combo.set_sensitive (false); + driver_combo.set_sensitive (false); stop_engine_button.set_sensitive (true); stop_engine_button.show (); } else { input_device_combo.set_sensitive (true); output_device_combo.set_sensitive (true); device_combo.set_sensitive (true); + if (backend->requires_driver_selection() && get_popdown_string_count(driver_combo) > 0) { + driver_combo.set_sensitive (true); + } else { + driver_combo.set_sensitive (false); + } stop_engine_button.set_sensitive (false); stop_engine_button.hide (); } @@ -920,7 +932,7 @@ EngineControl::backend_changed () string backend_name = backend_combo.get_active_text(); boost::shared_ptr backend; - if (!(backend = ARDOUR::AudioEngine::instance()->set_backend (backend_name, "ardour", ""))) { + if (!(backend = ARDOUR::AudioEngine::instance()->set_backend (backend_name, downcase (PROGRAM_NAME), ""))) { /* eh? setting the backend failed... how ? */ /* A: stale config contains a backend that does not exist in current build */ return; @@ -936,12 +948,9 @@ EngineControl::backend_changed () if (backend->requires_driver_selection()) { if (set_driver_popdown_strings ()) { - driver_combo.set_sensitive (true); driver_changed (); } - } else { - driver_combo.set_sensitive (false); /* this will change the device text which will cause a call to * device changed which will set up parameters */ @@ -1210,7 +1219,7 @@ EngineControl::get_sample_rates_for_all_devices () vector all_rates; if (backend->use_separate_input_and_output_devices ()) { - all_rates = backend->available_sample_rates (get_input_device_name (), get_output_device_name ()); + all_rates = backend->available_sample_rates2 (get_input_device_name (), get_output_device_name ()); } else { all_rates = backend->available_sample_rates (get_device_name ()); } @@ -1282,7 +1291,7 @@ EngineControl::get_buffer_sizes_for_all_devices () vector all_sizes; if (backend->use_separate_input_and_output_devices ()) { - all_sizes = backend->available_buffer_sizes (get_input_device_name (), get_output_device_name ()); + all_sizes = backend->available_buffer_sizes2 (get_input_device_name (), get_output_device_name ()); } else { all_sizes = backend->available_buffer_sizes (get_device_name ()); } @@ -1922,7 +1931,7 @@ EngineControl::set_current_state (const State& state) boost::shared_ptr backend; if (!(backend = ARDOUR::AudioEngine::instance ()->set_backend ( - state->backend, "ardour", ""))) { + state->backend, downcase (PROGRAM_NAME), ""))) { DEBUG_ECONTROL (string_compose ("Unable to set backend to %1", state->backend)); // this shouldn't happen as the invalid backend names should have been // removed from the list of states. @@ -2396,7 +2405,7 @@ EngineControl::get_backend () const string EngineControl::get_driver () const { - if (driver_combo.get_sensitive() && driver_combo.get_parent()) { + if (driver_combo.get_parent()) { return driver_combo.get_active_text (); } else { return "";