Report the instrument's automatable parameters to the host under a frozen id table, in signal-flow order, with real units
42 of 44 ids issued: pitch key-track and Trigger length stay reserved pending a live path. Master gain reclassified Live — it never reloaded.
This commit is contained in:
@@ -125,6 +125,12 @@ bool ReaSamplerEditor::mouseDownDeck(const FaceLayout& fl, int x, int y) {
|
||||
dragStartParams_ = params_;
|
||||
dragStartX_ = x;
|
||||
dragStartY_ = y;
|
||||
// Opens the host's edit bracket for the whole gesture, so a host in touch or latch mode
|
||||
// records one continuous edit rather than a burst of one-point ones. Closed on release
|
||||
// and on capture-lost; a control with no parameter row is a no-op inside the processor.
|
||||
if (processor_) {
|
||||
processor_->beginParamGesture(static_cast<instrument::ui::DeckParam>(dragParamId_));
|
||||
}
|
||||
invalidate();
|
||||
}
|
||||
// The deck band swallows its own clicks either way — no fall-through to the waveform.
|
||||
@@ -188,8 +194,14 @@ void ReaSamplerEditor::dragDeck(int x, int y) {
|
||||
}
|
||||
applyDeckKnob(dragParamId_, norm);
|
||||
// A live control is delivered on every move, not only on release — that is the whole
|
||||
// point: the note already sounding tracks the hand on the knob.
|
||||
if (dragCommitsLive(DragKind::kDeckKnob, dragParamId_)) commitLive();
|
||||
// point: the note already sounding tracks the hand on the knob. The processor-side knobs
|
||||
// are skipped because applyDeckKnob already wrote them straight through; commitLive would
|
||||
// only re-push an unchanged parameter set. The release and capture-lost paths ask this same
|
||||
// question; the reset path never reaches the commit for them at all.
|
||||
if (!deckKnobIsProcessorSide(dragParamId_) &&
|
||||
dragCommitsLive(DragKind::kDeckKnob, dragParamId_)) {
|
||||
commitLive();
|
||||
}
|
||||
invalidate();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user