Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
zrythm::structure::arrangement::TimelineDataProvider Class Referenceabstract

Base class for timeline data providers. More...

#include <src/structure/arrangement/timeline_data_provider.h>

Inheritance diagram for zrythm::structure::arrangement::TimelineDataProvider:

Public Types

using IntervalType = std::pair<units::sample_t, units::sample_t>

Public Member Functions

template<RegionObject RegionType>
void generate_events (this auto &self, const dsp::TempoMap &tempo_map, RangeOf< const RegionType * > auto regions, utils::ExpandableTickRange affected_range)
 Generate the event sequence to be used during realtime processing.
virtual void clear_all_caches ()=0
virtual void remove_sequences_matching_interval_from_all_caches (IntervalType interval)=0

Protected Member Functions

virtual dsp::TimelineDataCacheget_base_cache ()=0

Protected Attributes

dsp::ITransport::PlayState last_seen_transport_state_
 Last transport state we've seen.
units::sample_t next_expected_transport_position_
 Next expected transport position (for detecting jumps).

Detailed Description

Base class for timeline data providers.

Provides common functionality for all timeline data provider types. This is an abstract base class that defines the interface that all derived provider classes must implement.

Definition at line 24 of file timeline_data_provider.h.

Member Typedef Documentation

◆ IntervalType

using zrythm::structure::arrangement::TimelineDataProvider::IntervalType = std::pair<units::sample_t, units::sample_t>

Definition at line 27 of file timeline_data_provider.h.

Member Function Documentation

◆ generate_events()

template<RegionObject RegionType>
void zrythm::structure::arrangement::TimelineDataProvider::generate_events ( this auto & self,
const dsp::TempoMap & tempo_map,
RangeOf< const RegionType * > auto regions,
utils::ExpandableTickRange affected_range )
inline

Generate the event sequence to be used during realtime processing.

To be called as needed from the UI thread when a new cache is requested.

Template Parameters
RegionTypeEither MidiRegion, AudioRegion, ChordRegion, or AutomationRegion
Parameters
selfThe derived class instance (explicit this parameter)
tempo_mapThe tempo map for timing conversion.
regionsThe regions to process.
affected_rangeThe range of ticks to process.

Definition at line 44 of file timeline_data_provider.h.

Field Documentation

◆ last_seen_transport_state_

dsp::ITransport::PlayState zrythm::structure::arrangement::TimelineDataProvider::last_seen_transport_state_
protected
Initial value:
{
dsp::ITransport::PlayState::Paused
}

Last transport state we've seen.

Definition at line 126 of file timeline_data_provider.h.

◆ next_expected_transport_position_

units::sample_t zrythm::structure::arrangement::TimelineDataProvider::next_expected_transport_position_
protected

Next expected transport position (for detecting jumps).

Definition at line 131 of file timeline_data_provider.h.


The documentation for this class was generated from the following file: