summaryrefslogtreecommitdiff
path: root/gtk2_ardour/engine_dialog.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-09-04 15:45:54 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-09-04 15:45:54 -0400
commit58dd0198e6dcf40ec684c32019e104f0b1a58472 (patch)
treef9a61b45e783090048941b39f7dba3121c73ba75 /gtk2_ardour/engine_dialog.h
parent8060198f75a14d40dc1a7a4e5aef40276359f5a0 (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.h23
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__ */