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

Audio-specific timeline data provider. More...

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

Inheritance diagram for zrythm::structure::arrangement::AudioTimelineDataProvider:
Collaboration diagram for zrythm::structure::arrangement::AudioTimelineDataProvider:

Public Member Functions

void process_audio_events (const EngineProcessTimeInfo &time_nfo, dsp::ITransport::PlayState transport_state, std::span< float > output_left, std::span< float > output_right) noexcept
 Process audio events for the given time range.
void clear_all_caches () override
void remove_sequences_matching_interval_from_all_caches (IntervalType interval) override
const std::vector< dsp::AudioTimelineDataCache::AudioRegionEntry > & get_audio_regions () const
void generate_audio_events (const dsp::TempoMap &tempo_map, RangeOf< const arrangement::AudioRegion * > auto audio_regions, utils::ExpandableTickRange affected_range)
 Generate the audio event sequence to be used during realtime processing.
Public Member Functions inherited from zrythm::structure::arrangement::TimelineDataProvider
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.

Protected Member Functions

dsp::TimelineDataCacheget_base_cache () override

Friends

class TimelineDataProvider

Additional Inherited Members

Public Types inherited from zrythm::structure::arrangement::TimelineDataProvider
using IntervalType = std::pair<units::sample_t, units::sample_t>
Protected Attributes inherited from zrythm::structure::arrangement::TimelineDataProvider
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

Audio-specific timeline data provider.

Handles caching of audio regions with thread-safe access and range-based updates.

Definition at line 258 of file timeline_data_provider.h.

Member Function Documentation

◆ clear_all_caches()

void zrythm::structure::arrangement::AudioTimelineDataProvider::clear_all_caches ( )
overridevirtual

◆ generate_audio_events()

void zrythm::structure::arrangement::AudioTimelineDataProvider::generate_audio_events ( const dsp::TempoMap & tempo_map,
RangeOf< const arrangement::AudioRegion * > auto audio_regions,
utils::ExpandableTickRange affected_range )
inline

Generate the audio event sequence to be used during realtime processing.

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

Parameters
tempo_mapThe tempo map for timing conversion.
audio_regionsThe audio regions to process.
affected_rangeThe range of ticks to process.

Definition at line 290 of file timeline_data_provider.h.

◆ get_base_cache()

dsp::TimelineDataCache * zrythm::structure::arrangement::AudioTimelineDataProvider::get_base_cache ( )
inlineoverrideprotectedvirtual

◆ remove_sequences_matching_interval_from_all_caches()

void zrythm::structure::arrangement::AudioTimelineDataProvider::remove_sequences_matching_interval_from_all_caches ( IntervalType interval)
overridevirtual

◆ TimelineDataProvider

friend class TimelineDataProvider
friend

Definition at line 260 of file timeline_data_provider.h.


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