summaryrefslogtreecommitdiff
path: root/gtk2_ardour/engine_dialog.h
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2015-05-05 12:59:26 +1000
committerRobin Gareus <robin@gareus.org>2015-05-31 20:02:07 +0200
commitd9f24a46aa95e6cd0afa55d14702565a67cf9e9d (patch)
tree70d2a6f979872e82132002289ee032e1d6d43fdc /gtk2_ardour/engine_dialog.h
parentbb3b15ef96ed76dd47c0563644d20b68da340037 (diff)
Allow selection of input and output devices in EngineDialog for backends that support it
Some refactoring was necessary to avoid code duplication Restoring of device state for input and output devices still doesn't work correctly. I'm not quite sure what the issue is at this stage.
Diffstat (limited to 'gtk2_ardour/engine_dialog.h')
-rw-r--r--gtk2_ardour/engine_dialog.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/gtk2_ardour/engine_dialog.h b/gtk2_ardour/engine_dialog.h
index 75dc9deb3e..1ca9937324 100644
--- a/gtk2_ardour/engine_dialog.h
+++ b/gtk2_ardour/engine_dialog.h
@@ -64,6 +64,8 @@ class EngineControl : public ArdourDialog, public PBD::ScopedConnectionList {
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;
@@ -141,11 +143,20 @@ class EngineControl : public ArdourDialog, public PBD::ScopedConnectionList {
uint32_t get_input_latency() const;
uint32_t get_output_latency() const;
std::string get_device_name() const;
+ std::string get_input_device_name() const;
+ std::string get_output_device_name() const;
std::string get_driver() const;
std::string get_backend() const;
std::string get_midi_option () const;
void device_changed ();
+ void input_device_changed ();
+ void output_device_changed ();
+ bool set_device_popdown_strings ();
+ bool set_input_device_popdown_strings ();
+ bool set_output_device_popdown_strings ();
+ void set_samplerate_popdown_strings (const std::string& dev_name);
+ void set_buffersize_popdown_strings (const std::string& dev_name);
void list_devices ();
void show_buffer_duration ();
@@ -182,6 +193,8 @@ class EngineControl : public ArdourDialog, public PBD::ScopedConnectionList {
std::string backend;
std::string driver;
std::string device;
+ std::string input_device;
+ std::string output_device;
float sample_rate;
uint32_t buffer_size;
uint32_t input_latency;
@@ -211,10 +224,15 @@ class EngineControl : public ArdourDialog, public PBD::ScopedConnectionList {
State get_matching_state (const std::string& backend,
const std::string& driver,
const std::string& device);
+ State get_matching_state (const std::string& backend,
+ const std::string& driver,
+ const std::string& input_device,
+ const std::string& output_device);
State get_saved_state_for_currently_displayed_backend_and_device ();
void maybe_display_saved_state ();
State save_state ();
void store_state (State);
+ bool equivalent_states (const State&, const State&);
bool _have_control;