diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-09-07 12:38:39 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-09-07 12:38:39 -0400 |
commit | dbf86a495b89380526f731e7bd15e0a41b91fc1e (patch) | |
tree | 6f8b19c5c7dc1af0871611f03acedc1bd408f55b /libs | |
parent | 9faf3e5556ed471b985df367a2e32159118e7fce (diff) |
for files imported without copy, _origin is a full path. We should use this when looking for the file at session load
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/audiofilesource.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libs/ardour/audiofilesource.cc b/libs/ardour/audiofilesource.cc index bb0b4da774..a25e19ea5a 100644 --- a/libs/ardour/audiofilesource.cc +++ b/libs/ardour/audiofilesource.cc @@ -131,7 +131,10 @@ AudioFileSource::AudioFileSource (Session& s, const string& path, Source::Flag f } -/** Constructor used for existing internal-to-session files via XML. File must exist. */ +/** Constructor used for existing files via XML. File must exist. If _origin + * is an absolute path after ::set_state(), then the file is external to the + * session. + */ AudioFileSource::AudioFileSource (Session& s, const XMLNode& node, bool must_exist) : Source (s, node) , AudioSource (s, node) @@ -141,6 +144,11 @@ AudioFileSource::AudioFileSource (Session& s, const XMLNode& node, bool must_exi throw failed_constructor (); } + if (Glib::path_is_absolute (_origin)) { + _path = _origin; + must_exist = true; + } + if (init (_path, must_exist)) { throw failed_constructor (); } |