ardour
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Friends | List of all members
ARDOUR::Playlist Class Referenceabstract

#include <playlist.h>

Inheritance diagram for ARDOUR::Playlist:
ARDOUR::SessionObject boost::enable_shared_from_this< Playlist > ARDOUR::SessionHandleRef PBD::StatefulDestructible PBD::ScopedConnectionList PBD::Stateful PBD::Destructible ARDOUR::AudioPlaylist ARDOUR::MidiPlaylist

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 (boost::shared_ptr< const Playlist >, std::string name, bool hidden=false)
 
 Playlist (boost::shared_ptr< const Playlist >, framepos_t start, framecnt_t cnt, std::string name, bool hidden=false)
 
virtual ~Playlist ()
 
void update (const RegionListProperty::ChangeRecord &)
 
void clear_owned_changes ()
 
void rdiff (std::vector< Command * > &) const
 
boost::shared_ptr< Regionregion_by_id (const PBD::ID &) const
 
uint32_t max_source_level () const
 
void set_region_ownership ()
 
virtual void clear (bool with_signals=true)
 
virtual void dump () const
 
void use ()
 
void release ()
 
bool used () const
 
bool set_name (const std::string &str)
 
int sort_id ()
 
const DataTypedata_type () const
 
bool frozen () const
 
void set_frozen (bool yn)
 
bool hidden () const
 
bool empty () const
 
uint32_t n_regions () const
 
bool all_regions_empty () const
 
std::pair< framepos_t, framepos_tget_extent () const
 
std::pair< framepos_t, framepos_tget_extent_with_endspace () const
 
layer_t top_layer () const
 
EditMode get_edit_mode () const
 
void set_edit_mode (EditMode)
 
void add_region (boost::shared_ptr< Region >, framepos_t position, float times=1, bool auto_partition=false)
 
void remove_region (boost::shared_ptr< Region >)
 
void remove_region_by_source (boost::shared_ptr< Source >)
 
void get_equivalent_regions (boost::shared_ptr< Region >, std::vector< boost::shared_ptr< Region > > &)
 
void get_region_list_equivalent_regions (boost::shared_ptr< Region >, std::vector< boost::shared_ptr< Region > > &)
 
void get_source_equivalent_regions (boost::shared_ptr< Region >, std::vector< boost::shared_ptr< Region > > &)
 
void replace_region (boost::shared_ptr< Region > old, boost::shared_ptr< Region > newr, framepos_t pos)
 
void split_region (boost::shared_ptr< Region >, framepos_t position)
 
void split (framepos_t at)
 
void shift (framepos_t at, frameoffset_t distance, bool move_intersected, bool ignore_music_glue)
 
void partition (framepos_t start, framepos_t end, bool cut=false)
 
void duplicate (boost::shared_ptr< Region >, framepos_t position, float times)
 
void nudge_after (framepos_t start, framecnt_t distance, bool forwards)
 
boost::shared_ptr< Regioncombine (const RegionList &)
 
void uncombine (boost::shared_ptr< Region >)
 
void fade_range (std::list< AudioRange > &)
 
void shuffle (boost::shared_ptr< Region >, int dir)
 
void ripple (framepos_t at, framecnt_t distance, RegionList *exclude)
 
void ripple (framepos_t at, framecnt_t distance, boost::shared_ptr< Region > exclude)
 
void update_after_tempo_map_change ()
 
boost::shared_ptr< Playlistcut (std::list< AudioRange > &, bool result_is_hidden=true)
 
boost::shared_ptr< Playlistcopy (std::list< AudioRange > &, bool result_is_hidden=true)
 
int paste (boost::shared_ptr< Playlist >, framepos_t position, float times)
 
const RegionListPropertyregion_list () const
 
boost::shared_ptr< RegionListregions_at (framepos_t frame)
 
uint32_t count_regions_at (framepos_t) const
 
boost::shared_ptr< RegionListregions_touched (framepos_t start, framepos_t end)
 
boost::shared_ptr< RegionListregions_with_start_within (Evoral::Range< framepos_t >)
 
boost::shared_ptr< RegionListregions_with_end_within (Evoral::Range< framepos_t >)
 
uint32_t region_use_count (boost::shared_ptr< Region >) const
 
boost::shared_ptr< Regionfind_region (const PBD::ID &) const
 
boost::shared_ptr< Regiontop_region_at (framepos_t frame)
 
boost::shared_ptr< Regiontop_unmuted_region_at (framepos_t frame)
 
