fix two thinkos with startup sequence

1) audio/MIDI setup was being shown unnecessarily
2) could crash if entire startup sequence passed without any dialogs being necessary
This commit is contained in:
Paul Davis 2019-10-18 00:07:31 -06:00
parent ebb89ba805
commit 0d86819a2b
2 changed files with 13 additions and 3 deletions

View File

@ -452,6 +452,7 @@ ARDOUR_UI::nsm_init ()
void
ARDOUR_UI::sfsm_response (StartupFSM::Result r)
{
std::cerr << "sfsm::R (" << r << ")\n";
switch (r) {
case StartupFSM::ExitProgram:
cerr << "ExitProgram\n";
@ -496,10 +497,19 @@ ARDOUR_UI::starting ()
startup_fsm = new StartupFSM (*amd);
startup_fsm->start ();
startup_fsm->signal_response().connect (sigc::mem_fun (*this, &ARDOUR_UI::sfsm_response));
if (startup_fsm->brand_new_user()) {
/* Note: entire startup process could happen in this one call
* if:
*
* 1) not a new user
* 2) session name provided on command line (and valid)
* 3) no audio/MIDI setup required
*/
startup_fsm->start ();
if (startup_fsm && startup_fsm->brand_new_user()) {
_initial_verbose_plugin_scan = true;
}
}

View File

@ -199,7 +199,7 @@ StartupFSM::dialog_response_handler (int response, StartupFSM::DialogID dialog_i
audiomidi_dialog.set_desired_sample_rate (session_existing_sample_rate);
}
show_audiomidi_dialog ();
start_audio_midi_setup ();
} else {