- /* playlist "callbacks" */
- void notify_crossfade_added (Crossfade *);
- void flush_notifications ();
-
- void refresh_dependents (Region& region);
- void check_dependents (Region& region, bool norefresh);
- void remove_dependents (Region& region);
-
- protected:
- ~AudioPlaylist (); /* public should use unref() */
-
- private:
- Crossfades _crossfades;
- Crossfades _pending_xfade_adds;
-
- void crossfade_invalidated (Crossfade*);
- XMLNode& state (bool full_state);
- void dump () const;
-
- bool region_changed (Change, Region*);
- void crossfade_changed (Change);
- void add_crossfade (Crossfade&);
+ void refresh_dependents (boost::shared_ptr<Region> region);
+ void check_dependents (boost::shared_ptr<Region> region, bool norefresh);
+ void remove_dependents (boost::shared_ptr<Region> region);
+ void copy_dependents (const std::vector<TwoRegions>&, Playlist*) const;
+
+ void pre_combine (std::vector<boost::shared_ptr<Region> >&);
+ void post_combine (std::vector<boost::shared_ptr<Region> >&, boost::shared_ptr<Region>);
+ void pre_uncombine (std::vector<boost::shared_ptr<Region> >&, boost::shared_ptr<Region>);
+
+private:
+ CrossfadeListProperty _crossfades;
+ Crossfades _pending_xfade_adds;
+
+ void crossfade_invalidated (boost::shared_ptr<Region>);
+ XMLNode& state (bool full_state);
+ void dump () const;
+
+ bool region_changed (const PBD::PropertyChange&, boost::shared_ptr<Region>);
+ void crossfade_changed (const PBD::PropertyChange&);
+ void add_crossfade (boost::shared_ptr<Crossfade>);
+
+ void source_offset_changed (boost::shared_ptr<AudioRegion> region);