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

Automation-specific timeline data cache. More...

#include <src/dsp/timeline_data_cache.h>

Inheritance diagram for zrythm::dsp::AutomationTimelineDataCache:
Collaboration diagram for zrythm::dsp::AutomationTimelineDataCache:

Data Structures

struct  AutomationCacheEntry
 Automation cache entry for caching. More...

Public Member Functions

 AutomationTimelineDataCache (QObject *parent=nullptr)
void add_automation_sequence (IntervalType interval, const std::vector< float > &automation_values)
 Adds an automation sequence for the given interval.
const std::vector< AutomationCacheEntry > & get_automation_sequences () const
 Gets the cached automation sequences.
void remove_sequences_matching_interval (IntervalType interval) override
 Removes cached data for intervals that truly overlap with the given interval.
bool has_content () const override
 Checks if the cache has any content.
Public Member Functions inherited from zrythm::dsp::TimelineDataCache
 TimelineDataCache (QObject *parent=nullptr)
void clear ()
 Clears all cached data and emits cachedRangesChanged.
void finalize_changes ()
 Finalizes changes, prepares cached data for access, and emits cachedRangesChanged.
Q_SIGNAL void cachedRangesChanged (std::vector< IntervalType > ranges) const
 Emitted when the cache content changes (after finalize_changes or clear).

Additional Inherited Members

Public Types inherited from zrythm::dsp::TimelineDataCache
using IntervalType = std::pair<units::sample_t, units::sample_t>
Static Protected Member Functions inherited from zrythm::dsp::TimelineDataCache
static bool intervals_overlap (IntervalType a, IntervalType b) noexcept
 Returns true if two intervals truly overlap (adjacent intervals do not count).

Detailed Description

Automation-specific timeline data cache.

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

Definition at line 238 of file timeline_data_cache.h.

Constructor & Destructor Documentation

◆ AutomationTimelineDataCache()

zrythm::dsp::AutomationTimelineDataCache::AutomationTimelineDataCache ( QObject * parent = nullptr)
inlineexplicit

Definition at line 241 of file timeline_data_cache.h.

Member Function Documentation

◆ add_automation_sequence()

void zrythm::dsp::AutomationTimelineDataCache::add_automation_sequence ( IntervalType interval,
const std::vector< float > & automation_values )

Adds an automation sequence for the given interval.

Parameters
intervalThe time interval (in samples).
automation_valuesThe automation values.

◆ get_automation_sequences()

const std::vector< AutomationCacheEntry > & zrythm::dsp::AutomationTimelineDataCache::get_automation_sequences ( ) const
inline

Gets the cached automation sequences.

Returns
Reference to the vector of automation cache entries.

Definition at line 280 of file timeline_data_cache.h.

◆ has_content()

bool zrythm::dsp::AutomationTimelineDataCache::has_content ( ) const
overridevirtual

Checks if the cache has any content.

Returns
True if the cache contains any data, false otherwise.

Implements zrythm::dsp::TimelineDataCache.

◆ remove_sequences_matching_interval()

void zrythm::dsp::AutomationTimelineDataCache::remove_sequences_matching_interval ( IntervalType interval)
overridevirtual

Removes cached data for intervals that truly overlap with the given interval.

Adjacent intervals (where one's end equals another's start) are NOT considered overlapping, since cache entries use exclusive-end semantics (end = one past the last sample).

Parameters
intervalThe time interval to remove (in samples).

Call finalize_changes() after one or more calls to this method.

Implements zrythm::dsp::TimelineDataCache.


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