Render in place: a track's output to a new sibling, source to the bench
This commit is contained in:
@@ -30,6 +30,14 @@ enum class WavBitDepth {
|
||||
Float32,
|
||||
};
|
||||
|
||||
// Where the render lands. TWO VALUES, never a caller-supplied path string: the
|
||||
// backend resolves each to a directory itself, which is what makes "write into the
|
||||
// bank folder" inexpressible from the ProjectMedia side and vice versa.
|
||||
enum class CaptureDestination {
|
||||
Bank, // <projectDir>/reasampler_bank — every capture path
|
||||
ProjectMedia, // the project's recording path — the render-in-place verb only
|
||||
};
|
||||
|
||||
// One capture, independent of source mode.
|
||||
struct CaptureRequest {
|
||||
SourceMode sourceMode = SourceMode::MasterMix;
|
||||
@@ -75,6 +83,9 @@ struct CaptureRequest {
|
||||
// The one home for that fallback rule; both backends populate Sample::displayName
|
||||
// from here rather than each spelling the condition out.
|
||||
std::string label() const { return displayName.empty() ? baseName : displayName; }
|
||||
|
||||
// Default Bank: every existing entry point renders into the bank untouched.
|
||||
CaptureDestination destination = CaptureDestination::Bank;
|
||||
};
|
||||
|
||||
// Every failure is an explicit code, never a thrown exception across the REAPER boundary.
|
||||
@@ -95,6 +106,11 @@ struct CaptureResult {
|
||||
CaptureStatus status = CaptureStatus::RenderFailed;
|
||||
Sample sample; // valid only when status == Ok
|
||||
std::string message; // human-readable detail for the console log
|
||||
|
||||
// The file the render actually landed, absolute — the only handle a caller that
|
||||
// banks nothing has on its own output (sample.relativePath is empty on the
|
||||
// ProjectMedia destination). Set on the Ok path only.
|
||||
std::string absolutePath;
|
||||
};
|
||||
|
||||
// Deterministic offline-render backend: master mix / time selection / selected
|
||||
|
||||
Reference in New Issue
Block a user