Ardour  9.0-pre0-582-g084a23a80d
Evoral::ControlList Class Reference

#include <ControlList.h>

Inheritance diagram for Evoral::ControlList:
[legend]

Classes

struct  LookupCache
 
struct  OrderedPoint
 
struct  SearchCache
 

Public Types

enum  InterpolationStyle {
  Discrete , Linear , Curved , Logarithmic ,
  Exponential
}
 
typedef std::list< ControlEvent * > EventList
 
typedef EventList::iterator iterator
 
typedef EventList::reverse_iterator reverse_iterator
 
typedef EventList::const_iterator const_iterator
 
typedef EventList::const_reverse_iterator const_reverse_iterator
 
typedef std::vector< OrderedPointOrderedPoints
 

Public Member Functions

 ControlList (const Parameter &id, const ParameterDescriptor &desc, Temporal::TimeDomainProvider const &)
 
 ControlList (const ControlList &, Temporal::timepos_t const &start, Temporal::timepos_t const &end)
 
 ControlList (const ControlList &)
 
virtual ~ControlList ()
 
virtual std::shared_ptr< ControlListcreate (const Parameter &id, const ParameterDescriptor &desc, Temporal::TimeDomainProvider const &)
 
void dump (std::ostream &)
 
ControlListoperator= (const ControlList &)
 
bool operator== (const ControlList &)
 
void copy_events (const ControlList &)
 
virtual void freeze ()
 
virtual void thaw ()
 
bool frozen () const
 
const Parameterparameter () const
 
void set_parameter (const Parameter &p)
 
const ParameterDescriptordescriptor () const
 
void set_descriptor (const ParameterDescriptor &d)
 
EventList::size_type size () const
 
Temporal::timepos_t when (bool at_start) const
 
Temporal::timecnt_t length () const
 
bool empty () const
 
void clear ()
 
void x_scale (Temporal::ratio_t const &)
 
bool extend_to (Temporal::timepos_t const &)
 
void slide (iterator before, Temporal::timecnt_t const &distance)
 
void shift (Temporal::timepos_t const &before, Temporal::timecnt_t const &distance)
 
void y_transform (std::function< double(double)> callback)
 
void list_merge (ControlList const &other, std::function< double(double, double)> callback)
 
virtual void add (Temporal::timepos_t const &when, double value, bool with_guards=true, bool with_initial=true)
 
virtual bool editor_add (Temporal::timepos_t const &when, double value, bool with_guard)
 
virtual bool editor_add_ordered (OrderedPoints const &, bool with_guard)
 
void fast_simple_add (Temporal::timepos_t const &when, double value)
 
void erase_range (Temporal::timepos_t const &start, Temporal::timepos_t const &end)
 
void erase (iterator)
 
void erase (iterator, iterator)
 
void erase (Temporal::timepos_t const &, double)
 
bool move_ranges (std::list< Temporal::RangeMove > const &)
 
void modify (iterator, Temporal::timepos_t const &, double)
 
void thin (double thinning_factor)
 
std::shared_ptr< ControlListcut (Temporal::timepos_t const &, Temporal::timepos_t const &)
 
std::shared_ptr< ControlListcopy (Temporal::timepos_t const &, Temporal::timepos_t const &)
 
void clear (Temporal::timepos_t const &start, Temporal::timepos_t const &end)
 
bool paste (const ControlList &, Temporal::timepos_t const &)
 
void truncate_end (Temporal::timepos_t const &last_coordinate)
 
void truncate_start (Temporal::timecnt_t const &overall_length)
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
ControlEventback ()
 
const ControlEventback () const
 
ControlEventfront ()
 
const ControlEventfront () const
 
std::pair< ControlList::iterator, ControlList::iteratorcontrol_points_adjacent (Temporal::timepos_t const &when)
 
template<class T >
void apply_to_points (T &obj, void(T::*method)(const ControlList &))
 
double eval (Temporal::timepos_t const &where) const
 
double rt_safe_eval (Temporal::timepos_t const &where, bool &ok) const
 
const EventListevents () const
 
Glib::Threads::RWLock & lock () const
 
LookupCachelookup_cache () const
 
SearchCachesearch_cache () const
 
double unlocked_eval (Temporal::timepos_t const &x) const
 