boost::shared_ptr< Regionfind_next_region (framepos_t frame, RegionPoint point, int dir)
 
framepos_t find_next_region_boundary (framepos_t frame, int dir)
 
bool region_is_shuffle_constrained (boost::shared_ptr< Region >)
 
bool has_region_at (framepos_t const) const
 
bool uses_source (boost::shared_ptr< const Source > src) const
 
framepos_t find_next_transient (framepos_t position, int dir)
 
void foreach_region (boost::function< void(boost::shared_ptr< Region >)>)
 
XMLNodeget_state ()
 
virtual int set_state (const XMLNode &, int version)
 
XMLNodeget_template ()
 
void freeze ()
 
void thaw (bool from_undo=false)
 
void raise_region (boost::shared_ptr< Region >)
 
void lower_region (boost::shared_ptr< Region >)
 
void raise_region_to_top (boost::shared_ptr< Region >)
 
void lower_region_to_bottom (boost::shared_ptr< Region >)
 
const PBD::IDget_orig_track_id () const
 
void set_orig_track_id (const PBD::ID &did)
 
virtual bool destroy_region (boost::shared_ptr< Region >)=0
 
void sync_all_regions_with_regions ()
 
void drop_regions ()
 
virtual boost::shared_ptr
< Crossfade > 
find_crossfade (const PBD::ID &) const
 
framepos_t find_next_top_layer_position (framepos_t) const
 
uint32_t combine_ops () const
 
void set_layer (boost::shared_ptr< Region >, double)
 
void set_capture_insertion_in_progress (bool yn)
 
- 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 ()
 
virtual ~ScopedConnectionList ()
 
void add_connection (const UnscopedConnection &c)
 
