refactor(capture): expose offline tail as docked-panel toggle
Replace the ...-with-tail variant actions with a pure tail_control module + a docked-panel footer toggle (Off/Auto/Manual) read by CAPTURE_ITEM/TRACK. Default None (byte-identical); Manual fixed 2s, in-memory session lifetime. Tail mechanism unchanged; retired the variant ids.
This commit is contained in:
+13
-2
@@ -69,12 +69,17 @@ static std::vector<gaccel_register_t> g_captureAccels;
|
||||
// * CAPTURE_MASTER and CAPTURE_MASTER_REALTIME — the master offline scope and the
|
||||
// master realtime action are REMOVED (capture is now item + track only; realtime
|
||||
// taps the selected track). Their shipped ids are retired so old keybindings clear.
|
||||
// * CAPTURE_ITEM_TAIL and CAPTURE_TRACK_TAIL — the former per-action tail variants
|
||||
// are REMOVED; tail is now a panel-setting toggle, not a paired action. Retired so
|
||||
// old keybindings clear.
|
||||
static const char* const kRetiredCaptureCmdStrings[] = {
|
||||
"CEREBELLUM_REASAMPLER_CAPTURE_TRACKS_WET",
|
||||
"CEREBELLUM_REASAMPLER_CAPTURE_ITEMS_WET",
|
||||
"CEREBELLUM_REASAMPLER_CAPTURE_RAZOR_WET",
|
||||
"CEREBELLUM_REASAMPLER_CAPTURE_MASTER",
|
||||
"CEREBELLUM_REASAMPLER_CAPTURE_MASTER_REALTIME",
|
||||
"CEREBELLUM_REASAMPLER_CAPTURE_ITEM_TAIL",
|
||||
"CEREBELLUM_REASAMPLER_CAPTURE_TRACK_TAIL",
|
||||
};
|
||||
|
||||
// Command id for "ReaSampler: toggle bank panel" (M5). FOREVER-STABLE string.
|
||||
@@ -505,13 +510,19 @@ static void RunCapture(const reasampler::CaptureActionDef& def)
|
||||
return;
|
||||
}
|
||||
|
||||
// The tail mode is a PANEL SETTING (docked bank panel's toggle), not a per-action
|
||||
// variant: the plain capture actions apply whatever the panel is set to. Default
|
||||
// is None (exact bounds / byte-identical to today) until the user opts in via the
|
||||
// toggle. tailMs is meaningful only for Manual and is pre-clamped by the panel.
|
||||
const reasampler::TailSetting tail = reasampler::bankPanelTailSetting();
|
||||
|
||||
reasampler::CaptureRequest req;
|
||||
req.sourceMode = reasampler::sourceModeForScope(def.scope);
|
||||
req.startSeconds = src.startSeconds; // exact bounds — no rounding
|
||||
req.endSeconds = src.endSeconds;
|
||||
req.wetDry = 1.0; // wet post the FX left enabled by the scope
|
||||
req.tailMode = def.tailMode; // None (exact bounds) or Auto ("…with tail" variant)
|
||||
req.tailMs = 0.0; // Manual-only; no Manual action yet (future config/UI)
|
||||
req.tailMode = tail.mode; // None / Auto / Manual, from the panel toggle
|
||||
req.tailMs = tail.manualMs; // Manual-only (clamped); ignored for None/Auto
|
||||
req.sampleRate = 0; // follow project rate
|
||||
req.channelCount = 2;
|
||||
req.bitDepth = reasampler::WavBitDepth::Float32; // deterministic, no dither
|
||||
|
||||
Reference in New Issue
Block a user