Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::Playlist Class Referenceabstract

#include <playlist.h>

Inheritance diagram for ARDOUR::Playlist:
[legend]

Classes

class  RegionReadLock
 
class  RegionWriteLock
 

Public Member Functions

 Playlist (Session &, const XMLNode &, DataType type, bool hidden=false)
 
 Playlist (Session &, std::string name, DataType type, bool hidden=false)
 
 Playlist (std::shared_ptr< const Playlist >, std::string name, bool hidden=false)
 
 Playlist (std::shared_ptr< const Playlist >, timepos_t const &start, timepos_t const &cnt, std::string name, bool hidden=false)
 
virtual ~Playlist ()
 
void update (const RegionListProperty::ChangeRecord &)
 
void clear_owned_changes ()
 
void rdiff (std::vector< PBD::Command * > &) const
 
void rdiff_and_add_command (Session *)
 
std::shared_ptr< Regionregion_by_id (const PBD::ID &) const
 
uint32_t max_source_level () const
 
bool set_name (const std::string &str)
 
void set_region_ownership ()
 
std::string pgroup_id ()
 
void set_pgroup_id (std::string pgid)
 
virtual void clear (bool with_signals=true)
 
virtual void dump () const
 
void use ()
 
void release ()
 
bool empty () const
 
bool used () const
 
int sort_id () const
 
bool frozen () const
 
const DataTypedata_type () const
 
bool hidden () const
 
bool shared () const
 
void set_frozen (bool yn)
 
void AddToSoloSelectedList (const Region *)
 
void RemoveFromSoloSelectedList (const Region *)
 
bool SoloSelectedListIncludes (const Region *)
 
bool SoloSelectedActive ()
 
void share_with (const PBD::ID &)
 
void unshare_with (const PBD::ID &)
 
bool shared_with (const PBD::ID &) const
 
void reset_shares ()
 
uint32_t n_regions () const
 
bool all_regions_empty () const
 
std::pair< timepos_t, timepos_tget_extent () const
 
std::pair< timepos_t, timepos_tget_extent_with_endspace () const
 
layer_t top_layer () const
 
void add_region (std::shared_ptr< Region >, timepos_t const &position, float times=1, bool auto_partition=false)
 
void remove_region (std::shared_ptr< Region >)
 
void get_equivalent_regions (std::shared_ptr< Region >, std::vector< std::shared_ptr< Region > > &)
 
void get_region_list_equivalent_regions (std::shared_ptr< Region >, std::vector< std::shared_ptr< Region > > &)
 
void get_source_equivalent_regions (std::shared_ptr< Region >, std::vector< std::shared_ptr< Region > > &)
 
void replace_region (std::shared_ptr< Region > old, std::shared_ptr< Region > newr, timepos_t const &pos)
 
void split_region (std::shared_ptr< Region >, timepos_t const &position)
 
void split (timepos_t const &at)
 
void shift (timepos_t const &at, timecnt_t const &distance, bool move_intersected)
 
void partition (timepos_t const &start, timepos_t const &end, bool cut=false)
 
void duplicate (std::shared_ptr< Region >, timepos_t &position, float times)
 
void duplicate (std::shared_ptr< Region >, timepos_t &position, timecnt_t const &gap, float times)
 
void duplicate_until (std::shared_ptr< Region >, timepos_t &position, timecnt_t const &gap, timepos_t const &end)
 
void duplicate_range (TimelineRange &, float times)
 
void duplicate_ranges (std::list< TimelineRange > &, float times)
 
void nudge_after (timepos_t const &start, timecnt_t const &distance, bool forwards)
 
virtual std::shared_ptr< Regioncombine (const RegionList &, std::shared_ptr< Track >)
 
virtual void uncombine (std::shared_ptr< Region >)
 
void fade_range (std::list< TimelineRange > &)
 
void remove_gaps (timecnt_t const &gap_threshold, timecnt_t const &leave_gap, std::function< void(timepos_t, timecnt_t)> gap_callback)
 
void shuffle (std::shared_ptr< Region >, int dir)
 
void ripple (timepos_t const &at, timecnt_t const &distance, RegionList *exclude)
 
void ripple (timepos_t const &at, timecnt_t const &distance, std::shared_ptr< Region > exclude)
 
void update_after_tempo_map_change ()
 
std::shared_ptr< Playlistcut (std::list< TimelineRange > &)
 
std::shared_ptr< Playlistcopy (std::list< TimelineRange > &)
 
int paste (std::shared_ptr< Playlist >, timepos_t const &position, float times)
 
const RegionListPropertyregion_list_property () const
 
std::shared_ptr< RegionListregion_list ()
 
std::shared_ptr< RegionListregions_at (timepos_t const &sample)
 
uint32_t count_regions_at (timepos_t const &) const
 
std::shared_ptr< RegionListregions_touched (timepos_t const &start, timepos_t const &end)
 
std::shared_ptr< RegionListregions_with_start_within (Temporal::TimeRange)
 
std::shared_ptr< RegionListregions_with_end_within (Temporal::TimeRange)
 
std::shared_ptr< RegionListaudible_regions_at (timepos_t const &)
 
uint32_t region_use_count (std::shared_ptr< Region >) const
 
std::shared_ptr< Regionfind_region (const PBD::ID &) const
 
std::shared_ptr< Regiontop_region_at (timepos_t const &)
 
std::shared_ptr< Regiontop_unmuted_region_at (timepos_t const &)
 
std::shared_ptr< Regionfind_next_region (timepos_t const &, RegionPoint point, int dir)
 
timepos_t find_next_region_boundary (timepos_t const &, int dir)
 
bool region_is_shuffle_constrained (std::shared_ptr< Region >)
 
bool has_region_at (timepos_t const &) const
 
