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
|
void
|
||||||
EngineControl::sample_rate_changed ()
|
EngineControl::sample_rate_changed ()
|
||||||
{
|
{
|
||||||
bool existing = true;
|
/* reset the strings for buffer size to show the correct msec value
|
||||||
State* state = get_current_state ();
|
(reflecting the new sample rate
|
||||||
|
*/
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
reshow_buffer_sizes (false);
|
reshow_buffer_sizes (false);
|
||||||
|
save_state ();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
EngineControl::buffer_size_changed ()
|
EngineControl::buffer_size_changed ()
|
||||||
{
|
{
|
||||||
bool existing = true;
|
save_state ();
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -452,6 +424,28 @@ EngineControl::get_current_state ()
|
||||||
device_combo.get_active_text());
|
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
|
void
|
||||||
EngineControl::maybe_set_state ()
|
EngineControl::maybe_set_state ()
|
||||||
{
|
{
|
||||||
|
@ -461,6 +455,10 @@ EngineControl::maybe_set_state ()
|
||||||
sr_connection.block ();
|
sr_connection.block ();
|
||||||
bs_connection.block ();
|
bs_connection.block ();
|
||||||
sample_rate_combo.set_active_text (state->sample_rate);
|
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);
|
buffer_size_combo.set_active_text (state->buffer_size);
|
||||||
bs_connection.unblock ();
|
bs_connection.unblock ();
|
||||||
sr_connection.unblock ();
|
sr_connection.unblock ();
|
||||||
|
|
|
@ -140,6 +140,7 @@ class EngineControl : public Gtk::VBox {
|
||||||
const std::string& device);
|
const std::string& device);
|
||||||
State* get_current_state ();
|
State* get_current_state ();
|
||||||
void maybe_set_state ();
|
void maybe_set_state ();
|
||||||
|
void save_state ();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* __gtk2_ardour_engine_dialog_h__ */
|
#endif /* __gtk2_ardour_engine_dialog_h__ */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user