summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-02-20 17:29:23 +0000
committerCarl Hetherington <carl@carlh.net>2011-02-20 17:29:23 +0000
commit150734ac619d7d602d47304f1496df71ce0c43ef (patch)
treedbe06e6221376c5cd81695cea2600a6c1cdf0e56 /gtk2_ardour
parent53b07c0fa4ff84b094a863637d5cb054f9a29878 (diff)
Prevent infinite loop if JACK is disconnected during startup.
git-svn-id: svn://localhost/ardour2/branches/3.0@8908 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour_ui.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index ebc289e204..9e7c726bb2 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -2645,6 +2645,12 @@ ARDOUR_UI::get_session_parameters (bool quit_on_cancel, bool should_be_new, stri
} else {
ret = load_session (session_path, session_name, template_name);
+
+ if (ret == -2) {
+ /* not connected to the AudioEngine, so quit to avoid an infinite loop */
+ exit (1);
+ }
+
if (!ARDOUR_COMMAND_LINE::immediate_save.empty()) {
_session->save_state (ARDOUR_COMMAND_LINE::immediate_save, false);
exit (1);
@@ -2675,6 +2681,7 @@ ARDOUR_UI::close_session()
goto_editor_window ();
}
+/** @return -2 if the load failed because we are not connected to the AudioEngine */
int
ARDOUR_UI::load_session (const std::string& path, const std::string& snap_name, std::string mix_template)
{
@@ -2685,7 +2692,7 @@ ARDOUR_UI::load_session (const std::string& path, const std::string& snap_name,
session_loaded = false;
if (!check_audioengine()) {
- return -1;
+ return -2;
}
unload_status = unload_session ();