bool region_is_audible_at (std::shared_ptr< Region >, timepos_t const &)
 
timepos_t find_prev_region_start (timepos_t const &sample)
 
bool uses_source (std::shared_ptr< const Source > src, bool shallow=false) const
 
void deep_sources (std::set< std::shared_ptr< Source > > &) const
 
samplepos_t find_next_transient (timepos_t const &position, int dir)
 
void foreach_region (std::function< void(std::shared_ptr< Region >)>)
 
XMLNodeget_state () const
 
virtual int set_state (const XMLNode &, int version)
 
XMLNodeget_template ()
 
void freeze ()
 
void thaw (bool from_undo=false)
 
void raise_region (std::shared_ptr< Region >)
 
void lower_region (std::shared_ptr< Region >)
 
void raise_region_to_top (std::shared_ptr< Region >)
 
void lower_region_to_bottom (std::shared_ptr< Region >)
 
void set_orig_track_id (const PBD::ID &did)
 
const PBD::IDget_orig_track_id () const
 
virtual bool destroy_region (std::shared_ptr< Region >)=0
 
void sync_all_regions_with_regions ()
 
void drop_regions ()
 
virtual std::shared_ptr< Crossfade > find_crossfade (const PBD::ID &) const
 
timepos_t find_next_top_layer_position (timepos_t const &) const
 
uint32_t combine_ops () const
 
void set_layer (std::shared_ptr< Region >, double)
 
void set_capture_insertion_in_progress (bool yn)
 
void time_domain_changed ()
 
void start_domain_bounce (Temporal::DomainBounceInfo &)
 
void finish_domain_bounce (Temporal::DomainBounceInfo &)
 
- Public Member Functions inherited from ARDOUR::SessionObject
 SessionObject (Session &session, const std::string &name)
 
Sessionsession () const
 
std::string name () const
 
- Public Member Functions inherited from ARDOUR::SessionHandleRef
 SessionHandleRef (ARDOUR::Session &s)
 
virtual ~SessionHandleRef ()
 
- Public Member Functions inherited from PBD::ScopedConnectionList
 ScopedConnectionList ()
 
 ScopedConnectionList (const ScopedConnectionList &)=delete
 
ScopedConnectionListoperator= (const ScopedConnectionList &)=delete
 
virtual ~ScopedConnectionList ()
 
void add_connection (const UnscopedConnection &c)
 
void drop_connections ()
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_change (PropertyBase const &)
 
PropertyChange apply_changes (PropertyList const &)
 
const OwnedPropertyListproperties () const
 
void add_property (PropertyBase &s)
 
void add_extra_xml (XMLNode &)
 
XMLNodeextra_xml (const std::string &str, bool add_if_missing=false)
 
void save_extra_xml (const XMLNode &)
 
const PBD::IDid () const
 
bool set_id (const XMLNode &)
 
void set_id (const std::string &)
 
void reset_id ()
 
void clear_changes ()
 
PropertyListget_changes_as_properties (PBD::Command *) const
 
bool changed () const
 
virtual PropertyListproperty_factory (const XMLNode &) const
 
virtual void suspend_property_changes ()
 
virtual void resume_property_changes ()
 
bool property_changes_suspended () const
 
- Public Member Functions inherited from PBD::Destructible
virtual ~Destructible ()
 
virtual void drop_references ()
 
- 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)
 

Static Public Member Functions

static void make_property_quarks ()
 
static std::string generate_pgroup_id ()
 
static std::string bump_name (std::string old_name, Session &)
 
- Static Public Member Functions inherited from ARDOUR::SessionObject
static void make_property_quarks ()
 

Public Attributes

PBD::Signal< void(bool)> InUse
 
PBD::Signal< void()> ContentsChanged
 
PBD::Signal< void(std::weak_ptr< Region >)> RegionAdded
 
PBD::Signal< void(std::weak_ptr< Region >)> RegionRemoved
 
PBD::Signal< void()> NameChanged
 
PBD::Signal< void()> LayeringChanged
 
PBD::Signal< void(std::list< Temporal::RangeMove > const &, bool)> RangesMoved
 
PBD::Signal< void(std::list< Temporal::Range > const &)> RegionsExtended
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal< void(const PropertyChange &)> PropertyChanged
 
- Public Attributes inherited from PBD::Destructible
PBD::Signal< void()> Destroyed
 
PBD::Signal< void()> DropReferences
 
- Public Attributes inherited from Temporal::TimeDomainProvider
PBD::Signal< void()> TimeDomainChanged
 

Protected Types

typedef std::pair< std::shared_ptr< Region >, std::shared_ptr< Region > > TwoRegions
 

Protected Member Functions

void init (bool hide)
 
bool holding_state () const
 
void delay_notifications ()
 
void release_notifications (bool from_undo=false)
 
virtual void flush_notifications (bool from_undo=false)
 
void clear_pending ()
 
void _set_sort_id ()
 
std::shared_ptr< RegionListregions_touched_locked (timepos_t const &start, timepos_t const &end, bool with_tail)
 
void notify_region_removed (std::shared_ptr< Region >)
 
void notify_region_added (std::shared_ptr< Region >)
 
void notify_layering_changed ()
 
void notify_contents_changed ()
 
void notify_state_changed (const PBD::PropertyChange &)
 
void notify_region_moved (std::shared_ptr< Region >)
 
void notify_region_start_trimmed (std::shared_ptr< Region >)
 
void notify_region_end_trimmed (std::shared_ptr< Region >)
 
void mark_session_dirty ()
 
void region_changed_proxy (const PBD::PropertyChange &, std::weak_ptr< Region >)
 
virtual bool region_changed (const PBD::PropertyChange &, std::shared_ptr< Region >)
 
