summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r--libs/ardour/session.cc19
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
{