Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::dataplane::EventSource Class Reference

Lock-free event channel: the writer publishes the occurrences from one audio block and the view reads the latest completed block. More...

#include <value_source.hpp>

Public Member Functions

 ~EventSource ()
void publish (const ValueEvent *events, int count)
 Publish a block's occurrences from the writer thread.
EventFrame read ()
 Read the latest completed block from the reader thread.
void note_publish () noexcept
 Writer (audio/host) thread, from publish().
std::uint32_t publish_seq () const noexcept
 Reader (UI) thread. Changes iff the writer published since the last read.

Friends

class ValueChannelSet

Detailed Description

Lock-free event channel: the writer publishes the occurrences from one audio block and the view reads the latest completed block.

Like the other visualization channels this is latest-wins, not a lossless queue. A UI that misses an intermediate block observes the newest one.

Constructor & Destructor Documentation

◆ ~EventSource()

pulp::dataplane::EventSource::~EventSource ( )

Member Function Documentation

◆ note_publish()

void pulp::dataplane::PublishCounter::note_publish ( )
inlinenoexceptinherited

Writer (audio/host) thread, from publish().

Relaxed: the counter orders no other memory, it only has to be monotonic and eventually visible.

◆ publish()

void pulp::dataplane::EventSource::publish ( const ValueEvent * events,
int count )

Publish a block's occurrences from the writer thread.

Alloc-free and non-blocking. Oversized lists are truncated to their leading events.

◆ publish_seq()

std::uint32_t pulp::dataplane::PublishCounter::publish_seq ( ) const
inlinenoexceptinherited

Reader (UI) thread. Changes iff the writer published since the last read.

◆ read()

EventFrame pulp::dataplane::EventSource::read ( )

Read the latest completed block from the reader thread.

◆ ValueChannelSet

friend class ValueChannelSet
friend

The documentation for this class was generated from the following file:
  • /home/runner/work/pulp/pulp/core/dataplane/include/pulp/dataplane/value_source.hpp