Tidy.
[ardour.git] / libs / ardour / ardour / playlist.h
index ad7210f48fc7f45fea511fa69d93e0da9557fff9..d2920fb6105e9c5059ec15171be69c2665944655 100644 (file)
@@ -35,7 +35,9 @@
 
 #include <pbd/undo.h>
 #include <pbd/stateful.h> 
-#include <pbd/statefuldestructible.h> 
+#include <pbd/statefuldestructible.h>
+
+#include <evoral/types.hpp>
 
 #include <ardour/ardour.h>
 #include <ardour/session_object.h>
@@ -126,6 +128,7 @@ class Playlist : public SessionObject, public boost::enable_shared_from_this<Pla
        sigc::signal<void>      Modified;
        sigc::signal<void>      NameChanged;
        sigc::signal<void>      LengthChanged;
+       sigc::signal<void, list< Evoral::RangeMove<nframes_t> > const &> RangesMoved;
 
        static string bump_name (string old_name, Session&);
 
@@ -177,6 +180,7 @@ class Playlist : public SessionObject, public boost::enable_shared_from_this<Pla
 
        RegionList       regions;  /* the current list of regions in the playlist */
        std::set<boost::shared_ptr<Region> > all_regions; /* all regions ever added to this playlist */
+       std::list<sigc::connection> region_state_changed_connections;
        DataType        _type;
        mutable gint    block_notifications;
        mutable gint    ignore_state_changes;
@@ -186,6 +190,7 @@ class Playlist : public SessionObject, public boost::enable_shared_from_this<Pla
        RegionList       pending_bounds;
        bool             pending_modified;
        bool             pending_length;
+       list< Evoral::RangeMove<nframes_t> > pending_range_moves;
        bool             save_on_thaw;
        string           last_save_reason;
        uint32_t         in_set_state;
@@ -227,6 +232,7 @@ class Playlist : public SessionObject, public boost::enable_shared_from_this<Pla
        void notify_layering_changed ();
        void notify_modified ();
        void notify_state_changed (Change);
+       void notify_region_moved (boost::shared_ptr<Region>);
 
        void mark_session_dirty();
 
@@ -255,7 +261,7 @@ class Playlist : public SessionObject, public boost::enable_shared_from_this<Pla
 
        boost::shared_ptr<Region> region_by_id (PBD::ID);
 
-       void add_region_internal (boost::shared_ptr<Region>, nframes_t position);
+       bool add_region_internal (boost::shared_ptr<Region>, nframes_t position);
        
        int remove_region_internal (boost::shared_ptr<Region>);
        RegionList *find_regions_at (nframes_t frame);