diff options
Diffstat (limited to 'libs/ardour/ardour/audioregion.h')
-rw-r--r-- | libs/ardour/ardour/audioregion.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/libs/ardour/ardour/audioregion.h b/libs/ardour/ardour/audioregion.h index b8cde44b77..5ebe22e312 100644 --- a/libs/ardour/ardour/audioregion.h +++ b/libs/ardour/ardour/audioregion.h @@ -56,6 +56,10 @@ class AudioRegion : public Region ~AudioRegion(); + void copy_settings (boost::shared_ptr<const AudioRegion>); + + bool source_equivalent (boost::shared_ptr<const Region>) const; + bool speed_mismatch (float) const; boost::shared_ptr<AudioSource> audio_source (uint32_t n=0) const; @@ -78,8 +82,17 @@ class AudioRegion : public Region uint32_t chan_n=0, double samples_per_unit= 1.0) const; /* Readable interface */ + + enum ReadOps { + ReadOpsNone = 0x0, + ReadOpsOwnAutomation = 0x1, + ReadOpsOwnScaling = 0x2, + ReadOpsCount = 0x4, + ReadOpsFades = 0x8 + }; virtual nframes64_t read (Sample*, nframes64_t pos, nframes64_t cnt, int channel) const; + virtual nframes64_t read_with_ops (Sample*, nframes64_t pos, nframes64_t cnt, int channel, ReadOps rops) const; virtual nframes64_t readable_length() const { return length(); } virtual nframes_t read_at (Sample *buf, Sample *mixdown_buf, @@ -151,11 +164,14 @@ class AudioRegion : public Region private: friend class RegionFactory; + friend class Crossfade; AudioRegion (boost::shared_ptr<AudioSource>, nframes_t start, nframes_t length); AudioRegion (boost::shared_ptr<AudioSource>, nframes_t start, nframes_t length, const string& name, layer_t = 0, Region::Flag flags = Region::DefaultFlags); AudioRegion (const SourceList &, nframes_t start, nframes_t length, const string& name, layer_t = 0, Region::Flag flags = Region::DefaultFlags); AudioRegion (boost::shared_ptr<const AudioRegion>, nframes_t start, nframes_t length, const string& name, layer_t = 0, Region::Flag flags = Region::DefaultFlags); + AudioRegion (boost::shared_ptr<const AudioRegion>, const SourceList&, nframes_t length, const string& name, layer_t = 0, Region::Flag flags = Region::DefaultFlags); + AudioRegion (boost::shared_ptr<const AudioRegion>); AudioRegion (boost::shared_ptr<AudioSource>, const XMLNode&); AudioRegion (SourceList &, const XMLNode&); @@ -174,7 +190,7 @@ class AudioRegion : public Region uint32_t chan_n = 0, nframes_t read_frames = 0, nframes_t skip_frames = 0, - bool raw = false) const; + ReadOps readops = ReadOps (~0)) const; void recompute_at_start (); void recompute_at_end (); @@ -201,7 +217,6 @@ class AudioRegion : public Region /* default constructor for derived (compound) types */ AudioRegion (Session& s, nframes_t, nframes_t, std::string name); - AudioRegion (boost::shared_ptr<const AudioRegion>); int set_live_state (const XMLNode&, Change&, bool send); }; |