summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-06-30 03:31:58 +0200
committerRobin Gareus <robin@gareus.org>2014-06-30 03:31:58 +0200
commit038d292c3fb53718f1a580a0f0ff54c7a0aa8e23 (patch)
tree4273f773b7d5c9b309b653d72da7149927fcc9ed /libs/ardour/session.cc
parentc1ae35242bc4964ccae1826296bb8637e9ccc2de (diff)
fix issue with track-deletion when the monitoring section is used.
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r--libs/ardour/session.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 121df3130c..eba11a457b 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -2603,6 +2603,13 @@ Session::remove_route (boost::shared_ptr<Route> route)
}
}
+ /* if the monitoring section had a pointer to this route, remove it */
+ if (_monitor_out && !route->is_master() && !route->is_monitor()) {
+ Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
+ PBD::Unwinder<bool> uw (ignore_route_processor_changes, true);
+ route->remove_aux_or_listen (_monitor_out);
+ }
+
boost::shared_ptr<MidiTrack> mt = boost::dynamic_pointer_cast<MidiTrack> (route);
if (mt && mt->step_editing()) {
if (_step_editors > 0) {