for files imported without copy, _origin is a full path. We should use this when...
[ardour.git] / libs / ardour / audiofilesource.cc
index bb0b4da77446235869ecb83cb3f43e7659bcbbd5..a25e19ea5ac1aa5b0075a3d49d54f6ca2b07131e 100644 (file)
@@ -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 ();
        }