make ARDOUR_UI::load_session_from_startup_fsm() return a value, and use it
This commit is contained in:
parent
a608bf8c8b
commit
fe74488561
@ -225,7 +225,7 @@ public:
|
|||||||
void session_dialog_response_handler (int response, SessionDialog* session_dialog);
|
void session_dialog_response_handler (int response, SessionDialog* session_dialog);
|
||||||
int build_session_from_dialog (SessionDialog&, const std::string& session_name, const std::string& session_path);
|
int build_session_from_dialog (SessionDialog&, const std::string& session_name, const std::string& session_path);
|
||||||
bool ask_about_loading_existing_session (const std::string& session_path);
|
bool ask_about_loading_existing_session (const std::string& session_path);
|
||||||
void load_session_from_startup_fsm ();
|
int load_session_from_startup_fsm ();
|
||||||
|
|
||||||
/// @return true if session was successfully unloaded.
|
/// @return true if session was successfully unloaded.
|
||||||
int unload_session (bool hide_stuff = false);
|
int unload_session (bool hide_stuff = false);
|
||||||
|
@ -484,13 +484,21 @@ ARDOUR_UI::sfsm_response (StartupFSM::Result r)
|
|||||||
{
|
{
|
||||||
switch (r) {
|
switch (r) {
|
||||||
case StartupFSM::ExitProgram:
|
case StartupFSM::ExitProgram:
|
||||||
|
cerr << "ExitProgram\n";
|
||||||
queue_finish ();
|
queue_finish ();
|
||||||
break;
|
break;
|
||||||
case StartupFSM::LoadSession:
|
case StartupFSM::LoadSession:
|
||||||
|
cerr << "LoadSession\n";
|
||||||
_initial_verbose_plugin_scan = false;
|
_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;
|
break;
|
||||||
case StartupFSM::DoNothing:
|
case StartupFSM::DoNothing:
|
||||||
|
cerr << "DoNothing\n";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -532,35 +540,32 @@ ARDOUR_UI::starting ()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
int
|
||||||
ARDOUR_UI::load_session_from_startup_fsm ()
|
ARDOUR_UI::load_session_from_startup_fsm ()
|
||||||
{
|
{
|
||||||
string session_path = startup_fsm->session_path;
|
const string session_path = startup_fsm->session_path;
|
||||||
string session_name = startup_fsm->session_name;
|
const string session_name = startup_fsm->session_name;
|
||||||
string session_template = startup_fsm->session_template;
|
const string session_template = startup_fsm->session_template;
|
||||||
bool session_is_new = startup_fsm->session_is_new;
|
const bool session_is_new = startup_fsm->session_is_new;
|
||||||
BusProfile bus_profile = startup_fsm->bus_profile;
|
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;
|
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 (session_is_new) {
|
||||||
|
|
||||||
if (build_session (session_path, session_name, &bus_profile)) {
|
if (build_session (session_path, session_name, &bus_profile)) {
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!session_template.empty() && session_template.substr (0, 11) == "urn:ardour:") {
|
if (!session_template.empty() && session_template.substr (0, 11) == "urn:ardour:") {
|
||||||
meta_session_setup (session_template.substr (11));
|
meta_session_setup (session_template.substr (11));
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
return 0;
|
||||||
|
|
||||||
int ret = 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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return load_session (session_path, session_name, session_template);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user