bool rt_safe_earliest_event_discrete_unlocked (Temporal::timepos_t const &start, Temporal::timepos_t &x, double &y, bool inclusive) const
 
bool rt_safe_earliest_event_linear_unlocked (Temporal::timepos_t const &start, Temporal::timepos_t &x, double &y, bool inclusive, Temporal::timecnt_t min_x_delta=Temporal::timecnt_t::max()) const
 
void create_curve ()
 
void destroy_curve ()
 
Curvecurve ()
 
const Curvecurve () const
 
void mark_dirty () const
 
InterpolationStyle interpolation () const
 
virtual InterpolationStyle default_interpolation () const
 
bool set_interpolation (InterpolationStyle is)
 
virtual bool touching () const
 
virtual bool writing () const
 
virtual bool touch_enabled () const
 
void start_write_pass (Temporal::timepos_t const &)
 
void write_pass_finished (Temporal::timepos_t const &, double thinning_factor=0.0)
 
void set_in_write_pass (bool, bool add_point=false, Temporal::timepos_t=std::numeric_limits< Temporal::timepos_t >::min())
 
bool in_write_pass () const
 
bool in_new_write_pass ()
 
bool operator!= (ControlList const &) const
 
void invalidate_insert_iterator ()
 
void start_domain_bounce (Temporal::DomainBounceInfo &)
 
void finish_domain_bounce (Temporal::DomainBounceInfo &)
 
- Public Member Functions inherited from Temporal::TimeDomainProvider
 TimeDomainProvider ()
 
 TimeDomainProvider (TimeDomain td)
 
 TimeDomainProvider (TimeDomain td, TimeDomainProvider const &p)
 
 TimeDomainProvider (TimeDomainProvider const &other)
 
 TimeDomainProvider (TimeDomainProvider const &parnt, bool)
 
virtual ~TimeDomainProvider ()
 
XMLNodeget_state () const
 
int set_state (const XMLNode &, int version)
 
TimeDomainProvideroperator= (TimeDomainProvider const &other)
 
TimeDomain time_domain () const
 
bool has_own_time_domain () const
 
void clear_time_domain ()
 
void set_time_domain (TimeDomain td)
 
TimeDomainProvider const * time_domain_parent () const
 
bool has_time_domain_parent () const
 
void clear_time_domain_parent ()
 
void set_time_domain_parent (TimeDomainProvider const &p)
 
virtual void time_domain_changed ()
 
- Public Member Functions inherited from Temporal::TimeDomainSwapper
virtual ~TimeDomainSwapper ()
 
- Public Member Functions inherited from PBD::Destructible
virtual ~Destructible ()
 
virtual void drop_references ()
 

Static Public Member Functions

static bool time_comparator (const ControlEvent *a, const ControlEvent *b)
 

Public Attributes

PBD::Signal< void()> WritePassStarted
 
PBD::Signal< void()> Dirty
 
PBD::Signal< void(InterpolationStyle)> InterpolationChanged
 
- Public Attributes inherited from Temporal::TimeDomainProvider
PBD::Signal< void()> TimeDomainChanged
 
- Public Attributes inherited from PBD::Destructible
PBD::Signal< void()> Destroyed
 
PBD::Signal< void()> DropReferences
 

Protected Member Functions

double multipoint_eval (Temporal::timepos_t const &x) const
 
void build_search_cache_if_necessary (Temporal::timepos_t const &start) const
 
std::shared_ptr< ControlListcut_copy_clear (Temporal::timepos_t const &, Temporal::timepos_t const &, int op)
 
bool erase_range_internal (Temporal::timepos_t const &start, Temporal::timepos_t const &end, EventList &)
 
void maybe_add_insert_guard (Temporal::timepos_t const &when)
 
iterator erase_from_iterator_to (iterator iter, Temporal::timepos_t const &when)
 
bool maybe_insert_straight_line (Temporal::timepos_t const &when, double value)
 
virtual void maybe_signal_changed ()
 
void _x_scale (Temporal::ratio_t const &)
 
- Protected Member Functions inherited from Temporal::TimeDomainProvider
void listen ()
 

Protected Attributes

LookupCache _lookup_cache
 
SearchCache _search_cache
 
Glib::Threads::RWLock _lock
 
Parameter _parameter
 
ParameterDescriptor _desc
 
