diff options
author | Carl Hetherington <carl@carlh.net> | 2012-04-16 16:32:22 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2012-04-16 16:32:22 +0000 |
commit | a2897ecef6da6a458aa1de8c2d9973a1e809dca2 (patch) | |
tree | 189e34b829823fc73d11fba249f283e00336d44d /libs/ardour/ardour/playlist.h | |
parent | 02c498a8fa1c2e47988a256321bdcf5e9e869de1 (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.h | 19 |
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); }; |