30 static std::shared_ptr<StretchingSequence>
35 std::unique_ptr<AudioSegmentFactoryInterface>);
42 double GetRate()
const override;
46 double* buffer,
size_t bufferLen,
double t0,
47 bool backwards)
const override;
52 sampleCount* pNumWithinClips =
nullptr)
const override;
64 float* buffers[],
sampleCount start,
size_t len,
bool backwards)
const;
70 bool GetNext(
float *
const buffers[],
size_t numChannels,
size_t numSamples);
78 AudioSegments::const_iterator mActiveAudioSegmentIt = mAudioSegments.end();
std::vector< std::shared_ptr< const ClipInterface > > ClipConstHolders
A generalization for audio segments, whether clips or silence between clips.
AudioSegments mAudioSegments
const PlayableSequence & mSequence
const std::unique_ptr< AudioSegmentFactoryInterface > mAudioSegmentFactory
std::optional< sampleCount > mExpectedStart
std::vector< std::shared_ptr< AudioSegment > > AudioSegments
virtual bool HasTrivialEnvelope() const =0
virtual double GetStartTime() const =0
virtual void GetEnvelopeValues(double *buffer, size_t bufferLen, double t0, bool backwards) const =0
virtual sampleFormat WidestEffectiveFormat() const =0
virtual bool DoGet(size_t iChannel, size_t nBuffers, const samplePtr buffers[], sampleFormat format, sampleCount start, size_t len, bool backward, fillFormat fill=FillFormat::fillZero, bool mayThrow=true, sampleCount *pNumWithinClips=nullptr) const =0
virtual double GetEndTime() const =0
bool GetFloats(size_t iChannel, size_t nBuffers, float *const buffers[], sampleCount start, size_t len, bool backwards=false, fillFormat fill=FillFormat::fillZero, bool mayThrow=true, sampleCount *pNumWithinClips=nullptr) const
virtual float GetChannelVolume(int channel) const =0
virtual size_t NChannels() const =0
A constant property.
virtual double GetRate() const =0
Positions or offsets within audio files need a wide type.
ChannelType
Mutually exclusive channel classifications.
constexpr auto sampleRate
virtual ChannelType GetChannelType() const =0
Classify this channel.
virtual const ChannelGroup * FindChannelGroup() const =0
Find associated ChannelGroup if any.
virtual bool GetSolo() const =0
May vary asynchronously.
virtual bool GetMute() const =0
May vary asynchronously.