From ae2a6175ccfac70ce091eda54af85de593ad4048 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 26 Nov 2018 03:06:22 +0100 Subject: [PATCH] Don't allow to add/remove monitor-section w/o engine Adding/removing the Monitor section changes port-connections, a port-engine is needed to establish connections. Ideally we'd allow this and queue for connection changes. This will however require deep changes. Also toggling the monitor-section on/off/on w/o engine can later result in failure to register ports. Due to lack of engine-signals not all shared_ptr<> port references are dropped. --- libs/ardour/session.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index ad2f04af61..ae354646b9 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -1161,6 +1161,12 @@ Session::remove_monitor_section () return; } + /* allow deletion when session is unloaded */ + if (!_engine.running() && !(_state_of_the_state & Deletion)) { + error << _("Cannot remove monitor section while the engine is offline.") << endmsg; + return; + } + /* force reversion to Solo-In-Place */ Config->set_solo_control_is_listen_control (false); @@ -1217,6 +1223,11 @@ Session::add_monitor_section () { RouteList rl; + if (!_engine.running()) { + error << _("Cannot create monitor section while the engine is offline.") << endmsg; + return; + } + if (_monitor_out || !_master_out || Profile->get_trx()) { return; }