add Session::get_stripables()

This commit is contained in:
Paul Davis
2016-05-16 16:43:00 -04:00
parent d7cce2ff7d
commit 38dde7f818
2 changed files with 18 additions and 0 deletions

View File

@@ -277,6 +277,14 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
return routes.reader ();
}
/* because the set of Stripables consists of objects managed
* independently, in multiple containers within the Session (or objects
* owned by the session), we fill out a list in-place rather than
* return a pointer to a copy of the (RCU) managed list, as happens
* with get_routes()
*/
void get_stripables (StripableList&) const;
boost::shared_ptr<RouteList> get_tracks() const;
boost::shared_ptr<RouteList> get_routes_with_internal_returns() const;
boost::shared_ptr<RouteList> get_routes_with_regions_at (framepos_t const) const;

View File

@@ -4013,6 +4013,16 @@ Session::update_route_solo_state (boost::shared_ptr<RouteList> r)
something_soloed, listeners, isolated));
}
void
Session::get_stripables (StripableList& sl) const
{
boost::shared_ptr<RouteList> r = routes.reader ();
sl.insert (sl.end(), r->begin(), r->end());
VCAList v = _vca_manager->vcas ();
sl.insert (sl.end(), v.begin(), v.end());
}
boost::shared_ptr<RouteList>
Session::get_routes_with_internal_returns() const
{