InterpolationStyle _interpolation
 
EventList _events
 
int8_t _frozen
 
bool _changed_when_thawed
 
bool _sort_pending
 
Curve_curve
 

Private Member Functions

void unlocked_remove_duplicates ()
 
void unlocked_invalidate_insert_iterator ()
 
void add_guard_point (Temporal::timepos_t const &when, Temporal::timecnt_t const &offset)
 
bool is_sorted () const
 
Temporal::timepos_t ensure_time_domain (Temporal::timepos_t const &) const
 

Private Attributes

iterator most_recent_insert_iterator
 
Temporal::timepos_t insert_position
 
bool new_write_pass
 
bool did_write_during_pass
 
bool _in_write_pass
 

Detailed Description

A list (sequence) of time-stamped values for a control

Definition at line 89 of file ControlList.h.

Member Typedef Documentation

◆ const_iterator

typedef EventList::const_iterator Evoral::ControlList::const_iterator

Definition at line 95 of file ControlList.h.

◆ const_reverse_iterator

typedef EventList::const_reverse_iterator Evoral::ControlList::const_reverse_iterator

Definition at line 96 of file ControlList.h.

◆ EventList

Definition at line 92 of file ControlList.h.

◆ iterator

typedef EventList::iterator Evoral::ControlList::iterator

Definition at line 93 of file ControlList.h.

◆ OrderedPoints

Definition at line 178 of file ControlList.h.

◆ reverse_iterator

typedef EventList::reverse_iterator Evoral::ControlList::reverse_iterator

Definition at line 94 of file ControlList.h.

Member Enumeration Documentation

◆ InterpolationStyle

Enumerator
Discrete 
Linear 
Curved 
Logarithmic 
Exponential 

Definition at line 329 of file ControlList.h.

Constructor & Destructor Documentation

◆ ControlList() [1/3]

Evoral::ControlList::ControlList ( const Parameter id,
const ParameterDescriptor desc,
Temporal::TimeDomainProvider const &   
)

◆ ControlList() [2/3]

Evoral::ControlList::ControlList ( const ControlList ,
Temporal::timepos_t const &  start,
Temporal::timepos_t const &  end 
)

◆ ControlList() [3/3]

Evoral::ControlList::ControlList ( const ControlList )

◆ ~ControlList()

virtual Evoral::ControlList::~ControlList ( )
virtual

Member Function Documentation

◆ _x_scale()

void Evoral::ControlList::_x_scale ( Temporal::ratio_t const &  )
protected

◆ add()

virtual void Evoral::ControlList::add ( Temporal::timepos_t const &  when,
double  value,
bool  with_guards = true,
bool  with_initial = true 
)
virtual

Add an event to this list.

This method is intended to write automation in realtime. If the transport is stopped, guard-points will be added regardless of parameter with_guards.

Parameters
whenabsolute time in samples
valueparameter value
with_guardsif true, add guard-points
with_initialif true, add an initial point if the list is empty

◆ add_guard_point()

void Evoral::ControlList::add_guard_point ( Temporal::timepos_t const &  when,
Temporal::timecnt_t const &  offset 
)
private

◆ apply_to_points()

template<class T >
void Evoral::ControlList::apply_to_points ( T &  obj,
void(T::*)(const ControlList &)  method 
)
inline

Definition at line 251 of file ControlList.h.

◆ back() [1/2]

ControlEvent* Evoral::ControlList::back ( )
inline

Definition at line 244 of file ControlList.h.

◆ back() [2/2]

const ControlEvent* Evoral::ControlList::back ( ) const
inline

Definition at line 245 of file ControlList.h.

◆ begin() [1/2]

iterator Evoral::ControlList::begin ( )
inline

Definition at line 236 of file ControlList.h.

◆ begin() [2/2]

const_iterator Evoral::ControlList::begin ( ) const
inline

Definition at line 237 of file ControlList.h.

◆ build_search_cache_if_necessary()

void Evoral::ControlList::build_search_cache_if_necessary ( Temporal::timepos_t const &  start) const
protected

◆ clear() [1/2]

void Evoral::ControlList::clear ( )

Remove all events from this list.

◆ clear() [2/2]

void Evoral::ControlList::clear ( Temporal::timepos_t const &  start,
Temporal::timepos_t const &  end 
)

