summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-12-10 19:20:15 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-12-10 19:20:15 +0000
commitd23a6de077181caa24af52229bb040c87ed34ebd (patch)
tree664ec7adbdf87826aced9b8d02d6b2603bf5d61d /libs/ardour/session.cc
parent6e211e27e2027da328b6fe117f10e1962c007afb (diff)
fix for most (all? we can dream ...) issues involved in #4399 (editing multiply-applies operations to playlists used more than once), and as a side-issue, fix playlist selection which broke when we hid Diskstreams inside Tracks by using orig_track_id() rather than orig_diskstream_id()
git-svn-id: svn://localhost/ardour2/branches/3.0@10968 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r--libs/ardour/session.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 4f5e8093bb..f2e224fee5 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -2603,6 +2603,21 @@ Session::route_by_id (PBD::ID id)
return boost::shared_ptr<Route> ((Route*) 0);
}
+boost::shared_ptr<Track>
+Session::track_by_diskstream_id (PBD::ID id)
+{
+ boost::shared_ptr<RouteList> r = routes.reader ();
+
+ for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
+ boost::shared_ptr<Track> t = boost::dynamic_pointer_cast<Track> (*i);
+ if (t && t->using_diskstream_id (id)) {
+ return t;
+ }
+ }
+
+ return boost::shared_ptr<Track> ();
+}
+
boost::shared_ptr<Route>
Session::route_by_remote_id (uint32_t id)
{