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

Paint-safe host→view value channels. More...

#include <atomic>
#include <cstdint>
#include <array>
#include <cstddef>
#include <type_traits>
#include <pulp/runtime/triple_buffer.hpp>

Go to the source code of this file.

Classes

struct  pulp::dataplane::detail::PublishedValue< T >
struct  pulp::dataplane::MeterFrame
 A single multi-channel meter reading. More...
class  pulp::dataplane::PublishCounter
 Monotonic publish counter, shared by every value source. More...
class  pulp::dataplane::MeterSource
 Lock-free meter channel: the host publishes a MeterFrame from the audio/host thread; the view reads the latest frame paint-safe. More...
struct  pulp::dataplane::VectorFrame
 A block of samples for a scope-style display — an envelope curve, a detector's output, a window of the signal a processor is actually working on. More...
struct  pulp::dataplane::ValueEvent
 One occurrence inside an audio block. More...
struct  pulp::dataplane::EventFrame
 A bounded list of occurrences from one audio block. More...
class  pulp::dataplane::VectorSource
 Lock-free vector channel: the writer publishes a block of samples, the view reads the latest block paint-safe. More...
class  pulp::dataplane::EventSource
 Lock-free event channel: the writer publishes the occurrences from one audio block and the view reads the latest completed block. More...
class  pulp::dataplane::ScalarSource
 Lock-free scalar channel: a single paint-safe cached number (a readout value, a modulation ring's base→modulated position). More...

Namespaces

namespace  pulp
namespace  pulp::dataplane
namespace  pulp::dataplane::detail

Detailed Description

Paint-safe host→view value channels.

A plugin's audio/host thread publishes meter levels, a scalar readout, or bounded occurrences; a view reads the latest value paint-safe on the FrameClock — no lock, no allocation on either side. This is the SDK default for the pattern every native-import host otherwise hand-rolls (a reader polled on the frame clock), and the subscription that lets a live meter keep an editor's frames alive (see needs_continuous_frames).