feat: legible ReaSampler 9000 editor — bigger knobs, ms time constants, per-ring double-click reset, and an antialiased draw pass
This commit is contained in:
@@ -195,6 +195,13 @@ private:
|
||||
bool mouseDownDeck(const FaceLayout& fl, int x, int y);
|
||||
void mouseDownBrowse(int w, int h, int x, int y);
|
||||
|
||||
// Double-click = reset the radial knob under the pointer to its default. Returns false when
|
||||
// no knob claims the point, and the caller then replays it as an ordinary mouse-down (the
|
||||
// platform note at the window class explains why that fall-through is load-bearing).
|
||||
bool onMouseDoubleClick(int x, int y);
|
||||
bool doubleClickChrome(const FaceLayout& fl, int x, int y);
|
||||
bool doubleClickDeck(const FaceLayout& fl, int x, int y);
|
||||
|
||||
// Whether deck knob `id` belongs to a group whose enable toggle is off. The ONE predicate
|
||||
// behind both the Disabled paint and the inert grab, so they cannot disagree.
|
||||
bool deckKnobDisabled(int id) const;
|
||||
@@ -335,16 +342,12 @@ private:
|
||||
void beginMarkerDrag(WaveMarker which, const SetupMarkers& m, std::int64_t frames, int x);
|
||||
|
||||
// Deck knobs edit the parameter set's PlaySeconds (play mode + AHDSR; pitch engine + AD
|
||||
// pitch envelope) — wall-clock seconds, rate-free; the build resolves to frames.
|
||||
|
||||
// The normalized [0,1] display value for control `id` given `play` (seconds -> 0..1 over
|
||||
// a fixed ceiling, levels and fractions as-is, semitone depth centered at 0.5, curve
|
||||
// exponents over their logarithmic travel).
|
||||
// pitch envelope) — wall-clock seconds, rate-free; the build resolves to frames. The three
|
||||
// adapters below are thin int-id wrappers over the pure `deck_values` module, which owns
|
||||
// what each control's value means; see its header rather than restating the domains here.
|
||||
double controlValue(int id, const PlaySeconds& play) const;
|
||||
|
||||
// Applies a committed control interaction to `play`: a knob's normalized `value` or a
|
||||
// toggle's `segment` (0/1). Mutates `play` in place.
|
||||
void applyControl(int id, PlaySeconds& play, double value, int segment) const;
|
||||
void resetParamControl(int id);
|
||||
|
||||
// Applies a knob/toggle interaction to the ONE parameter set for control `id`: ordinary
|
||||
// controls route through applyControl; kKeyTrack writes the keyTrack scalar (0..200%
|
||||
@@ -385,8 +388,8 @@ private:
|
||||
// params edit, no reload).
|
||||
void applyDeckKnob(int id, double norm);
|
||||
|
||||
// The knob's live value label shown during hover/drag: seconds, percents, source
|
||||
// frames, signed semitones, a voice count, or the master-gain dB.
|
||||
// The knob's live value label shown during hover/drag: milliseconds, percents, Hz, signed
|
||||
// semitones, a curve exponent, a voice count, or the master-gain dB.
|
||||
std::string deckValueLabel(int id) const;
|
||||
|
||||
ReaSamplerProcessor* processor_ = nullptr;
|
||||
|
||||
Reference in New Issue
Block a user