void region_bounds_changed (const PBD::PropertyChange &, std::shared_ptr< Region >)
 
void region_deleted (std::shared_ptr< Region >)
 
void sort_regions ()
 
void ripple_locked (timepos_t const &at, timecnt_t const &distance, RegionList *exclude)
 
void ripple_unlocked (timepos_t const &at, timecnt_t const &distance, RegionList *exclude, ThawList &thawlist, bool notify=true)
 
virtual void region_going_away (std::weak_ptr< Region >)
 
virtual XMLNodestate (bool) const
 
bool add_region_internal (std::shared_ptr< Region >, timepos_t const &position, ThawList &thawlist)
 
int remove_region_internal (std::shared_ptr< Region >, ThawList &thawlist)
 
void copy_regions (RegionList &) const
 
void partition_internal (timepos_t start, timepos_t end, bool cutting, ThawList &thawlist)
 
std::pair< timepos_t, timepos_t_get_extent () const
 
std::shared_ptr< Playlistcut_copy (std::shared_ptr< Playlist >(Playlist::*pmf)(timepos_t const &, timecnt_t const &), std::list< TimelineRange > &ranges)
 
std::shared_ptr< Playlistcut (timepos_t const &start, timecnt_t const &cnt)
 
std::shared_ptr< Playlistcopy (timepos_t const &start, timecnt_t const &cnt)
 
void relayer ()
 
void begin_undo ()
 
void end_undo ()
 
virtual void _split_region (std::shared_ptr< Region >, timepos_t const &position, ThawList &thawlist)
 
virtual void pre_combine (std::vector< std::shared_ptr< Region > > &)
 
virtual void post_combine (std::vector< std::shared_ptr< Region > > &, std::shared_ptr< Region >)
 
virtual void pre_uncombine (std::vector< std::shared_ptr< Region > > &, std::shared_ptr< Region >)
 
- Protected Member Functions inherited from ARDOUR::SessionHandleRef
virtual void session_going_away ()
 
virtual void insanity_check ()
 
- Protected Member Functions inherited from PBD::Stateful
void add_instant_xml (XMLNode &, const std::string &directory_path)
 
XMLNodeinstant_xml (const std::string &str, const std::string &directory_path)
 
void add_properties (XMLNode &) const
 
PropertyChange set_values (XMLNode const &)
 
virtual void post_set (const PropertyChange &)
 
virtual void send_change (const PropertyChange &)
 
virtual void mid_thaw (const PropertyChange &)
 
bool regenerate_xml_or_string_ids () const
 
- Protected Member Functions inherited from Temporal::TimeDomainProvider
void listen ()
 

Protected Attributes

RegionListProperty regions
 
std::set< std::shared_ptr< Region > > all_regions
 
PBD::ScopedConnectionList region_state_changed_connections
 
PBD::ScopedConnectionList region_drop_references_connections
 
DataType _type
 
uint32_t _sort_id
 
std::atomic< int > block_notifications
 
std::set< std::shared_ptr< Region > > pending_adds
 
std::set< std::shared_ptr< Region > > pending_removes
 
RegionList pending_bounds
 
bool pending_contents_change
 
bool pending_layering
 
std::set< const Region * > _soloSelectedRegions
 
std::list< Temporal::RangeMovepending_range_moves
 
std::list< Temporal::TimeRangepending_region_extensions
 
uint32_t in_set_state
 
bool in_undo
 
bool first_set_state
 
bool _hidden
 
bool _rippling
 
bool _shuffling
 
bool _nudging
 
std::atomic< int > _refcnt
 
bool in_flush
 
bool in_partition
 
bool _frozen
 
bool _capture_insertion_underway
 
uint32_t subcnt
 
PBD::ID _orig_track_id
 
uint32_t _combine_ops
 
std::list< PBD::ID_shared_with_ids
 
- Protected Attributes inherited from ARDOUR::SessionObject
PBD::Property< std::string > _name
 
- Protected Attributes inherited from ARDOUR::SessionHandleRef
ARDOUR::Session_session
 
- Protected Attributes inherited from PBD::Stateful
XMLNode_extra_xml
 
XMLNode_instant_xml
 
PBD::PropertyChange _pending_changed
 
Glib::Threads::Mutex _lock
 
std::string _xml_node_name
 name of node to use for this object in XML More...
 
OwnedPropertyList_properties
 

Private Member Functions

void setup_layering_indices (RegionList const &)
 
void coalesce_and_check_crossfades (std::list< Temporal::TimeRange >)
 
std::shared_ptr< RegionListfind_regions_at (timepos_t const &)
 

Private Attributes

Glib::Threads::RWLock region_lock
 
std::optional< std::pair< timepos_t, timepos_t > > _cached_extent
 
timepos_t _end_space
 
bool _playlist_shift_active
 
std::string _pgroup_id
 

Friends

class Session
 
class RegionReadLock
 
class RegionWriteLock
 

Additional Inherited Members

- Static Public Attributes inherited from PBD::Stateful
static int current_state_version
 
static int loading_state_version
 

Detailed Description

Definition at line 89 of file playlist.h.

Member Typedef Documentation

◆ TwoRegions

typedef std::pair<std::shared_ptr<Region>, std::shared_ptr<Region> > ARDOUR::Playlist::TwoRegions
protected

Definition at line 452 of file playlist.h.

Constructor & Destructor Documentation

◆ Playlist() [1/4]

ARDOUR::Playlist::Playlist ( Session ,
const XMLNode ,
DataType  type,
bool  hidden = false 
)

◆ Playlist() [2/4]

ARDOUR::Playlist::Playlist ( Session ,
std::string  name,
DataType  type,
bool  hidden = false 
)

◆ Playlist() [3/4]

ARDOUR::Playlist::Playlist ( std::shared_ptr< const Playlist ,
std::string  name,
bool  hidden = false 
)