Remove all events in the given time range from this list.

Parameters
startstart of range (inclusive) in audio samples
endend of range (inclusive) in audio samples

◆ control_points_adjacent()

std::pair<ControlList::iterator,ControlList::iterator> Evoral::ControlList::control_points_adjacent ( Temporal::timepos_t const &  when)

◆ copy()

std::shared_ptr<ControlList> Evoral::ControlList::copy ( Temporal::timepos_t const &  ,
Temporal::timepos_t const &   
)

◆ copy_events()

void Evoral::ControlList::copy_events ( const ControlList )

◆ create()

virtual std::shared_ptr<ControlList> Evoral::ControlList::create ( const Parameter id,
const ParameterDescriptor desc,
Temporal::TimeDomainProvider const &   
)
virtual

Reimplemented in ARDOUR::AutomationList.

◆ create_curve()

void Evoral::ControlList::create_curve ( )

◆ curve() [1/2]

Curve& Evoral::ControlList::curve ( )
inline

Definition at line 324 of file ControlList.h.

◆ curve() [2/2]

const Curve& Evoral::ControlList::curve ( ) const
inline

Definition at line 325 of file ControlList.h.

◆ cut()

std::shared_ptr<ControlList> Evoral::ControlList::cut ( Temporal::timepos_t const &  ,
Temporal::timepos_t const &   
)

◆ cut_copy_clear()

std::shared_ptr<ControlList> Evoral::ControlList::cut_copy_clear ( Temporal::timepos_t const &  ,
Temporal::timepos_t const &  ,
int  op 
)
protected

◆ default_interpolation()

virtual InterpolationStyle Evoral::ControlList::default_interpolation ( ) const
virtual

query default interpolation for parameter-descriptor

Reimplemented in ARDOUR::AutomationList.

◆ descriptor()

const ParameterDescriptor& Evoral::ControlList::descriptor ( ) const
inline

Definition at line 118 of file ControlList.h.

◆ destroy_curve()

void Evoral::ControlList::destroy_curve ( )

◆ dump()

void Evoral::ControlList::dump ( std::ostream &  )

◆ editor_add()

virtual bool Evoral::ControlList::editor_add ( Temporal::timepos_t const &  when,
double  value,
bool  with_guard 
)
virtual

Add an event to this list.

This method is intended for making manual changes from the GUI. An event will only be created if no other event exists at the given time.

Parameters
whenabsolute time in samples
valueparameter value
with_guardif true, add guard-points
Returns
true if an event was added.

◆ editor_add_ordered()

virtual bool Evoral::ControlList::editor_add_ordered ( OrderedPoints const &  ,
bool  with_guard 
)
virtual

◆ empty()

bool Evoral::ControlList::empty ( ) const
inline

Definition at line 136 of file ControlList.h.

◆ end() [1/2]

iterator Evoral::ControlList::end ( )
inline

Definition at line 238 of file ControlList.h.

◆ end() [2/2]

const_iterator Evoral::ControlList::end ( ) const
inline

Definition at line 239 of file ControlList.h.

◆ ensure_time_domain()

Temporal::timepos_t Evoral::ControlList::ensure_time_domain ( Temporal::timepos_t const &  ) const
private

◆ erase() [1/3]

void Evoral::ControlList::erase ( iterator  )

◆ erase() [2/3]

void Evoral::ControlList::erase ( iterator  ,
iterator   
)

◆ erase() [3/3]

void Evoral::ControlList::erase ( Temporal::timepos_t const &  ,
double   
)

◆ erase_from_iterator_to()

iterator Evoral::ControlList::erase_from_iterator_to ( iterator  iter,
Temporal::timepos_t const &  when 
)
protected

◆ erase_range()

void Evoral::ControlList::erase_range ( Temporal::timepos_t const &  start,
Temporal::timepos_t const &  end 
)

◆ erase_range_internal()

bool Evoral::ControlList::erase_range_internal ( Temporal::timepos_t const &  start,
Temporal::timepos_t const &  end,
EventList  
)
protected

◆ eval()

double Evoral::ControlList::eval ( Temporal::timepos_t const &  where) const
inline

Queries the event value at the given time (takes a read-lock, not safe while writing automation).

Parameters
whereabsolute time in samples
Returns
parameter value

