summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-12-23 18:32:51 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-12-23 18:32:51 +0000
commit2fca66be816ceeddb9b0278230eefa7372659290 (patch)
tree59cc98f4c777426a214bfce3fa32ad4f4daf1648
parent258733c4f17fc2e51d242759c8d3f089ab57a76b (diff)
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
-rw-r--r--gtk2_ardour/ardour_ui.h7
-rw-r--r--gtk2_ardour/editor_export_audio.cc4
-rw-r--r--gtk2_ardour/export_dialog.cc15
-rw-r--r--libs/ardour/session_export.cc4
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 <fstream>
#include <samplerate.h>
-
#include <pbd/convert.h>
#include <pbd/xml++.h>
@@ -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;
}