Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
program.hpp File Reference
#include <pulp/playback/audio_renderer_limits.hpp>
#include <pulp/playback/automation_limits.hpp>
#include <pulp/playback/program_identity.hpp>
#include <pulp/playback/track_mixer_program.hpp>
#include <pulp/runtime/result.hpp>
#include <pulp/runtime/slot.hpp>
#include <pulp/timebase/compiled_tempo_map.hpp>
#include <pulp/timeline/midi_lane.hpp>
#include <pulp/timeline/model.hpp>
#include <pulp/timeline/production_mode.hpp>
#include <atomic>
#include <cstddef>
#include <cstdint>
#include <memory>
#include <span>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

struct  pulp::playback::ProgramError
struct  pulp::playback::ProviderSelectorProgram
struct  pulp::playback::NoteProgramEvent
 Immutable arrangement-note event lowered by the program compiler. More...
struct  pulp::playback::CompiledNoteModifier
 One note's playback modifier, lowered with its draw key already folded from the content's authored seed and the note identity. More...
struct  pulp::playback::ControllerProgramEvent
 Immutable controller/expression value lowered by the program compiler. More...
class  pulp::playback::TrackProgram
class  pulp::playback::PlaybackProgram
class  pulp::playback::PlaybackProgramStore

Namespaces

namespace  pulp
namespace  pulp::playback

Enumerations

enum class  pulp::playback::ProgramErrorCode : std::uint8_t {
  pulp::playback::InvalidGeneration , pulp::playback::InvalidIdentity , pulp::playback::DuplicateTrack , pulp::playback::DuplicateClip ,
  pulp::playback::MissingTempoMap
}
enum class  pulp::playback::ProviderKind : std::uint8_t { pulp::playback::Arrangement , pulp::playback::Launcher , pulp::playback::ExternalInput }
enum class  pulp::playback::RendererStatePolicy : std::uint8_t { pulp::playback::Stateless , pulp::playback::CarryByItemId }
enum class  pulp::playback::NoteProgramEventKind : std::uint8_t { pulp::playback::Off , pulp::playback::On }
enum class  pulp::playback::ControllerProgramEventOrigin : std::uint8_t { pulp::playback::Authored , pulp::playback::Chased }
 Whether a lowered controller value was authored at its own position or synthesized at a window boundary to answer "what is sounding here". More...

Functions

runtime::Result< ProgramGeneration, ProgramError > pulp::playback::next_program_generation (ProgramGeneration current) noexcept
const CompiledNoteModifier * pulp::playback::find_note_modifier (std::span< const CompiledNoteModifier > modifiers, timeline::ItemId note_id) noexcept
 Looks up the modifier for note_id in a table sorted by note id.
constexpr bool pulp::playback::controller_program_event_less (const ControllerProgramEvent &lhs, const ControllerProgramEvent &rhs) noexcept
 Total order for controller events sharing a block.
constexpr bool pulp::playback::note_program_event_less (const NoteProgramEvent &lhs, const NoteProgramEvent &rhs) noexcept

Variables

constexpr std::size_t pulp::playback::kMaximumControllerEventsPerTrack = std::size_t{1} << 20
 Ceiling on controller events one track program may carry.