Tempo ramps - improve the performance of recompute_map().
[ardour.git] / libs / ardour / ardour / session_playlists.h
index 96321f2f9c8398ab2108645f58a272976ccd96cd..e7ad1624dd9af7d71ee9d6f8d55c072434b4e7c3 100644 (file)
@@ -23,7 +23,7 @@
 #include <set>
 #include <vector>
 #include <string>
-#include <glibmm/thread.h>
+#include <glibmm/threads.h>
 #include <boost/shared_ptr.hpp>
 #include <boost/function.hpp>
 
@@ -42,8 +42,9 @@ class Region;
 class Source;
 class Session;
 class Crossfade;
+class Track;
 
-class SessionPlaylists : public PBD::ScopedConnectionList
+class LIBARDOUR_API SessionPlaylists : public PBD::ScopedConnectionList
 {
 public:
        ~SessionPlaylists ();
@@ -53,11 +54,12 @@ public:
        uint32_t source_use_count (boost::shared_ptr<const Source> src) const;
        uint32_t region_use_count (boost::shared_ptr<Region> region) const;
        template<class T> void foreach (T *obj, void (T::*func)(boost::shared_ptr<Playlist>));
-       void get (std::vector<boost::shared_ptr<Playlist> >&);
+       void get (std::vector<boost::shared_ptr<Playlist> >&) const;
        void unassigned (std::list<boost::shared_ptr<Playlist> > & list);
        void destroy_region (boost::shared_ptr<Region>);
        boost::shared_ptr<Crossfade> find_crossfade (const PBD::ID &);
        void sync_all_regions_with_regions ();
+       std::vector<boost::shared_ptr<Playlist> > playlists_for_track (boost::shared_ptr<Track>) const;
 
 private:
        friend class Session;
@@ -76,7 +78,7 @@ private:
        int load_unused (Session &, const XMLNode&);
        boost::shared_ptr<Playlist> XMLPlaylistFactory (Session &, const XMLNode&);
 
-       mutable Glib::Mutex lock;
+       mutable Glib::Threads::Mutex lock;
        typedef std::set<boost::shared_ptr<Playlist> > List;
        List playlists;
        List unused_playlists;