summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/playlist.h
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2012-04-16 16:32:22 +0000
committerCarl Hetherington <carl@carlh.net>2012-04-16 16:32:22 +0000
commita2897ecef6da6a458aa1de8c2d9973a1e809dca2 (patch)
tree189e34b829823fc73d11fba249f283e00336d44d /libs/ardour/ardour/playlist.h
parent02c498a8fa1c2e47988a256321bdcf5e9e869de1 (diff)
Fairly major change to the way in which crossfades are handled;
they are now done with region fades, rather than separate objects. After this commit, Ardour will try to convert your session files to the new crossfade format, but will make a backup in your session folder first. If you have works in progress using Ardour 3 it is ***STRONGLY RECOMMENDED*** that you back up session files before updating to this commit. git-svn-id: svn://localhost/ardour2/branches/3.0@11986 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/playlist.h')
-rw-r--r--libs/ardour/ardour/playlist.h19
1 files changed, 5 insertions, 14 deletions
diff --git a/libs/ardour/ardour/playlist.h b/libs/ardour/ardour/playlist.h
index d315daacaf..3648ceda8f 100644
--- a/libs/ardour/ardour/playlist.h
+++ b/libs/ardour/ardour/playlist.h
@@ -153,7 +153,8 @@ public:
boost::shared_ptr<RegionList> regions_at (framepos_t frame);
uint32_t count_regions_at (framepos_t) const;
boost::shared_ptr<RegionList> regions_touched (framepos_t start, framepos_t end);
- boost::shared_ptr<RegionList> regions_to_read (framepos_t start, framepos_t end);
+ boost::shared_ptr<RegionList> regions_with_start_within (Evoral::Range<framepos_t>);
+ boost::shared_ptr<RegionList> regions_with_end_within (Evoral::Range<framepos_t>);
uint32_t region_use_count (boost::shared_ptr<Region>) const;
boost::shared_ptr<Region> find_region (const PBD::ID&) const;
boost::shared_ptr<Region> top_region_at (framepos_t frame);
@@ -170,7 +171,7 @@ public:
void foreach_region (boost::function<void (boost::shared_ptr<Region>)>);
XMLNode& get_state ();
- int set_state (const XMLNode&, int version);
+ virtual int set_state (const XMLNode&, int version);
XMLNode& get_template ();
PBD::Signal1<void,bool> InUse;
@@ -322,10 +323,7 @@ public:
void splice_locked (framepos_t at, framecnt_t distance, boost::shared_ptr<Region> exclude);
void splice_unlocked (framepos_t at, framecnt_t distance, boost::shared_ptr<Region> exclude);
- virtual void finalize_split_region (boost::shared_ptr<Region> /*original*/, boost::shared_ptr<Region> /*left*/, boost::shared_ptr<Region> /*right*/) {}
-
- virtual void check_dependents (boost::shared_ptr<Region> /*region*/, bool /*norefresh*/) {}
- virtual void refresh_dependents (boost::shared_ptr<Region> /*region*/) {}
+ virtual void check_crossfades (Evoral::Range<framepos_t>) {}
virtual void remove_dependents (boost::shared_ptr<Region> /*region*/) {}
virtual XMLNode& state (bool);
@@ -351,14 +349,6 @@ public:
void _split_region (boost::shared_ptr<Region>, framepos_t position);
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> >&) {}
@@ -372,6 +362,7 @@ public:
private:
void setup_layering_indices (RegionList const &) const;
+ void coalesce_and_check_crossfades (std::list<Evoral::Range<framepos_t> >);
boost::shared_ptr<RegionList> find_regions_at (framepos_t);
};