diff options
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r-- | libs/ardour/session.cc | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index f8fc5639f7..baa61b9174 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -6460,6 +6460,25 @@ Session::route_removed_from_route_group (RouteGroup* rg, boost::weak_ptr<Route> } } +boost::shared_ptr<AudioTrack> +Session::get_nth_audio_track (int nth) const +{ + boost::shared_ptr<RouteList> rl = routes.reader (); + rl->sort (Stripable::Sorter ()); + + for (RouteList::const_iterator r = rl->begin(); r != rl->end(); ++r) { + if (!boost::dynamic_pointer_cast<AudioTrack> (*r)) { + continue; + } + + if (--nth > 0) { + continue; + } + return boost::dynamic_pointer_cast<AudioTrack> (*r); + } + return boost::shared_ptr<AudioTrack> (); +} + boost::shared_ptr<RouteList> Session::get_tracks () const { |