Definition at line 262 of file ControlList.h.

◆ events()

const EventList& Evoral::ControlList::events ( ) const
inline
Returns
the list of events

Definition at line 304 of file ControlList.h.

◆ extend_to()

bool Evoral::ControlList::extend_to ( Temporal::timepos_t const &  )

◆ fast_simple_add()

void Evoral::ControlList::fast_simple_add ( Temporal::timepos_t const &  when,
double  value 
)

◆ finish_domain_bounce()

void Evoral::ControlList::finish_domain_bounce ( Temporal::DomainBounceInfo )
virtual

◆ freeze()

virtual void Evoral::ControlList::freeze ( )
virtual

◆ front() [1/2]

ControlEvent* Evoral::ControlList::front ( )
inline

Definition at line 246 of file ControlList.h.

◆ front() [2/2]

const ControlEvent* Evoral::ControlList::front ( ) const
inline

Definition at line 247 of file ControlList.h.

◆ frozen()

bool Evoral::ControlList::frozen ( ) const
inline

Definition at line 113 of file ControlList.h.

◆ in_new_write_pass()

bool Evoral::ControlList::in_new_write_pass ( )
inline

Definition at line 363 of file ControlList.h.

◆ in_write_pass()

bool Evoral::ControlList::in_write_pass ( ) const
Returns
true if transport is running and this list is in write mode

◆ interpolation()

InterpolationStyle Evoral::ControlList::interpolation ( ) const
inline

query interpolation style of the automation data

Returns
Interpolation Style

Definition at line 340 of file ControlList.h.

◆ invalidate_insert_iterator()

void Evoral::ControlList::invalidate_insert_iterator ( )

◆ is_sorted()

bool Evoral::ControlList::is_sorted ( ) const
private

◆ length()

Temporal::timecnt_t Evoral::ControlList::length ( ) const
inline

Definition at line 132 of file ControlList.h.

◆ list_merge()

void Evoral::ControlList::list_merge ( ControlList const &  other,
std::function< double(double, double)>  callback 
)

◆ lock()

Glib::Threads::RWLock& Evoral::ControlList::lock ( ) const
inline

Definition at line 307 of file ControlList.h.

◆ lookup_cache()

LookupCache& Evoral::ControlList::lookup_cache ( ) const
inline

Definition at line 308 of file ControlList.h.

◆ mark_dirty()

void Evoral::ControlList::mark_dirty ( ) const

◆ maybe_add_insert_guard()

void Evoral::ControlList::maybe_add_insert_guard ( Temporal::timepos_t const &  when)
protected

◆ maybe_insert_straight_line()

bool Evoral::ControlList::maybe_insert_straight_line ( Temporal::timepos_t const &  when,
double  value 
)
protected

◆ maybe_signal_changed()

virtual void Evoral::ControlList::maybe_signal_changed ( )
protectedvirtual

Reimplemented in ARDOUR::AutomationList.

◆ modify()

void Evoral::ControlList::modify ( iterator  ,
Temporal::timepos_t const &  ,
double   
)

◆ move_ranges()

bool Evoral::ControlList::move_ranges ( std::list< Temporal::RangeMove > const &  )

◆ multipoint_eval()

double Evoral::ControlList::multipoint_eval ( Temporal::timepos_t const &  x) const
protected

Called by unlocked_eval() to handle cases of 3 or more control points.

◆ operator!=()

bool Evoral::ControlList::operator!= ( ControlList const &  ) const

◆ operator=()

ControlList& Evoral::ControlList::operator= ( const ControlList )

◆ operator==()

bool Evoral::ControlList::operator== ( const ControlList )

◆ parameter()

const Parameter& Evoral::ControlList::parameter ( ) const
inline

Definition at line 115 of file ControlList.h.

◆ paste()

bool Evoral::ControlList::paste ( const ControlList ,
Temporal::timepos_t const &   
)

◆ rbegin() [1/2]

reverse_iterator Evoral::ControlList::rbegin ( )
inline

Definition at line 240 of file ControlList.h.

◆ rbegin() [2/2]

const_reverse_iterator Evoral::ControlList::rbegin ( ) const
inline

Definition at line 241 of file ControlList.h.

◆ rend() [1/2]

reverse_iterator Evoral::ControlList::rend ( )
inline

