- void add_region (const Region&, jack_nframes_t position, float times = 1, bool with_save = true);
- void remove_region (Region *);
- void get_equivalent_regions (const Region&, std::vector<Region*>&);
- void get_region_list_equivalent_regions (const Region&, std::vector<Region*>&);
- void replace_region (Region& old, Region& newr, jack_nframes_t pos);
- void split_region (Region&, jack_nframes_t position);
- void partition (jack_nframes_t start, jack_nframes_t end, bool just_top_level);
- void duplicate (Region&, jack_nframes_t position, float times);
- void nudge_after (jack_nframes_t start, jack_nframes_t distance, bool forwards);
+ void add_region (boost::shared_ptr<Region>, framepos_t position, float times = 1, bool auto_partition = false);
+ void remove_region (boost::shared_ptr<Region>);
+ void remove_region_by_source (boost::shared_ptr<Source>);
+ void get_equivalent_regions (boost::shared_ptr<Region>, std::vector<boost::shared_ptr<Region> >&);
+ void get_region_list_equivalent_regions (boost::shared_ptr<Region>, std::vector<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>)>);