diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-02-18 13:59:49 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-02-18 13:59:49 +0000 |
commit | ce7a5e1c9fa3edf2d9cc66875505e402a0aaa6f6 (patch) | |
tree | 8a798270cd892823c7eeef99c2f3cdd4bf657bb3 /libs/ardour/ardour/region_factory.h | |
parent | cdcc4d3720d8168a158f6a5a5f23e9ce981bc68c (diff) |
the Properties & 64bit region commit
git-svn-id: svn://localhost/ardour2/branches/3.0@6695 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/region_factory.h')
-rw-r--r-- | libs/ardour/ardour/region_factory.h | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/libs/ardour/ardour/region_factory.h b/libs/ardour/ardour/region_factory.h index 64d3417287..16e48828d4 100644 --- a/libs/ardour/ardour/region_factory.h +++ b/libs/ardour/ardour/region_factory.h @@ -44,29 +44,35 @@ class RegionFactory { /** This is emitted only when a new id is assigned. Therefore, in a pure Region copy, it will not be emitted. - It must be emitted by derived classes, not Region + It must be emitted using a derived instance of Region, not Region itself, to permit dynamic_cast<> to be used to infer the type of Region. */ static PBD::Signal1<void,boost::shared_ptr<Region> > CheckNewRegion; - static boost::shared_ptr<Region> create (boost::shared_ptr<const Region>); - - /* note: both of the first two should use const shared_ptr as well, but - gcc 4.1 doesn't seem to be able to disambiguate them if they do. - */ - - static boost::shared_ptr<Region> create (boost::shared_ptr<Region>, nframes_t start, - nframes_t length, const std::string& name, - layer_t = 0, Region::Flag flags = Region::DefaultFlags, bool announce = true); - static boost::shared_ptr<Region> create (boost::shared_ptr<AudioRegion>, nframes_t start, - nframes_t length, const std::string& name, - layer_t = 0, Region::Flag flags = Region::DefaultFlags, bool announce = true); - static boost::shared_ptr<Region> create (boost::shared_ptr<Region>, const SourceList&, const std::string& name, layer_t = 0, Region::Flag flags = Region::DefaultFlags, bool announce = true); - static boost::shared_ptr<Region> create (boost::shared_ptr<Source>, nframes_t start, nframes_t length, const std::string& name, layer_t = 0, Region::Flag flags = Region::DefaultFlags, bool announce = true); - static boost::shared_ptr<Region> create (const SourceList &, nframes_t start, nframes_t length, const std::string& name, layer_t = 0, Region::Flag flags = Region::DefaultFlags, bool announce = true); + /** create a "pure copy" of Region @param other */ + static boost::shared_ptr<Region> create (boost::shared_ptr<const Region> other); + + /** 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); + /** create a copy of @other starting at zero within @param other's sources */ + static boost::shared_ptr<Region> create (boost::shared_ptr<Region> other, + const PBD::PropertyList&, bool announce = true); + /** create a copy of @other starting at @param offset within @param other */ + static boost::shared_ptr<Region> create (boost::shared_ptr<Region>, frameoffset_t offset, + const PBD::PropertyList&, bool announce = true); + /** create a "copy" of @param other but using a different set of sources @param srcs */ + static boost::shared_ptr<Region> create (boost::shared_ptr<Region> other, const SourceList& srcs, + const PBD::PropertyList&, bool announce = true); + + /** create a region with no sources, using XML state */ static boost::shared_ptr<Region> create (Session&, XMLNode&, bool); - static boost::shared_ptr<Region> create (SourceList &, const XMLNode&); + /** create a region with specified sources @param srcs and XML state */ + static boost::shared_ptr<Region> create (SourceList& srcs, const XMLNode&); private: static std::map<PBD::ID,boost::weak_ptr<Region> > region_map; |