fix up restoration of saved state from disk, still incomplete
This commit is contained in:
parent
418f2ff20a
commit
0cc4ee7b79
@ -303,47 +303,19 @@ EngineControl::device_changed ()
|
||||
void
|
||||
EngineControl::sample_rate_changed ()
|
||||
{
|
||||
bool existing = true;
|
||||
State* state = get_current_state ();
|
||||
|
||||
if (!state) {
|
||||
existing = false;
|
||||
state = new State;
|
||||
state->backend = backend_combo.get_active_text ();
|
||||
state->driver = driver_combo.get_active_text ();
|
||||
state->device = device_combo.get_active_text ();
|
||||
state->buffer_size = buffer_size_combo.get_active_text ();
|
||||
}
|
||||
|
||||
state->sample_rate = sample_rate_combo.get_active_text ();
|
||||
|
||||
if (!existing) {
|
||||
states.push_back (*state);
|
||||
}
|
||||
/* reset the strings for buffer size to show the correct msec value
|
||||
(reflecting the new sample rate
|
||||
*/
|
||||
|
||||
reshow_buffer_sizes (false);
|
||||
save_state ();
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
EngineControl::buffer_size_changed ()
|
||||
{
|
||||
bool existing = true;
|
||||
State* state = get_current_state ();
|
||||
|
||||
if (!state) {
|
||||
existing = false;
|
||||
state = new State;
|
||||
state->backend = backend_combo.get_active_text ();
|
||||
state->driver = driver_combo.get_active_text ();
|
||||
state->device = device_combo.get_active_text ();
|
||||
state->sample_rate = sample_rate_combo.get_active_text ();
|
||||
}
|
||||
|
||||
state->buffer_size = buffer_size_combo.get_active_text ();
|
||||
|
||||
if (!existing) {
|
||||
states.push_back (*state);
|
||||
}
|
||||
save_state ();
|
||||
}
|
||||
|
||||
void
|
||||
@ -452,6 +424,28 @@ EngineControl::get_current_state ()
|
||||
device_combo.get_active_text());
|
||||
}
|
||||
|
||||
void
|
||||
EngineControl::save_state ()
|
||||
{
|
||||
bool existing = true;
|
||||
State* state = get_current_state ();
|
||||
|
||||
if (!state) {
|
||||
existing = false;
|
||||
state = new State;
|
||||
}
|
||||
|
||||
state->backend = backend_combo.get_active_text ();
|
||||
state->driver = driver_combo.get_active_text ();
|
||||
state->device = device_combo.get_active_text ();
|
||||
state->buffer_size = buffer_size_combo.get_active_text ();
|
||||
state->sample_rate = sample_rate_combo.get_active_text ();
|
||||
|
||||
if (!existing) {
|
||||
states.push_back (*state);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
EngineControl::maybe_set_state ()
|
||||
{
|
||||
@ -461,6 +455,10 @@ EngineControl::maybe_set_state ()
|
||||
sr_connection.block ();
|
||||
bs_connection.block ();
|
||||
sample_rate_combo.set_active_text (state->sample_rate);
|
||||
/* need to reset possible strings for buffer size before we do
|
||||
this
|
||||
*/
|
||||
reshow_buffer_sizes (false);
|
||||
buffer_size_combo.set_active_text (state->buffer_size);
|
||||
bs_connection.unblock ();
|
||||
sr_connection.unblock ();
|
||||
|
@ -140,6 +140,7 @@ class EngineControl : public Gtk::VBox {
|
||||
const std::string& device);
|
||||
State* get_current_state ();
|
||||
void maybe_set_state ();
|
||||
void save_state ();
|
||||
};
|
||||
|
||||
#endif /* __gtk2_ardour_engine_dialog_h__ */
|
||||
|
Loading…
Reference in New Issue
Block a user