From 57d7b5de65b399fc7d1d61a3a9212c0fa7f1e95c Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 27 Nov 2018 13:18:39 +0100 Subject: [PATCH] GUI limitation: Require engine to add/remove tracks/busses --- gtk2_ardour/ardour_ui.cc | 14 ++++++++++++++ gtk2_ardour/editor_drag.cc | 5 +++++ gtk2_ardour/editor_ops.cc | 7 +++++++ gtk2_ardour/route_ui.cc | 6 ++++++ 4 files changed, 32 insertions(+) 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, 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 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 route = _route; boost::shared_ptr pi = boost::dynamic_pointer_cast (route->the_instrument ()); -- 2.30.2