-#include "ardour_button.h"
-
-class EngineControl : public ArdourDialog, public PBD::ScopedConnectionList {
- public:
- EngineControl ();
- ~EngineControl ();
-
- static bool need_setup ();
-
- XMLNode& get_state ();
- bool set_state (const XMLNode&);
-
- void set_desired_sample_rate (uint32_t);
-
- private:
- Gtk::Notebook notebook;
-
- Gtk::Label engine_status;
-
- /* core fields used by all backends */
-
- Gtk::Table basic_packer;
- Gtk::HBox basic_hbox;
- Gtk::VBox basic_vbox;
-
- Gtk::ComboBoxText backend_combo;
- Gtk::ComboBoxText driver_combo;
- Gtk::ComboBoxText device_combo;
- Gtk::ComboBoxText input_device_combo;
- Gtk::ComboBoxText output_device_combo;
- Gtk::ComboBoxText sample_rate_combo;
- Gtk::ComboBoxText midi_option_combo;
- Gtk::ComboBoxText buffer_size_combo;
- Gtk::Label buffer_size_duration_label;
- Gtk::Adjustment input_latency_adjustment;
- Gtk::SpinButton input_latency;
- Gtk::Adjustment output_latency_adjustment;
- Gtk::SpinButton output_latency;
- Gtk::Adjustment input_channels_adjustment;
- Gtk::SpinButton input_channels;
- Gtk::Adjustment output_channels_adjustment;
- Gtk::SpinButton output_channels;
- Gtk::Adjustment ports_adjustment;
- Gtk::SpinButton ports_spinner;
-
- Gtk::Label have_control_text;
- ArdourButton control_app_button;
- ArdourButton midi_devices_button;
- ArdourButton start_stop_button;
- ArdourButton update_devices_button;
-
- Gtk::Button connect_disconnect_button;
-
- /* latency measurement */
-
- Gtk::ComboBoxText lm_output_channel_combo;
- Gtk::ComboBoxText lm_input_channel_combo;
- Gtk::Label lm_measure_label;
- Gtk::Button lm_measure_button;
- Gtk::Button lm_use_button;
- Gtk::Button lm_back_button;
- ArdourButton lm_button_audio;
- Gtk::Label lm_title;
- Gtk::Label lm_preamble;
- Gtk::Label lm_results;
- Gtk::Table lm_table;
- Gtk::VBox lm_vbox;
- bool have_lm_results;
- bool lm_running;
-
- Gtk::Button* cancel_button;
- Gtk::Button* ok_button;
-
- /* MIDI Tab */
-
- Gtk::VBox midi_vbox;
- Gtk::Button midi_back_button;
- Gtk::Table midi_device_table;
-
- /* MIDI ... JACK */
-
- Gtk::CheckButton aj_button;
-
- uint32_t ignore_changes;
- uint32_t _desired_sample_rate;
- bool started_at_least_once;
- bool queue_device_changed;
-
- void driver_changed ();
- void backend_changed ();
- void sample_rate_changed ();
- void buffer_size_changed ();
- void parameter_changed ();
- void midi_option_changed ();
-
- void setup_midi_tab_for_backend ();
- void setup_midi_tab_for_jack ();
- void refresh_midi_display (std::string focus = "");
+
+class EngineControl : public ArdourDialog, public PBD::ScopedConnectionList
+{
+public:
+ EngineControl ();
+ ~EngineControl ();
+
+ static bool need_setup ();
+
+ XMLNode& get_state ();
+ bool set_state (const XMLNode&);
+
+ void set_desired_sample_rate (uint32_t);
+ bool try_autostart ();
+
+private:
+ Gtk::Notebook notebook;
+
+ Gtk::Label engine_status;
+
+ /* core fields used by all backends */
+
+ Gtk::Table basic_packer;
+ Gtk::HBox basic_hbox;
+ Gtk::VBox basic_vbox;
+
+ Gtk::ComboBoxText backend_combo;
+ Gtk::ComboBoxText driver_combo;
+ Gtk::ComboBoxText device_combo;
+ Gtk::ComboBoxText input_device_combo;
+ Gtk::ComboBoxText output_device_combo;
+ Gtk::ComboBoxText sample_rate_combo;
+ Gtk::ComboBoxText midi_option_combo;
+ Gtk::ComboBoxText buffer_size_combo;
+ Gtk::Label buffer_size_duration_label;
+ Gtk::ComboBoxText nperiods_combo;
+ Gtk::Adjustment input_latency_adjustment;
+ Gtk::SpinButton input_latency;
+ Gtk::Adjustment output_latency_adjustment;
+ Gtk::SpinButton output_latency;
+ Gtk::Adjustment input_channels_adjustment;
+ Gtk::SpinButton input_channels;
+ Gtk::Adjustment output_channels_adjustment;
+ Gtk::SpinButton output_channels;
+ Gtk::Adjustment ports_adjustment;
+ Gtk::SpinButton ports_spinner;
+
+ Gtk::Label have_control_text;
+ ArdourWidgets::ArdourButton control_app_button;
+ ArdourWidgets::ArdourButton midi_devices_button;
+ ArdourWidgets::ArdourButton start_stop_button;
+ ArdourWidgets::ArdourButton update_devices_button;
+ ArdourWidgets::ArdourButton use_buffered_io_button;
+
+ Gtk::Button connect_disconnect_button;
+
+ /* latency measurement */
+
+ Gtk::ComboBoxText lm_output_channel_combo;
+ Gtk::ComboBoxText lm_input_channel_combo;
+ Gtk::Label lm_measure_label;
+ Gtk::Button lm_measure_button;
+ Gtk::Button lm_use_button;
+ Gtk::Button lm_back_button;
+ ArdourWidgets::ArdourButton lm_button_audio;
+ Gtk::Label lm_title;
+ Gtk::Label lm_preamble;
+ Gtk::Label lm_results;
+ Gtk::Table lm_table;
+ Gtk::VBox lm_vbox;
+ bool have_lm_results;
+ bool lm_running;
+
+ /* MIDI Tab */
+
+ Gtk::VBox midi_vbox;
+ Gtk::Button midi_back_button;
+ Gtk::Table midi_device_table;
+
+ /* MIDI ... JACK */
+
+ Gtk::CheckButton aj_button;
+
+ 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;
+
+ void driver_changed ();
+ void backend_changed ();
+ void sample_rate_changed ();
+ void buffer_size_changed ();
+ void nperiods_changed ();
+ void parameter_changed ();
+ void midi_option_changed ();
+
+ void setup_midi_tab_for_backend ();
+ void setup_midi_tab_for_jack ();
+ void refresh_midi_display (std::string focus = "");