/* Editing operations */
- void add_region (boost::shared_ptr<Region>, framepos_t position, float times = 1, bool auto_partition = false);
+ void add_region (boost::shared_ptr<Region>, framepos_t position, float times = 1, bool auto_partition = false, const int32_t sub_num = 0);
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 get_source_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 split_region (boost::shared_ptr<Region>, framepos_t position, const int32_t sub_num);
+ void split (framepos_t at, const int32_t sub_num);
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);
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);
+ int paste (boost::shared_ptr<Playlist>, framepos_t position, float times, const int32_t sub_num);
const RegionListProperty& region_list_property () const { return regions; }
boost::shared_ptr<RegionList> region_list();
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;
+ bool uses_source (boost::shared_ptr<const Source> src, bool shallow = false) const;
+ void deep_sources (std::set<boost::shared_ptr<Source> >&) const;
framepos_t find_next_transient (framepos_t position, int dir);
virtual XMLNode& state (bool);
- bool add_region_internal (boost::shared_ptr<Region>, framepos_t position);
+ bool add_region_internal (boost::shared_ptr<Region>, framepos_t position, const int32_t sub_num = 0);
int remove_region_internal (boost::shared_ptr<Region>);
void copy_regions (RegionList&) const;
void begin_undo ();
void end_undo ();
- void _split_region (boost::shared_ptr<Region>, framepos_t position);
+ void _split_region (boost::shared_ptr<Region>, framepos_t position, const int32_t sub_num);
typedef std::pair<boost::shared_ptr<Region>, boost::shared_ptr<Region> > TwoRegions;