Definition at line 242 of file ControlList.h.

◆ rend() [2/2]

const_reverse_iterator Evoral::ControlList::rend ( ) const
inline

Definition at line 243 of file ControlList.h.

◆ rt_safe_earliest_event_discrete_unlocked()

bool Evoral::ControlList::rt_safe_earliest_event_discrete_unlocked ( Temporal::timepos_t const &  start,
Temporal::timepos_t x,
double &  y,
bool  inclusive 
) const

◆ rt_safe_earliest_event_linear_unlocked()

bool Evoral::ControlList::rt_safe_earliest_event_linear_unlocked ( Temporal::timepos_t const &  start,
Temporal::timepos_t x,
double &  y,
bool  inclusive,
Temporal::timecnt_t  min_x_delta = Temporal::timecnt_t::max() 
) const

◆ rt_safe_eval()

double Evoral::ControlList::rt_safe_eval ( Temporal::timepos_t const &  where,
bool &  ok 
) const
inline

Realtime safe version of eval(). This may fail if a read-lock cannot be taken.

Parameters
whereabsolute time in samples
okboolean reference if returned value is valid
Returns
parameter value

Definition at line 274 of file ControlList.h.

◆ search_cache()

SearchCache& Evoral::ControlList::search_cache ( ) const
inline

Definition at line 309 of file ControlList.h.

◆ set_descriptor()

void Evoral::ControlList::set_descriptor ( const ParameterDescriptor d)
inline

Definition at line 119 of file ControlList.h.

◆ set_in_write_pass()

void Evoral::ControlList::set_in_write_pass ( bool  ,
bool  add_point = false,
Temporal::timepos_t  = std::numeric_limits< Temporal::timepos_t >::min() 
)

◆ set_interpolation()

bool Evoral::ControlList::set_interpolation ( InterpolationStyle  is)

Sets the interpolation style of the automation data.

This will fail when asking for Logarithmic scale and min,max crosses 0 or Exponential scale with min != 0.

Parameters
isinterpolation style
Returns
true if style change was successful

◆ set_parameter()

void Evoral::ControlList::set_parameter ( const Parameter p)
inline

Definition at line 116 of file ControlList.h.

◆ shift()

void Evoral::ControlList::shift ( Temporal::timepos_t const &  before,
Temporal::timecnt_t const &  distance 
)

◆ size()

EventList::size_type Evoral::ControlList::size ( ) const
inline

Definition at line 121 of file ControlList.h.

◆ slide()

void Evoral::ControlList::slide ( iterator  before,
Temporal::timecnt_t const &  distance 
)

◆ start_domain_bounce()

void Evoral::ControlList::start_domain_bounce ( Temporal::DomainBounceInfo )
virtual

◆ start_write_pass()

void Evoral::ControlList::start_write_pass ( Temporal::timepos_t const &  )

◆ thaw()

virtual void Evoral::ControlList::thaw ( )
virtual

Reimplemented in ARDOUR::AutomationList.

◆ thin()

void Evoral::ControlList::thin ( double  thinning_factor)

Thin the number of events in this list.

The thinning factor corresponds to the area of a triangle computed between three points in the list (time-difference * value-difference). If the area is large, it indicates significant non-linearity between the points.

Time is measured in samples, value is usually normalized to 0..1.

During automation recording we thin the recorded points using this value. If a point is sufficiently co-linear with its neighbours (as defined by the area of the triangle formed by three of them), we will not include it in the list. The larger the value, the more points are excluded, so this effectively measures the amount of thinning to be done.

Parameters
thinning_factorarea-size (default: 20)

◆ time_comparator()

static bool Evoral::ControlList::time_comparator ( const ControlEvent a,
const ControlEvent b 
)
inlinestatic

Definition at line 285 of file ControlList.h.

◆ touch_enabled()

virtual bool Evoral::ControlList::touch_enabled ( ) const
inlinevirtual

Reimplemented in ARDOUR::AutomationList.

Definition at line 357 of file ControlList.h.

◆ touching()

virtual bool Evoral::ControlList::touching ( ) const
inlinevirtual

Reimplemented in ARDOUR::AutomationList.

Definition at line 355 of file ControlList.h.

◆ truncate_end()

