diff options
Diffstat (limited to 'gtk2_ardour/ardour_ui.cc')
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index d5785ed9d9..0accfe403d 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -25,6 +25,7 @@ #include <time.h> #include <cerrno> #include <fstream> +#include <stdlib.h> #include <iostream> @@ -2316,8 +2317,6 @@ ARDOUR_UI::get_session_parameters (bool backend_audio_is_running, bool should_be new_session_dialog->set_existing_session (false); new_session_dialog->set_current_page (0); // new engine page new_session_dialog->engine_control.unset_interface_chosen (); - cerr << "go back and show the engine setup tab again , beir = " - << backend_audio_is_running << endl; response = Gtk::RESPONSE_NONE; goto try_again; @@ -2328,7 +2327,7 @@ ARDOUR_UI::get_session_parameters (bool backend_audio_is_running, bool should_be if (response == Gtk::RESPONSE_OK) { session_name = new_session_dialog->session_name(); - + if (session_name.empty()) { response = Gtk::RESPONSE_NONE; goto try_again; @@ -2346,8 +2345,9 @@ ARDOUR_UI::get_session_parameters (bool backend_audio_is_running, bool should_be session_name = Glib::path_get_basename (session_name); } else { - + session_path = new_session_dialog->session_folder(); + } template_name = Glib::ustring(); @@ -2392,6 +2392,8 @@ ARDOUR_UI::get_session_parameters (bool backend_audio_is_running, bool should_be if (Glib::file_test (session_path, Glib::FileTest (G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) { + new_session_dialog->hide (); + if (ask_about_loading_existing_session (session_path)) { goto loadit; } else { @@ -2525,6 +2527,12 @@ ARDOUR_UI::load_session (const Glib::ustring& path, const Glib::ustring& snap_na goto out; } + /* this exception is also special */ + + catch (Session::SRMismatchRejected& err) { + goto out; /* just go back and reload something else, etc. */ + } + catch (...) { MessageDialog msg (string_compose(_("Session \"%1 (snapshot %2)\" did not load successfully"), path, snap_name), @@ -3117,14 +3125,17 @@ ARDOUR_UI::write_buffer_stats () std::ofstream fout; struct tm tm; char buf[64]; - char* path; + char path[PATH_MAX+1]; int fd; - if ((path = tempnam (0, "ardourBuffering")) == 0) { + strcpy (path, "ardourBufferingXXXXXX"); + + if ((fd = mkstemp (path )) < 0) { cerr << X_("cannot find temporary name for ardour buffer stats") << endl; return; } - + fout.open (path); + close (fd); if (!fout) { cerr << string_compose (X_("cannot open file %1 for ardour buffer stats"), path) << endl; |