Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::inspect::ControlSequencerStateTarget Struct Reference

Exact live sequencer channel resolved only after broker admission. More...

#include <control_sequencer_state_executor.hpp>

Public Attributes

ControlRegistrationId registration_id
ControlHostTier host_tier = ControlHostTier::SharedPluginHost
state::SequencerStateChannel * channel = nullptr

Detailed Description

Exact live sequencer channel resolved only after broker admission.

The resolver binds the admission registration to one host-owned state::SequencerStateChannel.

The channel is strictly single-producer/single-consumer per side: the engine (audio) thread owns every audio_* method, and exactly one UI/message-thread consumer owns the applied-echo FIFO. Neither sequencer operation is that consumer. They therefore use only the non-destructive UI-side reads (ui_read_latest_snapshot, ui_read_playhead, ui_resync_required_epoch) and the UI-side producer ui_try_submit, and never touch ui_try_pop_applied or any audio_* method. Both executors are intended to be wrapped by ControlMainThreadExecutor and refuse an off-main call whenever a real host dispatcher is installed, so the host's own main-thread UI owner and these operations never race the single-writer command FIFO.

Member Data Documentation

◆ channel

state::SequencerStateChannel* pulp::inspect::ControlSequencerStateTarget::channel = nullptr

◆ host_tier

ControlHostTier pulp::inspect::ControlSequencerStateTarget::host_tier = ControlHostTier::SharedPluginHost

◆ registration_id

ControlRegistrationId pulp::inspect::ControlSequencerStateTarget::registration_id

The documentation for this struct was generated from the following file: