X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fsession_playlists.h;h=e7ad1624dd9af7d71ee9d6f8d55c072434b4e7c3;hb=6eebb6326ab46c5250905c7c97f35a42531201b1;hp=0a20c7b9053ebb48d10a0df93a2ab42722a8033e;hpb=97a96ee250a3efcf8004d7d560f578237bfecc4c;p=ardour.git diff --git a/libs/ardour/ardour/session_playlists.h b/libs/ardour/ardour/session_playlists.h index 0a20c7b905..e7ad1624dd 100644 --- a/libs/ardour/ardour/session_playlists.h +++ b/libs/ardour/ardour/session_playlists.h @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include @@ -32,7 +32,7 @@ class XMLNode; namespace PBD { - class ID; + class ID; } namespace ARDOUR { @@ -41,30 +41,34 @@ class Playlist; class Region; class Source; class Session; -class Crossfade; - -class SessionPlaylists : public PBD::ScopedConnectionList +class Crossfade; +class Track; + +class LIBARDOUR_API SessionPlaylists : public PBD::ScopedConnectionList { public: ~SessionPlaylists (); - + boost::shared_ptr by_name (std::string name); boost::shared_ptr by_id (const PBD::ID&); uint32_t source_use_count (boost::shared_ptr src) const; - uint32_t region_use_count (boost::shared_ptr region) const; + uint32_t region_use_count (boost::shared_ptr region) const; template void foreach (T *obj, void (T::*func)(boost::shared_ptr)); - void get (std::vector >&); + void get (std::vector >&) const; void unassigned (std::list > & list); - void destroy_region (boost::shared_ptr); + void destroy_region (boost::shared_ptr); boost::shared_ptr find_crossfade (const PBD::ID &); + void sync_all_regions_with_regions (); + std::vector > playlists_for_track (boost::shared_ptr) const; private: friend class Session; - + bool add (boost::shared_ptr); void remove (boost::shared_ptr); + void remove_weak (boost::weak_ptr); void track (bool, boost::weak_ptr); - + uint32_t n_playlists() const; void find_equivalent_playlist_regions (boost::shared_ptr, std::vector >& result); void update_after_tempo_map_change (); @@ -73,8 +77,8 @@ private: int load (Session &, const XMLNode&); int load_unused (Session &, const XMLNode&); boost::shared_ptr XMLPlaylistFactory (Session &, const XMLNode&); - - mutable Glib::Mutex lock; + + mutable Glib::Threads::Mutex lock; typedef std::set > List; List playlists; List unused_playlists;