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

View-side bindings for the paint-safe host→view channels in value_source.hpp. More...

#include <memory>
#include <pulp/view/value_source.hpp>

Go to the source code of this file.

Classes

class  pulp::view::FrameClockBinding
 Subscription lifecycle for a view that pulls a value once per frame. More...
class  pulp::view::MeterSourceBinding
 Binds a MeterSource channel and caches the latest frame for paint. More...
class  pulp::view::ScalarSourceBinding
 Binds a ScalarSource and caches the latest value for paint. More...

Namespaces

namespace  pulp
namespace  pulp::view
 Hover-cursor tracking for platform window hosts.

Detailed Description

View-side bindings for the paint-safe host→view channels in value_source.hpp.

A view that shows a live host value (a meter, a readout, a modulation ring) needs the same three things every time: subscribe to the reachable FrameClock, re-point that subscription when the clock changes, and tear it down without dangling when the view or the clock goes away. These types are that machinery, so a view binds a source instead of re-rolling the lifecycle.

Threading: the host publishes on the audio/host thread; everything here runs on the UI thread. Each binding snapshots its source once per frame on the clock callback and exposes the snapshot to paint() — the same "snapshot at tick, paint from the snapshot" discipline HostParamSurface enforces. A paint-time read is then a plain member read: no lock, no allocation, no atomic.