void drop_connections ()
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_changes (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 (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
 Destructible ()
 
virtual ~Destructible ()
 
void drop_references ()
 

Static Public Member Functions

static void make_property_quarks ()
 
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::Signal1< void, bool > InUse
 
PBD::Signal0< void > ContentsChanged
 
PBD::Signal1< void,
boost::weak_ptr< Region > > 
RegionAdded
 
PBD::Signal1< void,
boost::weak_ptr< Region > > 
RegionRemoved
 
PBD::Signal0< void > NameChanged
 
PBD::Signal0< void > LayeringChanged
 
PBD::Signal2< void, std::list
< Evoral::RangeMove
< framepos_t > > const &, bool > 
RangesMoved
 
PBD::Signal1< void, std::list
< Evoral::Range< framepos_t >
> const & > 
RegionsExtended
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal1< void, const
PropertyChange & > 
PropertyChanged
 
- Public Attributes inherited from PBD::Destructible
PBD::Signal0< void > Destroyed
 
PBD::Signal0< void > DropReferences
 

Protected Types

typedef std::pair
< boost::shared_ptr< Region >
, boost::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 ()
 
boost::shared_ptr< RegionListregions_touched_locked (framepos_t start, framepos_t end)
 
void notify_region_removed (boost::shared_ptr< Region >)
 
void notify_region_added (boost::shared_ptr< Region >)
 
void notify_layering_changed ()
 
void notify_contents_changed ()
 
void notify_state_changed (const PBD::PropertyChange &)
 
void notify_region_moved (boost::shared_ptr< Region >)
 
void notify_region_start_trimmed (boost::shared_ptr< Region >)
 
void notify_region_end_trimmed (boost::shared_ptr< Region >)
 
void mark_session_dirty ()
 
void region_changed_proxy (const PBD::PropertyChange &, boost::weak_ptr< Region >)
 
virtual bool region_changed (const PBD::PropertyChange &, boost::shared_ptr< Region >)
 
void region_bounds_changed (const PBD::PropertyChange &, boost::shared_ptr< Region >)
 
void region_deleted (boost::shared_ptr< Region >)
 
void sort_regions ()
 
void possibly_splice (framepos_t at, framecnt_t distance, boost::shared_ptr< Region > exclude=boost::shared_ptr< Region >())
 
void possibly_splice_unlocked (framepos_t at, framecnt_t distance, boost::shared_ptr< Region > exclude=boost::shared_ptr< Region >())
 
void core_splice (framepos_t at, framecnt_t distance, boost::shared_ptr< Region > exclude)
 
void splice_locked (framepos_t at, framecnt_t distance, boost::shared_ptr< Region > exclude)
 
void splice_unlocked (framepos_t at, framecnt_t distance, boost::shared_ptr< Region > exclude)
 
void core_ripple (framepos_t at, framecnt_t distance, RegionList *exclude)
 
void ripple_locked (framepos_t at, framecnt_t distance, RegionList *exclude)
 
void ripple_unlocked (framepos_t at, framecnt_t distance, RegionList *exclude)
 
virtual void remove_dependents (boost::shared_ptr< Region >)
 
virtual XMLNodestate (bool)
 
bool add_region_internal (boost::shared_ptr< Region >, framepos_t position)
 
int remove_region_internal (boost::shared_ptr< Region >)
 
void copy_regions (RegionList &) const
 
void partition_internal (framepos_t start, framepos_t end, bool cutting, RegionList &thawlist)
 
std::pair< framepos_t, framepos_t_get_extent () const
 
boost::shared_ptr< Playlistcut_copy (boost::shared_ptr< Playlist >(Playlist::*pmf)(framepos_t, framecnt_t, bool), std::list< AudioRange > &ranges, bool result_is_hidden)
 
boost::shared_ptr< Playlistcut (framepos_t start, framecnt_t cnt, bool result_is_hidden)
 
boost::shared_ptr< Playlistcopy (framepos_t start, framecnt_t cnt, bool result_is_hidden)
 
void relayer ()
 
void begin_undo ()
 
void end_undo ()
 
void _split_region (boost::shared_ptr< Region >, framepos_t position)
 
virtual void pre_combine (std::vector< boost::shared_ptr< Region > > &)
 
virtual void post_combine (std::vector< boost::shared_ptr< Region > > &, boost::shared_ptr< Region >)
 
virtual void pre_uncombine (std::vector< boost::shared_ptr< Region > > &, boost::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 &)
 
PropertyChange set_values (XMLNode const &)
 
virtual void post_set (const PropertyChange &)
 
virtual void send_change (const PropertyChange &)
 
virtual void mid_thaw (const PropertyChange &)
 

Protected Attributes

RegionListProperty regions
 
std::set< boost::shared_ptr
< Region > > 
all_regions
 
PBD::ScopedConnectionList region_state_changed_connections
 
DataType _type
 
int _sort_id
 
gint block_notifications
 
gint ignore_state_changes
 
std::set< boost::shared_ptr
< Region > > 
pending_adds
 
std::set< boost::shared_ptr
< Region > > 
pending_removes
 
RegionList pending_bounds
 
bool pending_contents_change
 
bool pending_layering
 
std::list< Evoral::RangeMove
< framepos_t > > 
pending_range_moves
 
std::list< Evoral::Range
< framepos_t > > 
pending_region_extensions
 
uint32_t in_set_state
 
bool in_undo
 
bool first_set_state
 
bool _hidden
 
bool _splicing
 
bool _rippling
 
bool _shuffling
 
bool _nudging
 
uint32_t _refcnt
 
EditMode _edit_mode
 
bool in_flush
 
bool in_partition
 
bool _frozen
 
bool _capture_insertion_underway
 
uint32_t subcnt
 
PBD::ID _orig_track_id
 
uint32_t _combine_ops
 
- 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< Evoral::Range< framepos_t > >)
 
boost::shared_ptr< RegionListfind_regions_at (framepos_t)
 

Private Attributes

Glib::Threads::RWLock region_lock
 
framepos_t _end_space
 

Friends

class Session
 
class RegionReadLock
 
class RegionWriteLock
 

Additional Inherited Members

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

Detailed Description

Definition at line 81 of file playlist.h.

Member Typedef Documentation

Definition at line 380 of file playlist.h.

Constructor & Destructor Documentation

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

Definition at line 138 of file playlist.cc.

ARDOUR::Playlist::Playlist ( Session ,
std::string  name,
DataType  type,
bool  hidden = false 
)
ARDOUR::Playlist::Playlist ( boost::shared_ptr< const Playlist ,
std::string  name,
bool  hidden = false 
)
ARDOUR::Playlist::Playlist ( boost::shared_ptr< const Playlist ,
framepos_t  start,
framecnt_t  cnt,
std::string  name,
bool  hidden = false 
)
Playlist::~Playlist ( )
virtual

Definition at line 330 of file playlist.cc.

Member Function Documentation

pair< framepos_t, framepos_t > Playlist::_get_extent ( ) const
protected

Definition at line 2269 of file playlist.cc.

void Playlist::_set_sort_id ( )
protected

Definition at line 346 of file playlist.cc.

void Playlist::_split_region ( boost::shared_ptr< Region region,
framepos_t  position 
)
protected

Definition at line 1341 of file playlist.cc.

void Playlist::add_region ( boost::shared_ptr< Region region,
framepos_t  position,
float  times = 1,
bool  auto_partition = false 
)

Note: this calls set_layer (..., DBL_MAX) so it will reset the layering index of region

Definition at line 668 of file playlist.cc.

bool Playlist::add_region_internal ( boost::shared_ptr< Region region,
framepos_t  position 
)
protected

Definition at line 737 of file playlist.cc.

bool Playlist::all_regions_empty ( ) const
Returns
true if the all_regions list is empty, ie this playlist has never had a region added to it.

Definition at line 2247 of file playlist.cc.

void Playlist::begin_undo ( )
protected

Definition at line 400 of file playlist.cc.

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

Definition at line 2292 of file playlist.cc.

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

Definition at line 1669 of file playlist.cc.

void Playlist::clear_owned_changes ( )
virtual

Reimplemented from PBD::Stateful.

Definition at line 2054 of file playlist.cc.

void Playlist::clear_pending ( )
protected

Definition at line 652 of file playlist.cc.

void Playlist::coalesce_and_check_crossfades ( std::list< Evoral::Range< framepos_t > >  ranges)
private

Take a list of ranges, coalesce any that can be coalesced, then call check_crossfades for each one.

Definition at line 3224 of file playlist.cc.

boost::shared_ptr< Region > Playlist::combine ( const RegionList r)

Definition at line 2898 of file playlist.cc.

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

Definition at line 234 of file playlist.h.

boost::shared_ptr< Playlist > Playlist::copy ( std::list< AudioRange > &  ranges,
bool  result_is_hidden = true 
)

Definition at line 1164 of file playlist.cc.

boost::shared_ptr< Playlist > Playlist::copy ( framepos_t  start,
framecnt_t  cnt,
bool  result_is_hidden 
)
protected

Definition at line 1196 of file playlist.cc.

void Playlist::copy_regions ( RegionList newlist) const
protected

Definition at line 287 of file playlist.cc.

void Playlist::core_ripple ( framepos_t  at,
framecnt_t  distance,
RegionList exclude 
)
protected

Definition at line 1494 of file playlist.cc.

void Playlist::core_splice ( framepos_t  at,
framecnt_t  distance,
boost::shared_ptr< Region exclude 
)
protected

Definition at line 1451 of file playlist.cc.

uint32_t Playlist::count_regions_at ( framepos_t  frame) const

Definition at line 1712 of file playlist.cc.

boost::shared_ptr< Playlist > Playlist::cut ( std::list< AudioRange > &  ranges,
bool  result_is_hidden = true 
)

Definition at line 1157 of file playlist.cc.

boost::shared_ptr< Playlist > Playlist::cut ( framepos_t  start,
framecnt_t  cnt,
bool  result_is_hidden 
)
protected

Definition at line 1171 of file playlist.cc.

boost::shared_ptr< Playlist > Playlist::cut_copy ( boost::shared_ptr< Playlist >(Playlist::*)(framepos_t, framecnt_t, bool)  pmf,
std::list< AudioRange > &  ranges,
bool  result_is_hidden 
)
protected

Definition at line 1124 of file playlist.cc.

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

Definition at line 113 of file playlist.h.

void Playlist::delay_notifications ( )
protected

Definition at line 430 of file playlist.cc.

virtual bool ARDOUR::Playlist::destroy_region ( boost::shared_ptr< Region )
pure virtual
void Playlist::drop_regions ( )

Definition at line 1649 of file playlist.cc.

void Playlist::dump ( ) const
virtual

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

Definition at line 2659 of file playlist.cc.

void Playlist::duplicate ( boost::shared_ptr< Region region,
framepos_t  position,
float  times 
)

Definition at line 1246 of file playlist.cc.

bool Playlist::empty ( ) const

Definition at line 2230 of file playlist.cc.

void Playlist::end_undo ( )
protected

Definition at line 407 of file playlist.cc.

void Playlist::fade_range ( std::list< AudioRange > &  ranges)

Definition at line 3192 of file playlist.cc.

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

Definition at line 229 of file playlist.h.

boost::shared_ptr< Region > Playlist::find_next_region ( framepos_t  frame,
RegionPoint  point,
int  dir 
)

Definition at line 1905 of file playlist.cc.

framepos_t Playlist::find_next_region_boundary ( framepos_t  frame,
int  dir 
)

Definition at line 1965 of file playlist.cc.

framepos_t Playlist::find_next_top_layer_position ( framepos_t  t) const

Look from a session frame time and find the start time of the next region which is on the top layer of this playlist.

Parameters
tTime to look from.
Returns
Position of next top-layered region, or max_framepos if there isn't one.

Definition at line 2879 of file playlist.cc.

framepos_t Playlist::find_next_transient ( framepos_t  position,
int  dir 
)

Definition at line 1845 of file playlist.cc.

boost::shared_ptr< Region > Playlist::find_region ( const PBD::ID id) const

Definition at line 2592 of file playlist.cc.

boost::shared_ptr< RegionList > Playlist::find_regions_at ( framepos_t  frame)
private

Definition at line 1774 of file playlist.cc.

void Playlist::flush_notifications ( bool  from_undo = false)
protectedvirtual
Parameters
from_undotrue if this flush is triggered by the end of an undo on this playlist

Definition at line 566 of file playlist.cc.

void Playlist::foreach_region ( boost::function< void(boost::shared_ptr< Region >)>  s)

Definition at line 2833 of file playlist.cc.

void Playlist::freeze ( )

Definition at line 414 of file playlist.cc.

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

Definition at line 115 of file playlist.h.

EditMode ARDOUR::Playlist::get_edit_mode ( ) const
inline

Definition at line 126 of file playlist.h.

void Playlist::get_equivalent_regions ( boost::shared_ptr< Region other,
std::vector< boost::shared_ptr< Region > > &  results 
)

Definition at line 831 of file playlist.cc.

pair< framepos_t, framepos_t > Playlist::get_extent ( ) const

Definition at line 2254 of file playlist.cc.

pair< framepos_t, framepos_t > Playlist::get_extent_with_endspace ( ) const

Definition at line 2261 of file playlist.cc.

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

Definition at line 214 of file playlist.h.

void Playlist::get_region_list_equivalent_regions ( boost::shared_ptr< Region other,
std::vector< boost::shared_ptr< Region > > &  results 
)

Definition at line 849 of file playlist.cc.

void Playlist::get_source_equivalent_regions ( boost::shared_ptr< Region other,
std::vector< boost::shared_ptr< Region > > &  results 
)

Definition at line 860 of file playlist.cc.

XMLNode & Playlist::get_state ( void  )
virtual

Implements PBD::Stateful.

Definition at line 2184 of file playlist.cc.

XMLNode & Playlist::get_template ( )

Definition at line 2190 of file playlist.cc.

bool Playlist::has_region_at ( framepos_t const  p) const

Definition at line 2842 of file playlist.cc.

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

Definition at line 118 of file playlist.h.

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

Definition at line 311 of file playlist.h.

void Playlist::init ( bool  hide)
protected

Definition at line 297 of file playlist.cc.

void Playlist::lower_region ( boost::shared_ptr< Region region)

Definition at line 2510 of file playlist.cc.

void Playlist::lower_region_to_bottom ( boost::shared_ptr< Region region)

Definition at line 2524 of file playlist.cc.

void Playlist::make_property_quarks ( )
static

Definition at line 67 of file playlist.cc.

void Playlist::mark_session_dirty ( )
protected

Definition at line 2039 of file playlist.cc.

uint32_t Playlist::max_source_level ( ) const

Definition at line 3202 of file playlist.cc.

uint32_t Playlist::n_regions ( ) const

Definition at line 2237 of file playlist.cc.

void Playlist::notify_contents_changed ( )
protected

Definition at line 445 of file playlist.cc.

void Playlist::notify_layering_changed ( )
protected

Definition at line 456 of file playlist.cc.

void Playlist::notify_region_added ( boost::shared_ptr< Region r)
protected

Definition at line 546 of file playlist.cc.

void Playlist::notify_region_end_trimmed ( boost::shared_ptr< Region r)
protected

Definition at line 524 of file playlist.cc.

void Playlist::notify_region_moved ( boost::shared_ptr< Region r)
protected

Definition at line 483 of file playlist.cc.

void Playlist::notify_region_removed ( boost::shared_ptr< Region r)
protected

Definition at line 467 of file playlist.cc.

void Playlist::notify_region_start_trimmed ( boost::shared_ptr< Region r)
protected

Definition at line 501 of file playlist.cc.

void ARDOUR::Playlist::notify_state_changed ( const PBD::PropertyChange )
protected
void Playlist::nudge_after ( framepos_t  start,
framecnt_t  distance,
bool  forwards 
)

Definition at line 2531 of file playlist.cc.

void Playlist::partition ( framepos_t  start,
framepos_t  end,
bool  cut = false 
)

Definition at line 871 of file playlist.cc.

void Playlist::partition_internal ( framepos_t  start,
framepos_t  end,
bool  cutting,
RegionList thawlist 
)
protected

Go through each region on the playlist and cut them at start and end, removing the section between start and end if cutting == true. Regions that lie entirely within start and end are always removed.

Definition at line 888 of file playlist.cc.

int Playlist::paste ( boost::shared_ptr< Playlist other,
framepos_t  position,
float  times 
)

Definition at line 1211 of file playlist.cc.

void Playlist::possibly_splice ( framepos_t  at,
framecnt_t  distance,
boost::shared_ptr< Region exclude = boost::shared_ptr<Region>() 
)
protected

Definition at line 1410 of file playlist.cc.

void Playlist::possibly_splice_unlocked ( framepos_t  at,
framecnt_t  distance,
boost::shared_ptr< Region exclude = boost::shared_ptr<Region>() 
)
protected

Definition at line 1423 of file playlist.cc.

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

Reimplemented in ARDOUR::AudioPlaylist.

Definition at line 385 of file playlist.h.

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

Reimplemented in ARDOUR::AudioPlaylist.

Definition at line 383 of file playlist.h.

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

Reimplemented in ARDOUR::AudioPlaylist.

Definition at line 389 of file playlist.h.

void Playlist::raise_region ( boost::shared_ptr< Region region)

Definition at line 2503 of file playlist.cc.

void Playlist::raise_region_to_top ( boost::shared_ptr< Region region)

Definition at line 2517 of file playlist.cc.

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

Reimplemented from PBD::Stateful.

Definition at line 2047 of file playlist.cc.

void Playlist::region_bounds_changed ( const PBD::PropertyChange what_changed,
boost::shared_ptr< Region region 
)
protected

Definition at line 1530 of file playlist.cc.

boost::shared_ptr< Region > Playlist::region_by_id ( const PBD::ID id) const

Definition at line 2646 of file playlist.cc.

bool Playlist::region_changed ( const PBD::PropertyChange what_changed,
boost::shared_ptr< Region region 
)
protectedvirtual

Reimplemented in ARDOUR::AudioPlaylist.

Definition at line 1602 of file playlist.cc.

void Playlist::region_changed_proxy ( const PBD::PropertyChange what_changed,
boost::weak_ptr< Region weak_region 
)
protected

Definition at line 1588 of file playlist.cc.

void ARDOUR::Playlist::region_deleted ( boost::shared_ptr< Region )
protected
bool Playlist::region_is_shuffle_constrained ( boost::shared_ptr< Region )

Definition at line 2800 of file playlist.cc.

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

Definition at line 163 of file playlist.h.

uint32_t Playlist::region_use_count ( boost::shared_ptr< Region r) const

Definition at line 2608 of file playlist.cc.

boost::shared_ptr< RegionList > Playlist::regions_at ( framepos_t  frame)

Definition at line 1705 of file playlist.cc.

boost::shared_ptr< RegionList > Playlist::regions_touched ( framepos_t  start,
framepos_t  end 
)
Parameters
startRange start.
endRange end.
Returns
regions which have some part within this range.

Definition at line 1824 of file playlist.cc.

boost::shared_ptr< RegionList > Playlist::regions_touched_locked ( framepos_t  start,
framepos_t  end 
)
protected

Definition at line 1831 of file playlist.cc.

boost::shared_ptr< RegionList > Playlist::regions_with_end_within ( Evoral::Range< framepos_t range)

Definition at line 1805 of file playlist.cc.

boost::shared_ptr< RegionList > Playlist::regions_with_start_within ( Evoral::Range< framepos_t range)

Definition at line 1790 of file playlist.cc.

void Playlist::relayer ( )
protected

Take the layering indices of each of our regions, compute the layers that they should be on, and write the layers back to the regions.

Definition at line 2378 of file playlist.cc.

void Playlist::release ( )

Definition at line 275 of file playlist.cc.

void Playlist::release_notifications ( bool  from_undo = false)
protected
Parameters
from_undotrue if this release is triggered by the end of an undo on this playlist

Definition at line 437 of file playlist.cc.

virtual void ARDOUR::Playlist::remove_dependents ( boost::shared_ptr< Region )
inlineprotectedvirtual

Reimplemented in ARDOUR::MidiPlaylist.

Definition at line 356 of file playlist.h.

void Playlist::remove_region ( boost::shared_ptr< Region region)

Definition at line 789 of file playlist.cc.

void Playlist::remove_region_by_source ( boost::shared_ptr< Source s)

Remove any region that uses a given source

Definition at line 2856 of file playlist.cc.

int Playlist::remove_region_internal ( boost::shared_ptr< Region region)
protected

Definition at line 796 of file playlist.cc.

void Playlist::replace_region ( boost::shared_ptr< Region old,
boost::shared_ptr< Region newr,
framepos_t  pos 
)

Definition at line 772 of file playlist.cc.

void Playlist::ripple ( framepos_t  at,
framecnt_t  distance,
RegionList exclude 
)

Definition at line 2812 of file playlist.cc.

void ARDOUR::Playlist::ripple ( framepos_t  at,
framecnt_t  distance,
boost::shared_ptr< Region exclude 
)
inline

Definition at line 150 of file playlist.h.

void Playlist::ripple_locked ( framepos_t  at,
framecnt_t  distance,
RegionList exclude 
)
protected

Definition at line 1479 of file playlist.cc.

void Playlist::ripple_unlocked ( framepos_t  at,
framecnt_t  distance,
RegionList exclude 
)
protected

Definition at line 1488 of file playlist.cc.

void Playlist::set_capture_insertion_in_progress ( bool  yn)

Definition at line 3252 of file playlist.cc.

void Playlist::set_edit_mode ( EditMode  mode)

Definition at line 2317 of file playlist.cc.

void Playlist::set_frozen ( bool  yn)

Definition at line 2680 of file playlist.cc.

void Playlist::set_layer ( boost::shared_ptr< Region region,
double  new_layer 
)

Set a new layer for a region. This adjusts the layering indices of all regions in the playlist to put the specified region in the appropriate place. The actual layering will be fixed up when relayer() happens.

Definition at line 2334 of file playlist.cc.

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

Reimplemented from ARDOUR::SessionObject.

Definition at line 372 of file playlist.cc.

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

Definition at line 3215 of file playlist.cc.

void Playlist::set_region_ownership ( )

Definition at line 725 of file playlist.cc.

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

Implements PBD::Stateful.

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

Definition at line 2080 of file playlist.cc.

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

Definition at line 2359 of file playlist.cc.

void Playlist::shift ( framepos_t  at,
frameoffset_t  distance,
bool  move_intersected,
bool  ignore_music_glue 
)

Definition at line 1281 of file playlist.cc.

void Playlist::shuffle ( boost::shared_ptr< Region region,
int  dir 
)

Definition at line 2686 of file playlist.cc.

int ARDOUR::Playlist::sort_id ( )
inline

Definition at line 111 of file playlist.h.

void ARDOUR::Playlist::sort_regions ( )
protected
void Playlist::splice_locked ( framepos_t  at,
framecnt_t  distance,
boost::shared_ptr< Region exclude 
)
protected

Definition at line 1436 of file playlist.cc.

void Playlist::splice_unlocked ( framepos_t  at,
framecnt_t  distance,
boost::shared_ptr< Region exclude 
)
protected

Definition at line 1445 of file playlist.cc.

void Playlist::split ( framepos_t  at)

Definition at line 1320 of file playlist.cc.

void Playlist::split_region ( boost::shared_ptr< Region region,
framepos_t  position 
)

Definition at line 1334 of file playlist.cc.

XMLNode & Playlist::state ( bool  full_state)
protectedvirtual
Parameters
full_statetrue to include regions in the returned state, otherwise false.

Definition at line 2198 of file playlist.cc.

void Playlist::sync_all_regions_with_regions ( )

Definition at line 1657 of file playlist.cc.

void Playlist::thaw ( bool  from_undo = false)
Parameters
from_undotrue if this thaw is triggered by the end of an undo on this playlist

Definition at line 422 of file playlist.cc.

layer_t Playlist::top_layer ( ) const

Definition at line 2305 of file playlist.cc.

boost::shared_ptr< Region > Playlist::top_region_at ( framepos_t  frame)

Definition at line 1727 of file playlist.cc.

boost::shared_ptr< Region > Playlist::top_unmuted_region_at ( framepos_t  frame)

Definition at line 1744 of file playlist.cc.

void Playlist::uncombine ( boost::shared_ptr< Region target)

Definition at line 3028 of file playlist.cc.

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

Definition at line 2061 of file playlist.cc.

void Playlist::update_after_tempo_map_change ( )

Definition at line 2818 of file playlist.cc.

void Playlist::use ( )

Definition at line 268 of file playlist.cc.

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

Definition at line 108 of file playlist.h.

bool Playlist::uses_source ( boost::shared_ptr< const Source src) const

Definition at line 2578 of file playlist.cc.

Friends And Related Function Documentation

friend class RegionReadLock
friend

Definition at line 392 of file playlist.h.

friend class RegionWriteLock
friend

Definition at line 393 of file playlist.h.

friend class Session
friend

Definition at line 241 of file playlist.h.

Member Data Documentation

bool ARDOUR::Playlist::_capture_insertion_underway
protected

Definition at line 304 of file playlist.h.

uint32_t ARDOUR::Playlist::_combine_ops
protected

Definition at line 307 of file playlist.h.

EditMode ARDOUR::Playlist::_edit_mode
protected

Definition at line 300 of file playlist.h.

framepos_t ARDOUR::Playlist::_end_space
private

Definition at line 401 of file playlist.h.

bool ARDOUR::Playlist::_frozen
protected

Definition at line 303 of file playlist.h.

bool ARDOUR::Playlist::_hidden
protected

Definition at line 294 of file playlist.h.

bool ARDOUR::Playlist::_nudging
protected

Definition at line 298 of file playlist.h.

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

Definition at line 306 of file playlist.h.

uint32_t ARDOUR::Playlist::_refcnt
protected

Definition at line 299 of file playlist.h.

bool ARDOUR::Playlist::_rippling
protected

Definition at line 296 of file playlist.h.

bool ARDOUR::Playlist::_shuffling
protected

Definition at line 297 of file playlist.h.

int ARDOUR::Playlist::_sort_id
protected

Definition at line 275 of file playlist.h.

bool ARDOUR::Playlist::_splicing
protected

Definition at line 295 of file playlist.h.

DataType ARDOUR::Playlist::_type
protected

Definition at line 274 of file playlist.h.

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

Definition at line 272 of file playlist.h.

gint ARDOUR::Playlist::block_notifications
mutableprotected

Definition at line 276 of file playlist.h.

PBD::Signal0<void> ARDOUR::Playlist::ContentsChanged

Definition at line 190 of file playlist.h.

bool ARDOUR::Playlist::first_set_state
protected

Definition at line 293 of file playlist.h.

gint ARDOUR::Playlist::ignore_state_changes
mutableprotected

Definition at line 277 of file playlist.h.

bool ARDOUR::Playlist::in_flush
protected

Definition at line 301 of file playlist.h.

bool ARDOUR::Playlist::in_partition
protected

Definition at line 302 of file playlist.h.

uint32_t ARDOUR::Playlist::in_set_state
protected

Definition at line 291 of file playlist.h.

bool ARDOUR::Playlist::in_undo
protected

Definition at line 292 of file playlist.h.

PBD::Signal1<void,bool> ARDOUR::Playlist::InUse

Definition at line 189 of file playlist.h.

PBD::Signal0<void> ARDOUR::Playlist::LayeringChanged

Definition at line 194 of file playlist.h.

PBD::Signal0<void> ARDOUR::Playlist::NameChanged

Definition at line 193 of file playlist.h.

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

Definition at line 278 of file playlist.h.

RegionList ARDOUR::Playlist::pending_bounds
protected

Definition at line 280 of file playlist.h.

bool ARDOUR::Playlist::pending_contents_change
protected

Definition at line 281 of file playlist.h.

bool ARDOUR::Playlist::pending_layering
protected

Definition at line 282 of file playlist.h.

std::list< Evoral::RangeMove<framepos_t> > 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 288 of file playlist.h.

std::list< Evoral::Range<framepos_t> > ARDOUR::Playlist::pending_region_extensions
protected

Extra sections added to regions during trims

Definition at line 290 of file playlist.h.

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

Definition at line 279 of file playlist.h.

PBD::Signal2<void,std::list< Evoral::RangeMove<framepos_t> > const &, bool> ARDOUR::Playlist::RangesMoved

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

Definition at line 197 of file playlist.h.

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

Definition at line 394 of file playlist.h.

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

Definition at line 273 of file playlist.h.

PBD::Signal1<void,boost::weak_ptr<Region> > ARDOUR::Playlist::RegionAdded

Definition at line 191 of file playlist.h.

PBD::Signal1<void,boost::weak_ptr<Region> > ARDOUR::Playlist::RegionRemoved

Definition at line 192 of file playlist.h.

RegionListProperty ARDOUR::Playlist::regions
protected

Definition at line 271 of file playlist.h.

PBD::Signal1<void,std::list< Evoral::Range<framepos_t> > 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 202 of file playlist.h.

uint32_t ARDOUR::Playlist::subcnt
protected

Definition at line 305 of file playlist.h.


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