summaryrefslogtreecommitdiff
path: root/libs/ardour/audiofilesource.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-09-07 12:38:39 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-09-07 12:38:39 -0400
commitdbf86a495b89380526f731e7bd15e0a41b91fc1e (patch)
tree6f8b19c5c7dc1af0871611f03acedc1bd408f55b /libs/ardour/audiofilesource.cc
parent9faf3e5556ed471b985df367a2e32159118e7fce (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/ardour/audiofilesource.cc')
-rw-r--r--libs/ardour/audiofilesource.cc10
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 ();
}