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

Immutable root of a Timeline document and its monotonic identity domain. More...

#include <model.hpp>

Public Member Functions

ItemId id () const noexcept
 Returns the stable project identity.
const std::string & name () const noexcept
 Returns the authored project name.
std::uint64_t next_item_id () const noexcept
 Returns the next unallocated numeric ItemId.
ItemId root_sequence_id () const noexcept
 Returns the identity of the arrangement's root sequence.
std::span< const MediaAsset > assets () const noexcept
 Returns project-owned media assets in canonical identity order.
std::span< const Sequence > sequences () const noexcept
 Returns project-owned sequences in canonical identity order.
const timebase::TempoMap & tempo_map () const noexcept
 Returns the project's immutable tempo map.
const timebase::MeterMap & meter_map () const noexcept
 Returns the project's immutable meter map.
const std::optional< SessionStart > & session_start () const noexcept
 Returns the optional absolute source-clock origin.
const std::optional< TuningReference > & tuning () const noexcept
 Returns the tuning every track plays in unless it states its own.
const MediaAsset * find_asset (ItemId id) const noexcept
 Finds a media asset by identity, or returns nullptr.
const Sequence * find_sequence (ItemId id) const noexcept
 Finds a sequence by identity, or returns nullptr.
std::optional< ItemLocation > locate (ItemId id) const noexcept
 Returns canonical location data for active or inactive id, if known.
std::size_t shared_identity_nodes_with (const Project &other) const
 Counts persistent identity-index nodes shared with other.
bool shares_storage_with (const Project &other) const noexcept
 Returns whether both values share complete immutable project storage.
SequenceCompileStructureToken sequence_compile_structure_token () const noexcept
 Process-local identity of the sequence-reference and registered-content placement shape used by incremental playback invalidation.
ItemIdAllocator item_id_allocator () const noexcept
 Returns an allocator initialized to this snapshot's identity frontier.

Static Public Member Functions

static runtime::Result< Project, ModelError > create (ProjectInput input)
 Validates referential integrity, ownership, durations, and identity monotonicity.
static ProjectIdentityStats identity_stats () noexcept
 Returns process-wide persistent identity-index diagnostic counters.

Friends

struct ProjectEditAccess
class detail::ProjectStateAccess

Detailed Description

Immutable root of a Timeline document and its monotonic identity domain.

Member Function Documentation

◆ assets()

std::span< const MediaAsset > pulp::timeline::Project::assets ( ) const
noexcept

Returns project-owned media assets in canonical identity order.

◆ create()

runtime::Result< Project, ModelError > pulp::timeline::Project::create ( ProjectInput input)
static

Validates referential integrity, ownership, durations, and identity monotonicity.

◆ find_asset()

const MediaAsset * pulp::timeline::Project::find_asset ( ItemId id) const
noexcept

Finds a media asset by identity, or returns nullptr.

◆ find_sequence()

const Sequence * pulp::timeline::Project::find_sequence ( ItemId id) const
noexcept

Finds a sequence by identity, or returns nullptr.

◆ id()

ItemId pulp::timeline::Project::id ( ) const
noexcept

Returns the stable project identity.

◆ identity_stats()

ProjectIdentityStats pulp::timeline::Project::identity_stats ( )
staticnoexcept

Returns process-wide persistent identity-index diagnostic counters.

◆ item_id_allocator()

ItemIdAllocator pulp::timeline::Project::item_id_allocator ( ) const
inlinenoexcept

Returns an allocator initialized to this snapshot's identity frontier.

◆ locate()

std::optional< ItemLocation > pulp::timeline::Project::locate ( ItemId id) const
noexcept

Returns canonical location data for active or inactive id, if known.

◆ meter_map()

const timebase::MeterMap & pulp::timeline::Project::meter_map ( ) const
noexcept

Returns the project's immutable meter map.

◆ name()

const std::string & pulp::timeline::Project::name ( ) const
noexcept

Returns the authored project name.

◆ next_item_id()

std::uint64_t pulp::timeline::Project::next_item_id ( ) const
noexcept

Returns the next unallocated numeric ItemId.

◆ root_sequence_id()

ItemId pulp::timeline::Project::root_sequence_id ( ) const
noexcept

Returns the identity of the arrangement's root sequence.

◆ sequence_compile_structure_token()

SequenceCompileStructureToken pulp::timeline::Project::sequence_compile_structure_token ( ) const
noexcept

Process-local identity of the sequence-reference and registered-content placement shape used by incremental playback invalidation.

The token is preserved across edits that cannot change dependency subscribers and is replaced before publishing a structurally incompatible snapshot.

◆ sequences()

std::span< const Sequence > pulp::timeline::Project::sequences ( ) const
noexcept

Returns project-owned sequences in canonical identity order.

◆ session_start()

const std::optional< SessionStart > & pulp::timeline::Project::session_start ( ) const
noexcept

Returns the optional absolute source-clock origin.

◆ shared_identity_nodes_with()

std::size_t pulp::timeline::Project::shared_identity_nodes_with ( const Project & other) const

Counts persistent identity-index nodes shared with other.

◆ shares_storage_with()

bool pulp::timeline::Project::shares_storage_with ( const Project & other) const
noexcept

Returns whether both values share complete immutable project storage.

◆ tempo_map()

const timebase::TempoMap & pulp::timeline::Project::tempo_map ( ) const
noexcept

Returns the project's immutable tempo map.

◆ tuning()

const std::optional< TuningReference > & pulp::timeline::Project::tuning ( ) const
noexcept

Returns the tuning every track plays in unless it states its own.

◆ detail::ProjectStateAccess

friend class detail::ProjectStateAccess
friend

◆ ProjectEditAccess

friend struct ProjectEditAccess
friend

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