instrument: latch the note done at the read-head run-off, fit the migrated fades, and lift the curve dial and overlay selection into pure modules
This commit is contained in:
@@ -81,10 +81,10 @@ private:
|
||||
enum class DragKind { kNone, kRootMarker, kWaveMarker, kScrollThumb, kEnvNode,
|
||||
kCurveNode, kDeckKnob };
|
||||
|
||||
// Which envelope the waveform overlay is drawing and editing. Exclusive, and kNone is a
|
||||
// valid resting state — the editor opens there. Transient view state: never persisted,
|
||||
// never a parameter.
|
||||
enum class OverlayEnv { kNone, kAmp, kPitch, kFilter };
|
||||
// Which envelope the waveform overlay is drawing and editing. The selection type and its
|
||||
// whole state machine are the pure deck_groups module's; this alias keeps the shell's
|
||||
// spelling.
|
||||
using OverlayEnv = instrument::ui::OverlayEnv;
|
||||
|
||||
// Controls on the setup surface. The int value is the opaque control id the pure
|
||||
// knob_deck hit-test returns; the shell maps it to the one parameter set or a
|
||||
@@ -335,10 +335,6 @@ private:
|
||||
// UNPACK (commit): an edited StageEnvelope -> the play params, in place.
|
||||
void unpackEnvelope(OverlayEnv which, const StageEnvelope& env, PlaySeconds& play) const;
|
||||
|
||||
// The radio control id that selects `which`, and its inverse. One table, so the deck's
|
||||
// radio and the overlay can never drift apart.
|
||||
static OverlayEnv overlayEnvForRadio(int radioId);
|
||||
|
||||
// Clamp bounds envelope_edit uses, matching the sliders' own domains so a node drag can
|
||||
// never produce a param a slider couldn't.
|
||||
EnvClampBounds envClampBounds() const;
|
||||
|
||||
Reference in New Issue
Block a user