◆ Playlist() [4/4]

ARDOUR::Playlist::Playlist ( std::shared_ptr< const Playlist ,
timepos_t const &  start,
timepos_t const &  cnt,
std::string  name,
bool  hidden = false 
)

◆ ~Playlist()

virtual ARDOUR::Playlist::~Playlist ( )
virtual

Member Function Documentation

◆ _get_extent()

std::pair<timepos_t, timepos_t> ARDOUR::Playlist::_get_extent ( ) const
protected

◆ _set_sort_id()

void ARDOUR::Playlist::_set_sort_id ( )
protected

◆ _split_region()

virtual void ARDOUR::Playlist::_split_region ( std::shared_ptr< Region ,
timepos_t const &  position,
ThawList thawlist 
)
protectedvirtual

Reimplemented in ARDOUR::MidiPlaylist.

◆ add_region()

void ARDOUR::Playlist::add_region ( std::shared_ptr< Region ,
timepos_t const &  position,
float  times = 1,
bool  auto_partition = false 
)

◆ add_region_internal()

bool ARDOUR::Playlist::add_region_internal ( std::shared_ptr< Region ,
timepos_t const &  position,
ThawList thawlist 
)
protected

◆ AddToSoloSelectedList()

void ARDOUR::Playlist::AddToSoloSelectedList ( const Region )

◆ all_regions_empty()

bool ARDOUR::Playlist::all_regions_empty ( ) const

◆ audible_regions_at()

std::shared_ptr<RegionList> ARDOUR::Playlist::audible_regions_at ( timepos_t const &  )

◆ begin_undo()

void ARDOUR::Playlist::begin_undo ( )
protected

◆ bump_name()

static std::string ARDOUR::Playlist::bump_name ( std::string  old_name,
Session  
)
static

◆ clear()

virtual void ARDOUR::Playlist::clear ( bool  with_signals = true)
virtual

◆ clear_owned_changes()

void ARDOUR::Playlist::clear_owned_changes ( )
virtual

Reimplemented from PBD::Stateful.

◆ clear_pending()

void ARDOUR::Playlist::clear_pending ( )
protected

◆ coalesce_and_check_crossfades()

void ARDOUR::Playlist::coalesce_and_check_crossfades ( std::list< Temporal::TimeRange )
private

◆ combine()

virtual std::shared_ptr<Region> ARDOUR::Playlist::combine ( const RegionList ,
std::shared_ptr< Track  
)
virtual

Reimplemented in ARDOUR::MidiPlaylist.

◆ combine_ops()

uint32_t ARDOUR::Playlist::combine_ops ( ) const
inline

Definition at line 295 of file playlist.h.

◆ copy() [1/2]

std::shared_ptr<Playlist> ARDOUR::Playlist::copy ( std::list< TimelineRange > &  )

◆ copy() [2/2]

std::shared_ptr<Playlist> ARDOUR::Playlist::copy ( timepos_t const &  start,
timecnt_t const &  cnt 
)
protected

◆ copy_regions()

void ARDOUR::Playlist::copy_regions ( RegionList ) const
protected

◆ count_regions_at()

uint32_t ARDOUR::Playlist::count_regions_at ( timepos_t const &  ) const

◆ cut() [1/2]

std::shared_ptr<Playlist> ARDOUR::Playlist::cut ( std::list< TimelineRange > &  )

◆ cut() [2/2]

std::shared_ptr<Playlist> ARDOUR::Playlist::cut ( timepos_t const &  start,
timecnt_t const &  cnt 
)
protected

◆ cut_copy()

std::shared_ptr<Playlist> ARDOUR::Playlist::cut_copy ( std::shared_ptr< Playlist >(Playlist::*)(timepos_t const &, timecnt_t const &)  pmf,
std::list< TimelineRange > &  ranges 
)
protected

◆ data_type()

const DataType& ARDOUR::Playlist::data_type ( ) const
inline

Definition at line 145 of file playlist.h.

◆ deep_sources()

void ARDOUR::Playlist::deep_sources ( std::set< std::shared_ptr< Source > > &  ) const

◆ delay_notifications()

void ARDOUR::Playlist::delay_notifications ( )
protected

◆ destroy_region()

virtual bool ARDOUR::Playlist::destroy_region ( std::shared_ptr< Region )
pure virtual

◆ drop_regions()

void ARDOUR::Playlist::drop_regions ( )

◆ dump()

virtual void ARDOUR::Playlist::dump ( ) const
virtual

◆ duplicate() [1/2]

void ARDOUR::Playlist::duplicate ( std::shared_ptr< Region ,
timepos_t position,
float  times 
)

◆ duplicate() [2/2]

void ARDOUR::Playlist::duplicate ( std::shared_ptr< Region ,
timepos_t position,
timecnt_t const &  gap,
float  times 
)

◆ duplicate_range()

void ARDOUR::Playlist::duplicate_range ( TimelineRange ,
float  times 
)

◆ duplicate_ranges()

void ARDOUR::Playlist::duplicate_ranges ( std::list< TimelineRange > &  ,
float  times 
)

◆ duplicate_until()

void ARDOUR::Playlist::duplicate_until ( std::shared_ptr< Region ,
timepos_t position,
timecnt_t const &  gap,
timepos_t const &  end 
)

◆ empty()

bool ARDOUR::Playlist::empty ( ) const

◆ end_undo()

void ARDOUR::Playlist::end_undo ( )
protected

◆ fade_range()

void ARDOUR::Playlist::fade_range ( std::list< TimelineRange > &  )

◆ find_crossfade()

virtual std::shared_ptr<Crossfade> ARDOUR::Playlist::find_crossfade ( const PBD::ID ) const
inlinevirtual

