diff options
author | Carl Hetherington <carl@carlh.net> | 2011-02-20 17:29:23 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2011-02-20 17:29:23 +0000 |
commit | 150734ac619d7d602d47304f1496df71ce0c43ef (patch) | |
tree | dbe06e6221376c5cd81695cea2600a6c1cdf0e56 /gtk2_ardour | |
parent | 53b07c0fa4ff84b094a863637d5cb054f9a29878 (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.cc | 9 |
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 (); |