diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-05-22 16:11:00 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-05-22 16:11:00 +0000 |
commit | 9c733915a0bc4b5274fac749b1adc874da79a6ee (patch) | |
tree | 1db070ef198c7b7890cb98c84a37a1321c810183 /libs/ardour/ardour/region_factory.h | |
parent | d40ee9548661f88db1bc1dcda0b463220d59a8d8 (diff) |
basic uncombining (no post-facto region trimming)
git-svn-id: svn://localhost/ardour2/branches/3.0@9566 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/region_factory.h')
-rw-r--r-- | libs/ardour/ardour/region_factory.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libs/ardour/ardour/region_factory.h b/libs/ardour/ardour/region_factory.h index 647e1fe7d8..979b499b3a 100644 --- a/libs/ardour/ardour/region_factory.h +++ b/libs/ardour/ardour/region_factory.h @@ -61,6 +61,7 @@ public: /** create a region from a single Source */ static boost::shared_ptr<Region> create (boost::shared_ptr<Source>, const PBD::PropertyList&, bool announce = true); + /** create a region from a multiple sources */ static boost::shared_ptr<Region> create (const SourceList &, const PBD::PropertyList&, bool announce = true); @@ -91,6 +92,24 @@ public: static int region_name (std::string &, std::string, bool new_level = false); static std::string new_region_name (std::string); + /* when we make a compound region, for every region involved there + * are two "instances" - the original, which is removed from this + * playlist, and a copy, which is added to the playlist used as + * the source for the compound. + * + * when we uncombine, we want to put the originals back into this + * playlist after we remove the compound. this map lets us + * look them up easily. note that if the compound was trimmed or + * split, we may have to trim the originals + * and they may not be added back if the compound was trimmed + * or split sufficiently. + */ + + typedef std::map<boost::shared_ptr<Region>, boost::shared_ptr<Region> > CompoundAssociations; + static CompoundAssociations& compound_associations() { return _compound_associations; } + + static void add_compound_association (boost::shared_ptr<Region>, boost::shared_ptr<Region>); + private: static void region_changed (PBD::PropertyChange const &, boost::weak_ptr<Region>); @@ -106,6 +125,7 @@ public: static void update_region_name_map (boost::shared_ptr<Region>); static PBD::ScopedConnectionList region_list_connections; + static CompoundAssociations _compound_associations; }; } |