summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2018-11-27 13:18:39 +0100
committerRobin Gareus <robin@gareus.org>2018-11-27 13:18:39 +0100
commit57d7b5de65b399fc7d1d61a3a9212c0fa7f1e95c (patch)
tree2463fb1a9215537b7be319dcca385150533304d9
parent5531a440c990391241292a864f9c71d3b7625c45 (diff)
GUI limitation: Require engine to add/remove tracks/busses
-rw-r--r--gtk2_ardour/ardour_ui.cc14
-rw-r--r--gtk2_ardour/editor_drag.cc5
-rw-r--r--gtk2_ardour/editor_ops.cc7
-rw-r--r--gtk2_ardour/route_ui.cc6
4 files changed, 32 insertions, 0 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 0523f9a8d1..7fcb7c74b5 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -4353,6 +4353,20 @@ ARDOUR_UI::add_route_dialog_response (int r)
return;
}
+ if (!AudioEngine::instance()->running ()) {
+ switch (r) {
+ case AddRouteDialog::Add:
+ case AddRouteDialog::AddAndClose:
+ break;
+ default:
+ return;
+ }
+ add_route_dialog->ArdourDialog::on_response (r);
+ MessageDialog msg (_("Not connected to audio engine - Adding Tracks/Busses is not possible"));
+ msg.run ();
+ return;
+ }
+
int count;
switch (r) {
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc
index 654cca2a16..5310eeed33 100644
--- a/gtk2_ardour/editor_drag.cc
+++ b/gtk2_ardour/editor_drag.cc
@@ -1428,6 +1428,11 @@ RegionMoveDrag::finished (GdkEvent* ev, bool movement_occurred)
RouteTimeAxisView*
RegionMoveDrag::create_destination_time_axis (boost::shared_ptr<Region> region, TimeAxisView* original)
{
+ if (!AudioEngine::instance()->running ()) {
+ error << _("Not connected to audio engine - Could not create new track after region placed in the drop zone") << endmsg;
+ return NULL;
+ }
+
/* Add a new track of the correct type, and return the RouteTimeAxisView that is created to display the
new track.
*/
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 50ead21c33..3675a02fc5 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -45,6 +45,7 @@
#include "widgets/prompter.h"
#include "ardour/audio_track.h"
+#include "ardour/audioengine.h"
#include "ardour/audioregion.h"
#include "ardour/boost_debug.h"
#include "ardour/dB.h"
@@ -7420,6 +7421,12 @@ Editor::_remove_tracks ()
return;
}
+ if (!AudioEngine::instance()->running ()) {
+ MessageDialog msg (_("Not connected to audio engine - Removing Tracks/Busses is not possible"));
+ msg.run ();
+ return;
+ }
+
vector<string> choices;
string prompt;
int ntracks = 0;
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc
index b9ece1ed07..752a951850 100644
--- a/gtk2_ardour/route_ui.cc
+++ b/gtk2_ardour/route_ui.cc
@@ -2323,6 +2323,12 @@ RouteUI::manage_pins ()
void
RouteUI::fan_out (bool to_busses, bool group)
{
+ if (!AudioEngine::instance()->running ()) {
+ MessageDialog msg (_("Not connected to audio engine - Fanning out to Tracks/Busses is not possible"));
+ msg.run ();
+ return;
+ }
+
DisplaySuspender ds;
boost::shared_ptr<ARDOUR::Route> route = _route;
boost::shared_ptr<PluginInsert> pi = boost::dynamic_pointer_cast<PluginInsert> (route->the_instrument ());