Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
parameter_edit.hpp File Reference

Host-automatable UI parameter editing. More...

#include <pulp/state/store.hpp>
#include <array>
#include <cstddef>

Go to the source code of this file.

Classes

class  pulp::state::ParameterEdit

Namespaces

namespace  pulp
namespace  pulp::state
 SequencerStateChannel is the audio-safe transport for a plugin's structured NON-parameter state: the bulk, observable state a step sequencer / mod-matrix / pattern engine holds outside its automatable parameter set (e.g.

Detailed Description

Host-automatable UI parameter editing.

A UI control that wants its moves recorded by a DAW's automation must bracket each interaction in a host gesture: begin → write values → end. Without the begin/end, hosts do not record the automation, and some format adapters re-push the host's own parameter value into the store every audio block, fighting a raw UI write. ParameterEdit encapsulates that lifecycle for a custom view that drives one or more parameters from a single gesture (an XY pad, a 2D handle, a multi-param macro), so the view does not hand-roll the gesture bookkeeping.

It also caches the in-flight value of each parameter so the view can display exactly what the user is doing during the drag, independent of when (or whether) the host echoes the change back through the store.

Widget authors usually do not need this directly — bind_parameter() (pulp/view/parameter_binding.hpp) wires the standard widgets to a store parameter, gestures included. ParameterEdit is the lower-level primitive for bespoke controls.

UI-thread only; not real-time-safe and not thread-safe.