summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_ui_startup.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2019-10-10 15:24:20 -0600
committerPaul Davis <paul@linuxaudiosystems.com>2019-10-10 16:52:00 -0600
commitfe744885613d4f91bf506c7a0b6243e7fa4150b5 (patch)
treed17889a773739651145d3a254cd7003db4233432 /gtk2_ardour/ardour_ui_startup.cc
parenta608bf8c8bc1009ac3477aa6e42f64040b28ad79 (diff)
make ARDOUR_UI::load_session_from_startup_fsm() return a value, and use it
Diffstat (limited to 'gtk2_ardour/ardour_ui_startup.cc')
-rw-r--r--gtk2_ardour/ardour_ui_startup.cc33
1 files changed, 19 insertions, 14 deletions
diff --git a/gtk2_ardour/ardour_ui_startup.cc b/gtk2_ardour/ardour_ui_startup.cc
index e89e5a2f11..2b0eadc405 100644
--- a/gtk2_ardour/ardour_ui_startup.cc
+++ b/gtk2_ardour/ardour_ui_startup.cc
@@ -484,13 +484,21 @@ ARDOUR_UI::sfsm_response (StartupFSM::Result r)
{
switch (r) {
case StartupFSM::ExitProgram:
+ cerr << "ExitProgram\n";
queue_finish ();
break;
case StartupFSM::LoadSession:
+ cerr << "LoadSession\n";
_initial_verbose_plugin_scan = false;
- load_session_from_startup_fsm ();
+ if (load_session_from_startup_fsm () == 0) {
+ startup_fsm->end();
+ delete startup_fsm;
+ startup_fsm = 0;
+ startup_done ();
+ }
break;
case StartupFSM::DoNothing:
+ cerr << "DoNothing\n";
break;
}
}
@@ -532,35 +540,32 @@ ARDOUR_UI::starting ()
return 0;
}
-void
+int
ARDOUR_UI::load_session_from_startup_fsm ()
{
- string session_path = startup_fsm->session_path;
- string session_name = startup_fsm->session_name;
- string session_template = startup_fsm->session_template;
- bool session_is_new = startup_fsm->session_is_new;
- BusProfile bus_profile = startup_fsm->bus_profile;
+ const string session_path = startup_fsm->session_path;
+ const string session_name = startup_fsm->session_name;
+ const string session_template = startup_fsm->session_template;
+ const bool session_is_new = startup_fsm->session_is_new;
+ const BusProfile bus_profile = startup_fsm->bus_profile;
std::cerr << " loading from " << session_path << " as " << session_name << " templ " << session_template << " is_new " << session_is_new << " bp " << bus_profile.master_out_channels << std::endl;
if (session_is_new) {
if (build_session (session_path, session_name, &bus_profile)) {
+ return -1;
}
if (!session_template.empty() && session_template.substr (0, 11) == "urn:ardour:") {
meta_session_setup (session_template.substr (11));
}
- } else {
+ return 0;
+ }
- int ret = load_session (session_path, session_name, session_template);
+ return load_session (session_path, session_name, session_template);
- if (ret == -2) {
- /* not connected to the AudioEngine, so quit to avoid an infinite loop */
- exit (EXIT_FAILURE);
- }
- }
}
void