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

Automation-specific timeline data provider. More...

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

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

Public Member Functions

void process_automation_events (const EngineProcessTimeInfo &time_nfo, dsp::ITransport::PlayState transport_state, std::span< float > output_values) noexcept
 Process automation events for the given time range.
std::optional< float > get_automation_value_rt (units::sample_t sample_position) noexcept
 Get the automation value for a specific sample position.
void clear_all_caches () override
void remove_sequences_matching_interval_from_all_caches (IntervalType interval) override
const std::vector< dsp::AutomationTimelineDataCache::AutomationCacheEntry > & get_automation_sequences () const
void generate_automation_events (const dsp::TempoMap &tempo_map, RangeOf< const arrangement::AutomationRegion * > auto automation_regions, utils::ExpandableTickRange affected_range)
 Generate the automation 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

Automation-specific timeline data provider.

Handles caching of automation sequences with thread-safe access and range-based updates.

Definition at line 345 of file timeline_data_provider.h.

Member Function Documentation

◆ clear_all_caches()

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

◆ generate_automation_events()

void zrythm::structure::arrangement::AutomationTimelineDataProvider::generate_automation_events ( const dsp::TempoMap & tempo_map,
RangeOf< const arrangement::AutomationRegion * > auto automation_regions,
utils::ExpandableTickRange affected_range )
inline

Generate the automation 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.
automation_regionsThe automation regions to process.
affected_rangeThe range of ticks to process.

Definition at line 386 of file timeline_data_provider.h.

◆ get_automation_value_rt()

std::optional< float > zrythm::structure::arrangement::AutomationTimelineDataProvider::get_automation_value_rt ( units::sample_t sample_position)
noexcept

Get the automation value for a specific sample position.

Parameters
sample_positionThe sample position to get the value for
Returns
The automation value at the given position, if any

◆ get_base_cache()

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

◆ remove_sequences_matching_interval_from_all_caches()

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

◆ TimelineDataProvider

friend class TimelineDataProvider
friend

Definition at line 347 of file timeline_data_provider.h.


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