From 2fca66be816ceeddb9b0278230eefa7372659290 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 23 Dec 2007 18:32:51 +0000 Subject: [PATCH] prevent export from occuring when disconnected from JACK (GUI andbackend) git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2811 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/ardour_ui.h | 7 ++++--- gtk2_ardour/editor_export_audio.cc | 4 +--- gtk2_ardour/export_dialog.cc | 15 +++++++++++++-- libs/ardour/session_export.cc | 4 ++++ 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index d3c815b88e..51a7a68b14 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -149,7 +149,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI PublicEditor& the_editor(){return *editor;} Mixer_UI* the_mixer() { return mixer; } - + + ARDOUR::AudioEngine& the_engine() const { return *engine; } + void toggle_key_editor (); void toggle_location_window (); void toggle_theme_manager (); @@ -267,8 +269,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI ARDOUR::AudioEngine *engine; ARDOUR::Session *session; - bool check_audioengine(); - Gtk::Tooltips _tooltips; void goto_editor_window (); @@ -739,6 +739,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI void no_memory_warning (); void check_memory_locking (); + bool check_audioengine(); void audioengine_setup (); void display_message (const char *prefix, gint prefix_len, diff --git a/gtk2_ardour/editor_export_audio.cc b/gtk2_ardour/editor_export_audio.cc index 629abc8b56..8a749d45bc 100644 --- a/gtk2_ardour/editor_export_audio.cc +++ b/gtk2_ardour/editor_export_audio.cc @@ -96,9 +96,7 @@ Editor::export_region () ExportDialog* dialog = new ExportRegionDialog (*this, clicked_regionview->region()); dialog->connect_to_session (session); - dialog->set_range ( - clicked_regionview->region()->first_frame(), - clicked_regionview->region()->last_frame()); + dialog->set_range (clicked_regionview->region()->first_frame(), clicked_regionview->region()->last_frame()); dialog->start_export(); } diff --git a/gtk2_ardour/export_dialog.cc b/gtk2_ardour/export_dialog.cc index 20a44c8856..8c22e1b561 100644 --- a/gtk2_ardour/export_dialog.cc +++ b/gtk2_ardour/export_dialog.cc @@ -24,7 +24,6 @@ #include #include - #include #include @@ -936,7 +935,19 @@ void ExportDialog::do_export () { string filepath = file_entry.get_text(); - + + if (!ARDOUR_UI::instance()->the_engine().connected()) { + MessageDialog msg (*this, + _("Not connected to audioengine"), + true, + MESSAGE_ERROR, + BUTTONS_OK); + msg.set_secondary_text (_("Ardour cannot export audio when disconnected")); + msg.present (); + msg.run (); + return; + } + if(!is_filepath_valid(filepath)){ return; } diff --git a/libs/ardour/session_export.cc b/libs/ardour/session_export.cc index 87bf5a5b03..e7a3b3b40f 100644 --- a/libs/ardour/session_export.cc +++ b/libs/ardour/session_export.cc @@ -427,6 +427,10 @@ AudioExportSpecification::process (nframes_t nframes) int Session::start_audio_export (AudioExportSpecification& spec) { + if (!_engine.connected()) { + return -1; + } + if (spec.prepare (current_block_size, frame_rate())) { return -1; }