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

A validated, zero-copy view over one encoded program generation. More...

#include <program_wire.hpp>

Public Member Functions

 ProgramWireView ()=default
std::span< const std::byte > bytes () const noexcept
const ProgramWireHeader & header () const noexcept
const ProgramWireProgramRecord & program () const noexcept
std::uint64_t producer_epoch () const noexcept
timebase::RationalRate sample_rate () const noexcept
AutomationPlaybackLimits automation_limits () const noexcept
std::span< const ProgramWireTempoPointRecord > tempo_points () const noexcept
std::span< const ProgramWireTrackRecord > tracks () const noexcept
std::span< const ProgramWireIdRecord > clip_ids () const noexcept
std::span< const ProgramWireNoteEventRecord > note_events () const noexcept
std::span< const ProgramWireNoteModifierRecord > note_modifiers () const noexcept
std::span< const ProgramWireIdRecord > device_placement_ids () const noexcept
std::span< const ProgramWireAutomationLaneRecord > automation_lanes () const noexcept
std::span< const ProgramWireAutomationSegmentRecord > automation_segments () const noexcept
std::span< const ProgramWireControllerRangeRecord > controller_ranges () const noexcept
 One range per track, in track order; empty only for a version 2 payload that carried no such section, and then tracks() has nothing to index.
std::span< const ProgramWireControllerEventRecord > controller_events () const noexcept
std::span< const ProgramWireIdRecord > clip_ids_for (const ProgramWireTrackRecord &track) const noexcept
std::span< const ProgramWireNoteEventRecord > note_events_for (const ProgramWireTrackRecord &track) const noexcept
std::span< const ProgramWireNoteModifierRecord > note_modifiers_for (const ProgramWireTrackRecord &track) const noexcept
std::span< const ProgramWireIdRecord > device_placement_ids_for (const ProgramWireTrackRecord &track) const noexcept
std::span< const ProgramWireAutomationLaneRecord > automation_lanes_for (const ProgramWireTrackRecord &track) const noexcept
std::span< const ProgramWireAutomationSegmentRecord > segments_for (const ProgramWireAutomationLaneRecord &lane) const noexcept
std::span< const ProgramWireControllerEventRecord > controller_events_for (const ProgramWireControllerRangeRecord &range) const noexcept
 The events of the track whose index in tracks() matches range's in controller_ranges().

Friends

struct detail::ProgramWireDecoder

Detailed Description

A validated, zero-copy view over one encoded program generation.

Every span borrows from the bytes handed to decode_program_wire(), which must outlive the view. Construction allocates nothing, which is the strongest available answer to "decode allocates only from the provided arena": the adopting realtime realm needs no arena because it needs no allocation.

Constructor & Destructor Documentation

◆ ProgramWireView()

pulp::playback::ProgramWireView::ProgramWireView ( )
default

Member Function Documentation

◆ automation_lanes()

std::span< const ProgramWireAutomationLaneRecord > pulp::playback::ProgramWireView::automation_lanes ( ) const
inlinenoexcept

◆ automation_lanes_for()

std::span< const ProgramWireAutomationLaneRecord > pulp::playback::ProgramWireView::automation_lanes_for ( const ProgramWireTrackRecord & track) const
inlinenoexcept

◆ automation_limits()

AutomationPlaybackLimits pulp::playback::ProgramWireView::automation_limits ( ) const
noexcept

◆ automation_segments()

std::span< const ProgramWireAutomationSegmentRecord > pulp::playback::ProgramWireView::automation_segments ( ) const
inlinenoexcept

◆ bytes()

std::span< const std::byte > pulp::playback::ProgramWireView::bytes ( ) const
inlinenoexcept

◆ clip_ids()

std::span< const ProgramWireIdRecord > pulp::playback::ProgramWireView::clip_ids ( ) const
inlinenoexcept

◆ clip_ids_for()

std::span< const ProgramWireIdRecord > pulp::playback::ProgramWireView::clip_ids_for ( const ProgramWireTrackRecord & track) const
inlinenoexcept

◆ controller_events()

std::span< const ProgramWireControllerEventRecord > pulp::playback::ProgramWireView::controller_events ( ) const
inlinenoexcept

◆ controller_events_for()

std::span< const ProgramWireControllerEventRecord > pulp::playback::ProgramWireView::controller_events_for ( const ProgramWireControllerRangeRecord & range) const
inlinenoexcept

The events of the track whose index in tracks() matches range's in controller_ranges().

◆ controller_ranges()

std::span< const ProgramWireControllerRangeRecord > pulp::playback::ProgramWireView::controller_ranges ( ) const
inlinenoexcept

One range per track, in track order; empty only for a version 2 payload that carried no such section, and then tracks() has nothing to index.

◆ device_placement_ids()

std::span< const ProgramWireIdRecord > pulp::playback::ProgramWireView::device_placement_ids ( ) const
inlinenoexcept

◆ device_placement_ids_for()

std::span< const ProgramWireIdRecord > pulp::playback::ProgramWireView::device_placement_ids_for ( const ProgramWireTrackRecord & track) const
inlinenoexcept

◆ header()

const ProgramWireHeader & pulp::playback::ProgramWireView::header ( ) const
inlinenoexcept

◆ note_events()

std::span< const ProgramWireNoteEventRecord > pulp::playback::ProgramWireView::note_events ( ) const
inlinenoexcept

◆ note_events_for()

std::span< const ProgramWireNoteEventRecord > pulp::playback::ProgramWireView::note_events_for ( const ProgramWireTrackRecord & track) const
inlinenoexcept

◆ note_modifiers()

std::span< const ProgramWireNoteModifierRecord > pulp::playback::ProgramWireView::note_modifiers ( ) const
inlinenoexcept

◆ note_modifiers_for()

std::span< const ProgramWireNoteModifierRecord > pulp::playback::ProgramWireView::note_modifiers_for ( const ProgramWireTrackRecord & track) const
inlinenoexcept

◆ producer_epoch()

std::uint64_t pulp::playback::ProgramWireView::producer_epoch ( ) const
inlinenoexcept

◆ program()

const ProgramWireProgramRecord & pulp::playback::ProgramWireView::program ( ) const
inlinenoexcept

◆ sample_rate()

timebase::RationalRate pulp::playback::ProgramWireView::sample_rate ( ) const
inlinenoexcept

◆ segments_for()

std::span< const ProgramWireAutomationSegmentRecord > pulp::playback::ProgramWireView::segments_for ( const ProgramWireAutomationLaneRecord & lane) const
inlinenoexcept

◆ tempo_points()

std::span< const ProgramWireTempoPointRecord > pulp::playback::ProgramWireView::tempo_points ( ) const
inlinenoexcept

◆ tracks()

std::span< const ProgramWireTrackRecord > pulp::playback::ProgramWireView::tracks ( ) const
inlinenoexcept

◆ detail::ProgramWireDecoder

friend struct detail::ProgramWireDecoder
friend

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