diff --git a/gtk2_ardour/ardour_ui_startup.cc b/gtk2_ardour/ardour_ui_startup.cc index 1310a89e4d..e321c6fe38 100644 --- a/gtk2_ardour/ardour_ui_startup.cc +++ b/gtk2_ardour/ardour_ui_startup.cc @@ -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; } } diff --git a/gtk2_ardour/startup_fsm.cc b/gtk2_ardour/startup_fsm.cc index fbe203aaad..596ed82c0d 100644 --- a/gtk2_ardour/startup_fsm.cc +++ b/gtk2_ardour/startup_fsm.cc @@ -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 {