diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-09-04 15:45:54 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-09-04 15:45:54 -0400 |
commit | 58dd0198e6dcf40ec684c32019e104f0b1a58472 (patch) | |
tree | f9a61b45e783090048941b39f7dba3121c73ba75 /gtk2_ardour/engine_dialog.h | |
parent | 8060198f75a14d40dc1a7a4e5aef40276359f5a0 (diff) |
save and restore settings for different backend/driver/device combinations
So far, this is only internal - never saved to disk
Diffstat (limited to 'gtk2_ardour/engine_dialog.h')
-rw-r--r-- | gtk2_ardour/engine_dialog.h | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/gtk2_ardour/engine_dialog.h b/gtk2_ardour/engine_dialog.h index 4dd34d9fab..6bd7fb2be0 100644 --- a/gtk2_ardour/engine_dialog.h +++ b/gtk2_ardour/engine_dialog.h @@ -94,6 +94,7 @@ class EngineControl : public Gtk::VBox { Gtk::HBox midi_hbox; sigc::connection sr_connection; + sigc::connection bs_connection; bool _used; @@ -101,6 +102,8 @@ class EngineControl : public Gtk::VBox { void driver_changed (); void backend_changed (); + void sample_rate_changed (); + void buffer_size_changed (); uint32_t get_rate() const; uint32_t get_buffer_size() const; @@ -114,7 +117,25 @@ class EngineControl : public Gtk::VBox { void audio_mode_changed (); void device_changed (); void list_devices (); - void reshow_buffer_sizes (); + void reshow_buffer_sizes (bool choice_changed); + + struct State { + std::string backend; + std::string driver; + std::string device; + std::string sample_rate; + std::string buffer_size; + }; + + typedef std::list<State> StateList; + + StateList states; + + State* get_matching_state (const std::string& backend, + const std::string& driver, + const std::string& device); + State* get_current_state (); + void maybe_set_state (); }; #endif /* __gtk2_ardour_engine_dialog_h__ */ |