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 |
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.
|
default |
|
inlinenoexcept |
|
inlinenoexcept |
|
noexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
The events of the track whose index in tracks() matches range's in controller_ranges().
|
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.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
friend |