diff --git a/gtk2_ardour/rta_manager.cc b/gtk2_ardour/rta_manager.cc index e72bacffeb..e9dc3789ee 100644 --- a/gtk2_ardour/rta_manager.cc +++ b/gtk2_ardour/rta_manager.cc @@ -195,6 +195,25 @@ RTAManager::remove (std::shared_ptr route) } } +void +RTAManager::clear () +{ + std::list::iterator i = _rta.begin (); + while (i != _rta.end ()) { + std::shared_ptr route = i->route (); + if (route->is_master ()) { + ++i; + continue; + } + i = _rta.erase (i); + route->gui_changed ("rta", this); /* EMIT SIGNAL */ + } + + if (_rta.empty ()) { + SignalReady (); /* EMIT SIGNAL */ + } +} + bool RTAManager::attached (std::shared_ptr route) const { diff --git a/gtk2_ardour/rta_manager.h b/gtk2_ardour/rta_manager.h index 8ba8abc75d..9082b5b2a9 100644 --- a/gtk2_ardour/rta_manager.h +++ b/gtk2_ardour/rta_manager.h @@ -85,6 +85,7 @@ public: void attach (std::shared_ptr); void remove (std::shared_ptr); bool attached (std::shared_ptr) const; + void clear (); std::list const& rta () const {