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:
@@ -249,9 +249,7 @@ LRESULT CALLBACK ReaSamplerEditor::wndProc(HWND hwnd, UINT msg, WPARAM wParam,
|
||||
// abandoned value indefinitely instead of rolling back.
|
||||
const bool transient = self->drag_ == DragKind::kScrollThumb ||
|
||||
(self->drag_ == DragKind::kDeckKnob &&
|
||||
(self->dragParamId_ == -2 ||
|
||||
self->dragParamId_ == static_cast<int>(ParamControl::kVoiceCount) ||
|
||||
self->dragParamId_ == static_cast<int>(ParamControl::kMasterGain)));
|
||||
ReaSamplerEditor::deckKnobIsProcessorSide(self->dragParamId_));
|
||||
if (!transient) {
|
||||
self->params_ = self->dragStartParams_;
|
||||
// A live drag already reached the voices AND the processor's own
|
||||
@@ -263,6 +261,10 @@ LRESULT CALLBACK ReaSamplerEditor::wndProc(HWND hwnd, UINT msg, WPARAM wParam,
|
||||
self->commitLive();
|
||||
}
|
||||
}
|
||||
// Peer of onMouseUp's bracket close, and after the rollback for the same
|
||||
// reason: the rollback's own performEdit belongs inside the bracket the grab
|
||||
// opened, and an abandoned drag must not leave the host's edit open.
|
||||
if (self->processor_) self->processor_->endParamGesture();
|
||||
self->drag_ = DragKind::kNone;
|
||||
self->dragParamId_ = -1;
|
||||
self->dragInnerCellId_ = -1; // inner-dial drag state (peer reset)
|
||||
|
||||
Reference in New Issue
Block a user