diff options
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r-- | libs/ardour/session.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 7b609e62cb..257126b6f1 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -2839,6 +2839,24 @@ Session::source_by_id (const PBD::ID& id) return source; } + +boost::shared_ptr<Source> +Session::source_by_path_and_channel (const Glib::ustring& path, uint16_t chn) +{ + Glib::Mutex::Lock lm (audio_source_lock); + + for (AudioSourceList::iterator i = audio_sources.begin(); i != audio_sources.end(); ++i) { + cerr << "comparing " << path << " with " << i->second->name() << endl; + boost::shared_ptr<AudioFileSource> afs = boost::dynamic_pointer_cast<AudioFileSource>(i->second); + + if (afs && afs->path() == path && chn == afs->channel()) { + return afs; + } + + } + return boost::shared_ptr<Source>(); +} + string Session::peak_path_from_audio_path (string audio_path) const { |