- void replace_region (boost::shared_ptr<Region> old, boost::shared_ptr<Region> newr, nframes_t pos);
- void split_region (boost::shared_ptr<Region>, nframes_t position);
- void partition (nframes_t start, nframes_t end, bool just_top_level);
- void duplicate (boost::shared_ptr<Region>, nframes_t position, float times);
- void nudge_after (nframes_t start, nframes_t distance, bool forwards);
-
- boost::shared_ptr<Region> find_region (const PBD::ID&) const;
-
- Playlist* cut (list<AudioRange>&, bool result_is_hidden = true);
- Playlist* copy (list<AudioRange>&, bool result_is_hidden = true);
- int paste (Playlist&, nframes_t position, float times);
-
- uint32_t read_data_count() { return _read_data_count; }
-
- RegionList* regions_at (nframes_t frame);
- RegionList* regions_touched (nframes_t start, nframes_t end);
- boost::shared_ptr<Region> top_region_at (nframes_t frame);
-
- boost::shared_ptr<Region> find_next_region (nframes_t frame, RegionPoint point, int dir);
-
- template<class T> void foreach_region (T *t, void (T::*func)(boost::shared_ptr<Region>, void *), void *arg);
- template<class T> void foreach_region (T *t, void (T::*func)(boost::shared_ptr<Region>));
+ void replace_region (boost::shared_ptr<Region> old, boost::shared_ptr<Region> newr, framepos_t pos);
+ void split_region (boost::shared_ptr<Region>, framepos_t position);
+ void split (framepos_t at);
+ void shift (framepos_t at, frameoffset_t distance, bool move_intersected, bool ignore_music_glue);
+ void partition (framepos_t start, framepos_t end, bool cut = false);
+ void duplicate (boost::shared_ptr<Region>, framepos_t position, float times);
+ void nudge_after (framepos_t start, framecnt_t distance, bool forwards);
+ boost::shared_ptr<Region> combine (const RegionList&);
+ void uncombine (boost::shared_ptr<Region>);
+
+ void shuffle (boost::shared_ptr<Region>, int dir);
+ void update_after_tempo_map_change ();
+
+ boost::shared_ptr<Playlist> cut (std::list<AudioRange>&, bool result_is_hidden = true);
+ boost::shared_ptr<Playlist> copy (std::list<AudioRange>&, bool result_is_hidden = true);
+ int paste (boost::shared_ptr<Playlist>, framepos_t position, float times);
+
+ const RegionListProperty& region_list () const { return regions; }
+
+ RegionList* regions_at (framepos_t frame);
+ uint32_t count_regions_at (framepos_t) const;
+ uint32_t count_joined_regions () const;
+ RegionList* regions_touched (framepos_t start, framepos_t end);
+ RegionList* regions_to_read (framepos_t start, framepos_t end);
+ 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);
+ boost::shared_ptr<Region> top_unmuted_region_at (framepos_t frame);
+ boost::shared_ptr<Region> find_next_region (framepos_t frame, RegionPoint point, int dir);
+ framepos_t find_next_region_boundary (framepos_t frame, int dir);
+ bool region_is_shuffle_constrained (boost::shared_ptr<Region>);
+ bool has_region_at (framepos_t const) const;
+
+ bool uses_source (boost::shared_ptr<const Source> src) const;
+
+ framepos_t find_next_transient (framepos_t position, int dir);
+
+ void foreach_region (boost::function<void (boost::shared_ptr<Region>)>);