instrument: snap live params onto a fresh voice, roll a live drag back on capture loss, serialize the seqlock's two writers
This commit is contained in:
@@ -144,13 +144,14 @@ void ReaSamplerEditor::commitLive() {
|
||||
}
|
||||
|
||||
bool ReaSamplerEditor::dragCommitsLive(DragKind kind, int paramId) const {
|
||||
if (kind == DragKind::kDeckKnob) {
|
||||
// Negative ids are the processor-side sentinels (preview velocity), not parameter-set
|
||||
// controls, so they never reach the enum.
|
||||
return paramId >= 0 &&
|
||||
instrument::ui::isLiveDeckParam(static_cast<ParamControl>(paramId));
|
||||
}
|
||||
return kind == DragKind::kEnvNode && params_.play.playMode == PlayMode::Gate;
|
||||
// The decision itself is the pure liveCommitFor's; this is only the shell's drag-kind
|
||||
// vocabulary mapped onto it, so the routing is pinned by deck_groups' tests rather than
|
||||
// by inspection of this file.
|
||||
using instrument::ui::LiveDragKind;
|
||||
const LiveDragKind k = kind == DragKind::kDeckKnob ? LiveDragKind::kDeckKnob
|
||||
: kind == DragKind::kEnvNode ? LiveDragKind::kEnvNode
|
||||
: LiveDragKind::kOther;
|
||||
return instrument::ui::liveCommitFor(k, paramId, params_.play.playMode);
|
||||
}
|
||||
|
||||
void ReaSamplerEditor::loadSelection(const std::string& id) {
|
||||
|
||||
Reference in New Issue
Block a user