Definition at line 289 of file playlist.h.

◆ find_next_region()

std::shared_ptr<Region> ARDOUR::Playlist::find_next_region ( timepos_t const &  ,
RegionPoint  point,
int  dir 
)

◆ find_next_region_boundary()

timepos_t ARDOUR::Playlist::find_next_region_boundary ( timepos_t const &  ,
int  dir 
)

◆ find_next_top_layer_position()

timepos_t ARDOUR::Playlist::find_next_top_layer_position ( timepos_t const &  ) const

◆ find_next_transient()

samplepos_t ARDOUR::Playlist::find_next_transient ( timepos_t const &  position,
int  dir 
)

◆ find_prev_region_start()

timepos_t ARDOUR::Playlist::find_prev_region_start ( timepos_t const &  sample)

◆ find_region()

std::shared_ptr<Region> ARDOUR::Playlist::find_region ( const PBD::ID ) const

◆ find_regions_at()

std::shared_ptr<RegionList> ARDOUR::Playlist::find_regions_at ( timepos_t const &  )
private

◆ finish_domain_bounce()

void ARDOUR::Playlist::finish_domain_bounce ( Temporal::DomainBounceInfo )

◆ flush_notifications()

virtual void ARDOUR::Playlist::flush_notifications ( bool  from_undo = false)
protectedvirtual

◆ foreach_region()

void ARDOUR::Playlist::foreach_region ( std::function< void(std::shared_ptr< Region >)>  )

◆ freeze()

void ARDOUR::Playlist::freeze ( )

◆ frozen()

bool ARDOUR::Playlist::frozen ( ) const
inline

Definition at line 144 of file playlist.h.

◆ generate_pgroup_id()

static std::string ARDOUR::Playlist::generate_pgroup_id ( )
static

◆ get_equivalent_regions()

void ARDOUR::Playlist::get_equivalent_regions ( std::shared_ptr< Region ,
std::vector< std::shared_ptr< Region > > &   
)

◆ get_extent()

std::pair<timepos_t, timepos_t> ARDOUR::Playlist::get_extent ( ) const

◆ get_extent_with_endspace()

std::pair<timepos_t, timepos_t> ARDOUR::Playlist::get_extent_with_endspace ( ) const

◆ get_orig_track_id()

const PBD::ID& ARDOUR::Playlist::get_orig_track_id ( ) const
inline

Definition at line 275 of file playlist.h.

◆ get_region_list_equivalent_regions()

void ARDOUR::Playlist::get_region_list_equivalent_regions ( std::shared_ptr< Region ,
std::vector< std::shared_ptr< Region > > &   
)

◆ get_source_equivalent_regions()

void ARDOUR::Playlist::get_source_equivalent_regions ( std::shared_ptr< Region ,
std::vector< std::shared_ptr< Region > > &   
)

◆ get_state()

XMLNode& ARDOUR::Playlist::get_state ( ) const
virtual

Implements PBD::Stateful.

◆ get_template()

XMLNode& ARDOUR::Playlist::get_template ( )

◆ has_region_at()

bool ARDOUR::Playlist::has_region_at ( timepos_t const &  ) const

◆ hidden()

bool ARDOUR::Playlist::hidden ( ) const
inline

Definition at line 146 of file playlist.h.

◆ holding_state()

bool ARDOUR::Playlist::holding_state ( ) const
inlineprotected

Definition at line 391 of file playlist.h.

◆ init()

void ARDOUR::Playlist::init ( bool  hide)
protected

◆ lower_region()

void ARDOUR::Playlist::lower_region ( std::shared_ptr< Region )

◆ lower_region_to_bottom()

void ARDOUR::Playlist::lower_region_to_bottom ( std::shared_ptr< Region )

◆ make_property_quarks()

static void ARDOUR::Playlist::make_property_quarks ( )
static

◆ mark_session_dirty()

void ARDOUR::Playlist::mark_session_dirty ( )
protected

◆ max_source_level()

uint32_t ARDOUR::Playlist::max_source_level ( ) const

◆ n_regions()

uint32_t ARDOUR::Playlist::n_regions ( ) const

◆ notify_contents_changed()

void ARDOUR::Playlist::notify_contents_changed ( )
protected

◆ notify_layering_changed()

void ARDOUR::Playlist::notify_layering_changed ( )
protected

◆ notify_region_added()

void ARDOUR::Playlist::notify_region_added ( std::shared_ptr< Region )
protected

◆ notify_region_end_trimmed()

void ARDOUR::Playlist::notify_region_end_trimmed ( std::shared_ptr< Region )
protected

◆ notify_region_moved()

void ARDOUR::Playlist::notify_region_moved ( std::shared_ptr< Region )
protected

◆ notify_region_removed()

void ARDOUR::Playlist::notify_region_removed ( std::shared_ptr< Region )
protected

◆ notify_region_start_trimmed()

void ARDOUR::Playlist::notify_region_start_trimmed ( std::shared_ptr< Region )
protected

◆ notify_state_changed()

void ARDOUR::Playlist::notify_state_changed ( const PBD::PropertyChange )
protected

◆ nudge_after()

void ARDOUR::Playlist::nudge_after ( timepos_t const &  start,
timecnt_t const &  distance,
bool  forwards 
)

◆ partition()

void ARDOUR::Playlist::partition ( timepos_t const &  start,
timepos_t const &  end,
bool  cut = false 
)

◆ partition_internal()

void ARDOUR::Playlist::partition_internal ( timepos_t  start,
timepos_t  end,
bool  cutting,
ThawList thawlist 
)
protected

◆ paste()

int ARDOUR::Playlist::paste ( std::shared_ptr< Playlist ,
timepos_t const &  position,
float  times 
)

◆ pgroup_id()

