fix: pin the waveform arbitration in a testable predicate, close round-4 review minors
Extracts resolveWaveformClaim (core/instrument/ui/spline_edit) so the shell's node/tab/marker click resolution is unit-tested directly, not just its input geometry; folds the staged-envelope node into it; fixes comment accuracy, a cost regression, and test fidelity issues.
This commit is contained in:
@@ -186,8 +186,12 @@ ReaSamplerEditor::SetupMarkers ReaSamplerEditor::pickedMarkers(std::int64_t fram
|
||||
// Seed from the bank's intrinsic loop (fact about the file), then let the parameter set's
|
||||
// override win (the instrument's performance choice). Read the loop intrinsic from the
|
||||
// live bank blob (the same path selectSample uses); when that is not readable (extension
|
||||
// absent / not yet parsed) the instance-owned ref carries the same intrinsics.
|
||||
if (processor_) {
|
||||
// absent / not yet parsed) the instance-owned ref carries the same intrinsics. Skipped
|
||||
// entirely once an override is already set — it would just be overwritten below, and the
|
||||
// bridge read + JSON parse it costs is real (mouseDownWaveform's arbitration calls this on
|
||||
// every waveform click, not just marker grabs, to know whether a tab or marker candidate
|
||||
// hits at all).
|
||||
if (processor_ && !params_.loopOverride) {
|
||||
std::optional<SelectedSample> sel;
|
||||
auto banksJson =
|
||||
processor_->bridge().readReasamplerExtState(reasampler::kProjExtBanksKey);
|
||||
|
||||
Reference in New Issue
Block a user