void Evoral::ControlList::truncate_end ( Temporal::timepos_t const &  last_coordinate)

Remove all events after the given time from this list.

Parameters
last_coordinatetime in audio samples of the last event to keep

◆ truncate_start()

void Evoral::ControlList::truncate_start ( Temporal::timecnt_t const &  overall_length)

Remove all events up to to the given time from this list.

Parameters
overall_lengthoverall length

◆ unlocked_eval()

double Evoral::ControlList::unlocked_eval ( Temporal::timepos_t const &  x) const

Called by locked entry point and various private locations where we already hold the lock.

FIXME: Should this be private? Curve needs it..

◆ unlocked_invalidate_insert_iterator()

void Evoral::ControlList::unlocked_invalidate_insert_iterator ( )
private

◆ unlocked_remove_duplicates()

void Evoral::ControlList::unlocked_remove_duplicates ( )
private

◆ when()

Temporal::timepos_t Evoral::ControlList::when ( bool  at_start) const
inline
Returns
time-stamp of first or last event in the list

Definition at line 124 of file ControlList.h.

◆ write_pass_finished()

void Evoral::ControlList::write_pass_finished ( Temporal::timepos_t const &  ,
double  thinning_factor = 0.0 
)

◆ writing()

virtual bool Evoral::ControlList::writing ( ) const
inlinevirtual

Reimplemented in ARDOUR::AutomationList.

Definition at line 356 of file ControlList.h.

◆ x_scale()

void Evoral::ControlList::x_scale ( Temporal::ratio_t const &  )

◆ y_transform()

void Evoral::ControlList::y_transform ( std::function< double(double)>  callback)

Member Data Documentation

◆ _changed_when_thawed

bool Evoral::ControlList::_changed_when_thawed
protected

Definition at line 406 of file ControlList.h.

◆ _curve

Curve* Evoral::ControlList::_curve
protected

Definition at line 409 of file ControlList.h.

◆ _desc

ParameterDescriptor Evoral::ControlList::_desc
protected

Definition at line 402 of file ControlList.h.

◆ _events

EventList Evoral::ControlList::_events
protected

Definition at line 404 of file ControlList.h.

◆ _frozen

int8_t Evoral::ControlList::_frozen
protected

Definition at line 405 of file ControlList.h.

◆ _in_write_pass

bool Evoral::ControlList::_in_write_pass
private

Definition at line 416 of file ControlList.h.

◆ _interpolation

InterpolationStyle Evoral::ControlList::_interpolation
protected

Definition at line 403 of file ControlList.h.

◆ _lock

Glib::Threads::RWLock Evoral::ControlList::_lock
mutableprotected

Definition at line 399 of file ControlList.h.

◆ _lookup_cache

LookupCache Evoral::ControlList::_lookup_cache
mutableprotected

Definition at line 396 of file ControlList.h.

◆ _parameter

Parameter Evoral::ControlList::_parameter
protected

Definition at line 401 of file ControlList.h.

◆ _search_cache

SearchCache Evoral::ControlList::_search_cache
mutableprotected

Definition at line 397 of file ControlList.h.

◆ _sort_pending

bool Evoral::ControlList::_sort_pending
protected

Definition at line 407 of file ControlList.h.

◆ did_write_during_pass

bool Evoral::ControlList::did_write_during_pass
private

Definition at line 415 of file ControlList.h.

◆ Dirty

PBD::Signal<void()> Evoral::ControlList::Dirty
mutable

Emitted when mark_dirty() is called on this object

Definition at line 367 of file ControlList.h.

◆ insert_position

Temporal::timepos_t Evoral::ControlList::insert_position
private

Definition at line 413 of file ControlList.h.

◆ InterpolationChanged

PBD::Signal<void(InterpolationStyle)> Evoral::ControlList::InterpolationChanged

Emitted when our interpolation style changes

Definition at line 369 of file ControlList.h.

◆ most_recent_insert_iterator

iterator Evoral::ControlList::most_recent_insert_iterator
private

Definition at line 412 of file ControlList.h.

◆ new_write_pass

bool Evoral::ControlList::new_write_pass
private

Definition at line 414 of file ControlList.h.

◆ WritePassStarted

PBD::Signal<void()> Evoral::ControlList::WritePassStarted

Definition at line 365 of file ControlList.h.


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