Render in place: a track's output to a new sibling, source to the bench
This commit is contained in:
@@ -36,9 +36,29 @@ std::string normalizeSlashes(const std::string& path);
|
||||
// "capture" if nothing usable remains. Deterministic.
|
||||
std::string sanitizeStem(const std::string& baseName);
|
||||
|
||||
// Derives the bank paths for one capture: baseName is the sanitized file-stem
|
||||
// source, uniqueTag an optional sanitized disambiguator (timestamp/counter) so
|
||||
// repeated captures don't collide. Produces "<stem>[_<tag>].wav".
|
||||
// Where one render writes, with no index spelling at all: the directory REAPER is
|
||||
// told to render into plus the stem/file name it produces there. `absoluteDir` is
|
||||
// taken as given (normalized only) rather than derived, because a render that never
|
||||
// enters the bank has no bank subfolder to append — the render-in-place verb points
|
||||
// this at the project's own recording path.
|
||||
struct RenderPaths {
|
||||
std::string absoluteDir; // RENDER_FILE (forward slash, no trailing slash)
|
||||
std::string fileName; // <stem>.wav
|
||||
std::string fileStem; // <stem> (RENDER_PATTERN — REAPER appends the extension)
|
||||
};
|
||||
|
||||
// The file-stem spelling for one render: baseName is the sanitized file-stem source,
|
||||
// uniqueTag an optional sanitized disambiguator (timestamp/counter) so repeated
|
||||
// renders don't collide. Produces "<stem>[_<tag>].wav". THE one owner of that
|
||||
// spelling — deriveBankPaths is expressed over it, and bankRelativeForName depends
|
||||
// on the bank's spelling never drifting from it.
|
||||
RenderPaths deriveRenderPaths(const std::string& absoluteDir,
|
||||
const std::string& baseName,
|
||||
const std::string& uniqueTag);
|
||||
|
||||
// Derives the bank paths for one capture: the same stem spelling as
|
||||
// deriveRenderPaths, in the bank subfolder, plus the project-relative path the
|
||||
// index stores.
|
||||
BankPaths deriveBankPaths(const std::string& projectDir,
|
||||
const std::string& baseName,
|
||||
const std::string& uniqueTag);
|
||||
|
||||
Reference in New Issue
Block a user