std::string ARDOUR::Playlist::pgroup_id ( )
inline

Definition at line 132 of file playlist.h.

◆ post_combine()

virtual void ARDOUR::Playlist::post_combine ( std::vector< std::shared_ptr< Region > > &  ,
std::shared_ptr< Region  
)
inlineprotectedvirtual

Reimplemented in ARDOUR::AudioPlaylist.

Definition at line 457 of file playlist.h.

◆ pre_combine()

virtual void ARDOUR::Playlist::pre_combine ( std::vector< std::shared_ptr< Region > > &  )
inlineprotectedvirtual

Reimplemented in ARDOUR::AudioPlaylist.

Definition at line 455 of file playlist.h.

◆ pre_uncombine()

virtual void ARDOUR::Playlist::pre_uncombine ( std::vector< std::shared_ptr< Region > > &  ,
std::shared_ptr< Region  
)
inlineprotectedvirtual

Reimplemented in ARDOUR::AudioPlaylist.

Definition at line 461 of file playlist.h.

◆ raise_region()

void ARDOUR::Playlist::raise_region ( std::shared_ptr< Region )

◆ raise_region_to_top()

void ARDOUR::Playlist::raise_region_to_top ( std::shared_ptr< Region )

◆ rdiff()

void ARDOUR::Playlist::rdiff ( std::vector< PBD::Command * > &  ) const
virtual

Reimplemented from PBD::Stateful.

◆ rdiff_and_add_command()

void ARDOUR::Playlist::rdiff_and_add_command ( Session )

◆ region_bounds_changed()

void ARDOUR::Playlist::region_bounds_changed ( const PBD::PropertyChange ,
std::shared_ptr< Region  
)
protected

◆ region_by_id()

std::shared_ptr<Region> ARDOUR::Playlist::region_by_id ( const PBD::ID ) const

◆ region_changed()

virtual bool ARDOUR::Playlist::region_changed ( const PBD::PropertyChange ,
std::shared_ptr< Region  
)
protectedvirtual

Reimplemented in ARDOUR::AudioPlaylist.

◆ region_changed_proxy()

void ARDOUR::Playlist::region_changed_proxy ( const PBD::PropertyChange ,
std::weak_ptr< Region  
)
protected

◆ region_deleted()

void ARDOUR::Playlist::region_deleted ( std::shared_ptr< Region )
protected

◆ region_going_away()

virtual void ARDOUR::Playlist::region_going_away ( std::weak_ptr< Region )
protectedvirtual

◆ region_is_audible_at()

bool ARDOUR::Playlist::region_is_audible_at ( std::shared_ptr< Region ,
timepos_t const &   
)

◆ region_is_shuffle_constrained()

bool ARDOUR::Playlist::region_is_shuffle_constrained ( std::shared_ptr< Region )

◆ region_list()

std::shared_ptr<RegionList> ARDOUR::Playlist::region_list ( )

◆ region_list_property()

const RegionListProperty& ARDOUR::Playlist::region_list_property ( ) const
inline

Definition at line 208 of file playlist.h.

◆ region_use_count()

uint32_t ARDOUR::Playlist::region_use_count ( std::shared_ptr< Region ) const

◆ regions_at()

std::shared_ptr<RegionList> ARDOUR::Playlist::regions_at ( timepos_t const &  sample)

◆ regions_touched()

std::shared_ptr<RegionList> ARDOUR::Playlist::regions_touched ( timepos_t const &  start,
timepos_t const &  end 
)
Parameters
startRange start.
endRange end.
Returns
regions which have some part within this range.

◆ regions_touched_locked()

std::shared_ptr<RegionList> ARDOUR::Playlist::regions_touched_locked ( timepos_t const &  start,
timepos_t const &  end,
bool  with_tail 
)
protected

◆ regions_with_end_within()

std::shared_ptr<RegionList> ARDOUR::Playlist::regions_with_end_within ( Temporal::TimeRange  )

◆ regions_with_start_within()

std::shared_ptr<RegionList> ARDOUR::Playlist::regions_with_start_within ( Temporal::TimeRange  )

◆ relayer()

void ARDOUR::Playlist::relayer ( )
protected

◆ release()

void ARDOUR::Playlist::release ( )

◆ release_notifications()

void ARDOUR::Playlist::release_notifications ( bool  from_undo = false)
protected

◆ remove_gaps()

void ARDOUR::Playlist::remove_gaps ( timecnt_t const &  gap_threshold,
timecnt_t const &  leave_gap,
std::function< void(timepos_t, timecnt_t)>  gap_callback 
)

◆ remove_region()

void ARDOUR::Playlist::remove_region ( std::shared_ptr< Region )

◆ remove_region_internal()

int ARDOUR::Playlist::remove_region_internal ( std::shared_ptr< Region ,
ThawList thawlist 
)
protected

◆ RemoveFromSoloSelectedList()

void ARDOUR::Playlist::RemoveFromSoloSelectedList ( const Region )

◆ replace_region()

void ARDOUR::Playlist::replace_region ( std::shared_ptr< Region old,
std::shared_ptr< Region newr,
timepos_t const &  pos 
)

◆ reset_shares()

void ARDOUR::Playlist::reset_shares ( )

◆ ripple() [1/2]

void ARDOUR::Playlist::ripple ( timepos_t const &  at,
timecnt_t const &  distance,
RegionList exclude 
)

◆ ripple() [2/2]

void ARDOUR::Playlist::ripple ( timepos_t const &  at,
timecnt_t const &  distance,
std::shared_ptr< Region exclude 
)
inline

Definition at line 194 of file playlist.h.

◆ ripple_locked()

void ARDOUR::Playlist::ripple_locked ( timepos_t const &  at,
timecnt_t const &  distance,
RegionList exclude 
)
protected

