+
+ typedef std::pair<boost::shared_ptr<Region>, boost::shared_ptr<Region> > TwoRegions;
+ virtual void copy_dependents (const std::vector<TwoRegions>&, Playlist*) const { }
+
+ struct RegionInfo {
+ boost::shared_ptr<Region> region;
+ framepos_t position;
+ framecnt_t length;
+ framepos_t start;
+ };
+
+ /* this is called before we create a new compound region */
+ virtual void pre_combine (std::vector<boost::shared_ptr<Region> >&) {}
+ /* this is called before we create a new compound region */
+ virtual void post_combine (std::vector<boost::shared_ptr<Region> >&, boost::shared_ptr<Region>) {}
+ /* this is called before we remove a compound region and replace it
+ with its constituent regions
+ */
+ virtual void pre_uncombine (std::vector<boost::shared_ptr<Region> >&, boost::shared_ptr<Region>) {}