summaryrefslogtreecommitdiff
path: root/session_utils/common.cc
diff options
context:
space:
mode:
Diffstat (limited to 'session_utils/common.cc')
-rw-r--r--session_utils/common.cc11
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;
}