◆ ripple_unlocked()

void ARDOUR::Playlist::ripple_unlocked ( timepos_t const &  at,
timecnt_t const &  distance,
RegionList exclude,
ThawList thawlist,
bool  notify = true 
)
protected

◆ set_capture_insertion_in_progress()

void ARDOUR::Playlist::set_capture_insertion_in_progress ( bool  yn)

◆ set_frozen()

void ARDOUR::Playlist::set_frozen ( bool  yn)

◆ set_layer()

void ARDOUR::Playlist::set_layer ( std::shared_ptr< Region ,
double   
)

◆ set_name()

bool ARDOUR::Playlist::set_name ( const std::string &  str)
virtual

Reimplemented from ARDOUR::SessionObject.

◆ set_orig_track_id()

void ARDOUR::Playlist::set_orig_track_id ( const PBD::ID did)

◆ set_pgroup_id()

void ARDOUR::Playlist::set_pgroup_id ( std::string  pgid)
inline

Definition at line 133 of file playlist.h.

◆ set_region_ownership()

void ARDOUR::Playlist::set_region_ownership ( )

◆ set_state()

virtual int ARDOUR::Playlist::set_state ( const XMLNode ,
int  version 
)
virtual

Implements PBD::Stateful.

Reimplemented in ARDOUR::MidiPlaylist, and ARDOUR::AudioPlaylist.

◆ setup_layering_indices()

void ARDOUR::Playlist::setup_layering_indices ( RegionList const &  )
private

◆ share_with()

void ARDOUR::Playlist::share_with ( const PBD::ID )

◆ shared()

bool ARDOUR::Playlist::shared ( ) const
inline

Definition at line 147 of file playlist.h.

◆ shared_with()

bool ARDOUR::Playlist::shared_with ( const PBD::ID ) const

◆ shift()

void ARDOUR::Playlist::shift ( timepos_t const &  at,
timecnt_t const &  distance,
bool  move_intersected 
)

◆ shuffle()

void ARDOUR::Playlist::shuffle ( std::shared_ptr< Region ,
int  dir 
)

◆ SoloSelectedActive()

bool ARDOUR::Playlist::SoloSelectedActive ( )

◆ SoloSelectedListIncludes()

bool ARDOUR::Playlist::SoloSelectedListIncludes ( const Region )

◆ sort_id()

int ARDOUR::Playlist::sort_id ( ) const
inline

Definition at line 143 of file playlist.h.

◆ sort_regions()

void ARDOUR::Playlist::sort_regions ( )
protected

◆ split()

void ARDOUR::Playlist::split ( timepos_t const &  at)

◆ split_region()

void ARDOUR::Playlist::split_region ( std::shared_ptr< Region ,
timepos_t const &  position 
)

◆ start_domain_bounce()

void ARDOUR::Playlist::start_domain_bounce ( Temporal::DomainBounceInfo )

◆ state()

virtual XMLNode& ARDOUR::Playlist::state ( bool  ) const
protectedvirtual

◆ sync_all_regions_with_regions()

void ARDOUR::Playlist::sync_all_regions_with_regions ( )

◆ thaw()

void ARDOUR::Playlist::thaw ( bool  from_undo = false)

◆ time_domain_changed()

void ARDOUR::Playlist::time_domain_changed ( )
virtual

Reimplemented from Temporal::TimeDomainProvider.

◆ top_layer()

layer_t ARDOUR::Playlist::top_layer ( ) const

◆ top_region_at()

std::shared_ptr<Region> ARDOUR::Playlist::top_region_at ( timepos_t const &  )

◆ top_unmuted_region_at()

std::shared_ptr<Region> ARDOUR::Playlist::top_unmuted_region_at ( timepos_t const &  )

◆ uncombine()

virtual void ARDOUR::Playlist::uncombine ( std::shared_ptr< Region )
virtual

Reimplemented in ARDOUR::MidiPlaylist.

◆ unshare_with()

void ARDOUR::Playlist::unshare_with ( const PBD::ID )

◆ update()

void ARDOUR::Playlist::update ( const RegionListProperty::ChangeRecord &  )

◆ update_after_tempo_map_change()

void ARDOUR::Playlist::update_after_tempo_map_change ( )

◆ use()

void ARDOUR::Playlist::use ( )

◆ used()

bool ARDOUR::Playlist::used ( ) const
inline

Definition at line 142 of file playlist.h.

◆ uses_source()

bool ARDOUR::Playlist::uses_source ( std::shared_ptr< const Source src,
bool  shallow = false 
) const

Friends And Related Function Documentation

◆ RegionReadLock

friend class RegionReadLock
friend

Definition at line 464 of file playlist.h.

◆ RegionWriteLock

friend class RegionWriteLock
friend

Definition at line 465 of file playlist.h.

◆ Session

friend class Session
friend

Definition at line 306 of file playlist.h.

Member Data Documentation

◆ _cached_extent

std::optional<std::pair<timepos_t, timepos_t> > ARDOUR::Playlist::_cached_extent
mutableprivate

Definition at line 474 of file playlist.h.

◆ _capture_insertion_underway

bool ARDOUR::Playlist::_capture_insertion_underway
protected

Definition at line 382 of file playlist.h.

◆ _combine_ops

uint32_t ARDOUR::Playlist::_combine_ops
protected

Definition at line 385 of file playlist.h.

◆ _end_space

timepos_t ARDOUR::Playlist::_end_space
private

Definition at line 475 of file playlist.h.

◆ _frozen

bool ARDOUR::Playlist::_frozen
protected

Definition at line 381 of file playlist.h.

◆ _hidden

bool ARDOUR::Playlist::_hidden
protected

Definition at line 374 of file playlist.h.

◆ _nudging

