X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Faudiofilesource.cc;h=40c3d2f012757c43371a7a0c0433614fbd8ec45a;hb=8a128b33d38172ae525ac798c53bc105bc4e2c64;hp=014baa90317b13c420af7c9863378ef6ddd4f976;hpb=d135c4dc3a307d0be606f3afbbc8fd8c3ec56438;p=ardour.git diff --git a/libs/ardour/audiofilesource.cc b/libs/ardour/audiofilesource.cc index 014baa9031..40c3d2f012 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) @@ -219,7 +237,10 @@ AudioFileSource::old_peak_path (string audio_path) char buf[32]; #ifdef __APPLE__ - snprintf (buf, sizeof (buf), "%u-%u-%d.peak", stat_mount.st_ino, stat_file.st_ino, _channel); + snprintf (buf, sizeof (buf), "%llu-%llu-%d.peak", + (unsigned long long)stat_mount.st_ino, + (unsigned long long)stat_file.st_ino, + _channel); #else snprintf (buf, sizeof (buf), "%" PRId64 "-%" PRId64 "-%d.peak", (int64_t) stat_mount.st_ino, (int64_t) stat_file.st_ino, _channel); #endif @@ -396,3 +417,4 @@ AudioFileSource::get_interleave_buffer (framecnt_t size) return ssb->buf; } +