GUI limitation: Require engine to add/remove tracks/busses

This commit is contained in:
Robin Gareus 2018-11-27 13:18:39 +01:00
parent 5531a440c9
commit 57d7b5de65
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
4 changed files with 32 additions and 0 deletions

View File

@ -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) {

View File

@ -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.
*/

View File

@ -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;

View File

@ -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 ());