diff options
Diffstat (limited to 'session_utils/common.cc')
-rw-r--r-- | session_utils/common.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/session_utils/common.cc b/session_utils/common.cc index 2abfb32d3c..8d1cdec950 100644 --- a/session_utils/common.cc +++ b/session_utils/common.cc @@ -125,18 +125,18 @@ static Session * _load_session (string dir, string state) if (Session::get_info_from_path (s, sr, sf) == 0) { if (engine->set_sample_rate (sr)) { std::cerr << "Cannot set session's samplerate.\n"; - ::exit (EXIT_FAILURE); + return 0; } } else { std::cerr << "Cannot get samplerate from session.\n"; - ::exit (EXIT_FAILURE); + return 0; } init_post_engine (); if (engine->start () != 0) { std::cerr << "Cannot start Audio/MIDI engine\n"; - ::exit (EXIT_FAILURE); + return 0; } Session* session = new Session (*engine, dir, state); @@ -145,7 +145,7 @@ static Session * _load_session (string dir, string state) } Session * -SessionUtils::load_session (string dir, string state) +SessionUtils::load_session (string dir, string state, bool exit_at_failure) { Session* s = 0; try { @@ -163,6 +163,9 @@ SessionUtils::load_session (string dir, string state) cerr << "unknown exception.\n"; ::exit (EXIT_FAILURE); } + if (!s && exit_at_failure) { + ::exit (EXIT_FAILURE); + } return s; } |