diff options
author | Robin Gareus <robin@gareus.org> | 2014-06-30 03:31:58 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-06-30 03:31:58 +0200 |
commit | 038d292c3fb53718f1a580a0f0ff54c7a0aa8e23 (patch) | |
tree | 4273f773b7d5c9b309b653d72da7149927fcc9ed /libs/ardour/session.cc | |
parent | c1ae35242bc4964ccae1826296bb8637e9ccc2de (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.cc | 7 |
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) { |