bool ARDOUR::Playlist::_nudging
protected

Definition at line 377 of file playlist.h.

◆ _orig_track_id

PBD::ID ARDOUR::Playlist::_orig_track_id
protected

Definition at line 384 of file playlist.h.

◆ _pgroup_id

std::string ARDOUR::Playlist::_pgroup_id
private

Definition at line 478 of file playlist.h.

◆ _playlist_shift_active

bool ARDOUR::Playlist::_playlist_shift_active
private

Definition at line 476 of file playlist.h.

◆ _refcnt

std::atomic<int> ARDOUR::Playlist::_refcnt
protected

Definition at line 378 of file playlist.h.

◆ _rippling

bool ARDOUR::Playlist::_rippling
protected

Definition at line 375 of file playlist.h.

◆ _shared_with_ids

std::list<PBD::ID> ARDOUR::Playlist::_shared_with_ids
protected

Definition at line 387 of file playlist.h.

◆ _shuffling

bool ARDOUR::Playlist::_shuffling
protected

Definition at line 376 of file playlist.h.

◆ _soloSelectedRegions

std::set<const Region*> ARDOUR::Playlist::_soloSelectedRegions
protected

Definition at line 359 of file playlist.h.

◆ _sort_id

uint32_t ARDOUR::Playlist::_sort_id
protected

Definition at line 351 of file playlist.h.

◆ _type

DataType ARDOUR::Playlist::_type
protected

Definition at line 350 of file playlist.h.

◆ all_regions

std::set<std::shared_ptr<Region> > ARDOUR::Playlist::all_regions
protected

Definition at line 347 of file playlist.h.

◆ block_notifications

std::atomic<int> ARDOUR::Playlist::block_notifications
mutableprotected

Definition at line 352 of file playlist.h.

◆ ContentsChanged

PBD::Signal<void()> ARDOUR::Playlist::ContentsChanged

Definition at line 250 of file playlist.h.

◆ first_set_state

bool ARDOUR::Playlist::first_set_state
protected

Definition at line 373 of file playlist.h.

◆ in_flush

bool ARDOUR::Playlist::in_flush
protected

Definition at line 379 of file playlist.h.

◆ in_partition

bool ARDOUR::Playlist::in_partition
protected

Definition at line 380 of file playlist.h.

◆ in_set_state

uint32_t ARDOUR::Playlist::in_set_state
protected

Definition at line 371 of file playlist.h.

◆ in_undo

bool ARDOUR::Playlist::in_undo
protected

Definition at line 372 of file playlist.h.

◆ InUse

PBD::Signal<void(bool)> ARDOUR::Playlist::InUse

Definition at line 249 of file playlist.h.

◆ LayeringChanged

PBD::Signal<void()> ARDOUR::Playlist::LayeringChanged

Definition at line 254 of file playlist.h.

◆ NameChanged

PBD::Signal<void()> ARDOUR::Playlist::NameChanged

Definition at line 253 of file playlist.h.

◆ pending_adds

std::set<std::shared_ptr<Region> > ARDOUR::Playlist::pending_adds
protected

Definition at line 353 of file playlist.h.

◆ pending_bounds

RegionList ARDOUR::Playlist::pending_bounds
protected

Definition at line 355 of file playlist.h.

◆ pending_contents_change

bool ARDOUR::Playlist::pending_contents_change
protected

Definition at line 356 of file playlist.h.

◆ pending_layering

bool ARDOUR::Playlist::pending_layering
protected

Definition at line 357 of file playlist.h.

◆ pending_range_moves

std::list<Temporal::RangeMove> ARDOUR::Playlist::pending_range_moves
protected

Movements of time ranges caused by region moves; note that region trims are not included in this list; it is used to do automation-follows-regions.

Definition at line 366 of file playlist.h.

◆ pending_region_extensions

std::list<Temporal::TimeRange> ARDOUR::Playlist::pending_region_extensions
protected

Extra sections added to regions during trims

Definition at line 369 of file playlist.h.

◆ pending_removes

std::set<std::shared_ptr<Region> > ARDOUR::Playlist::pending_removes
protected

Definition at line 354 of file playlist.h.

◆ RangesMoved

PBD::Signal<void(std::list< Temporal::RangeMove> const &, bool)> ARDOUR::Playlist::RangesMoved

Emitted when regions have moved (not when regions have only been trimmed)

Definition at line 257 of file playlist.h.

◆ region_drop_references_connections

PBD::ScopedConnectionList ARDOUR::Playlist::region_drop_references_connections
protected

Definition at line 349 of file playlist.h.

◆ region_lock

Glib::Threads::RWLock ARDOUR::Playlist::region_lock
mutableprivate

Definition at line 467 of file playlist.h.

◆ region_state_changed_connections

PBD::ScopedConnectionList ARDOUR::Playlist::region_state_changed_connections
protected

Definition at line 348 of file playlist.h.

◆ RegionAdded

PBD::Signal<void(std::weak_ptr<Region> )> ARDOUR::Playlist::RegionAdded

Definition at line 251 of file playlist.h.

◆ RegionRemoved

PBD::Signal<void(std::weak_ptr<Region> )> ARDOUR::Playlist::RegionRemoved

Definition at line 252 of file playlist.h.

◆ regions

RegionListProperty ARDOUR::Playlist::regions
protected

Definition at line 346 of file playlist.h.

◆ RegionsExtended

PBD::Signal<void(std::list< Temporal::Range> const &)> ARDOUR::Playlist::RegionsExtended

Emitted when regions are extended; the ranges passed are the new extra time ranges that these regions now occupy.

Definition at line 262 of file playlist.h.

◆ subcnt

uint32_t ARDOUR::Playlist::subcnt
protected

Definition at line 383 of file playlist.h.


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