X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Faudiofilesource.cc;h=9c1b969190c530d8cb2ec95b066b1b02b0c349a1;hb=aa0effb4cb38f4c3a06564bd9e6a0ee516d4f958;hp=014baa90317b13c420af7c9863378ef6ddd4f976;hpb=2e27e21d3a09889311e18a8efe11abcaa6d9c8b3;p=ardour.git diff --git a/libs/ardour/audiofilesource.cc b/libs/ardour/audiofilesource.cc index 014baa9031..9c1b969190 100644 --- a/libs/ardour/audiofilesource.cc +++ b/libs/ardour/audiofilesource.cc @@ -32,10 +32,12 @@ #include "pbd/convert.h" #include "pbd/basename.h" +#include "pbd/file_utils.h" #include "pbd/mountpoint.h" #include "pbd/stl_delete.h" #include "pbd/strsplit.h" #include "pbd/shortpath.h" +#include "pbd/stacktrace.h" #include "pbd/enumwriter.h" #include @@ -115,6 +117,22 @@ AudioFileSource::AudioFileSource (Session& s, const string& path, const string& } } +/** Constructor used for existing internal-to-session files during crash + * recovery. File must exist + */ +AudioFileSource::AudioFileSource (Session& s, const string& path, Source::Flag flags, bool /* ignored-exists-for-prototype differentiation */) + : Source (s, DataType::AUDIO, path, flags) + , AudioSource (s, path) + , FileSource (s, DataType::AUDIO, path, string(), flags) +{ + /* note that origin remains empty */ + + if (init (_path, true)) { + throw failed_constructor (); + } +} + + /** Constructor used for existing internal-to-session files via XML. File must exist. */ AudioFileSource::AudioFileSource (Session& s, const XMLNode& node, bool must_exist) : Source (s, node) @@ -396,3 +414,4 @@ AudioFileSource::get_interleave_buffer (framecnt_t size) return ssb->buf; } +