27 std::optional<LibFileFormats::AcidizerTags>
tags, std::string
filename,
30 const std::optional<LibFileFormats::AcidizerTags>
tags;
42 ReadFloats(
float* buffer,
long long where,
size_t numFrames)
const override;
48 const std::shared_ptr<const ClipInterface>
mClip;
53 using ChannelCache = std::array<std::optional<AudioSegmentSampleView>, 2>;
54 mutable std::array<ChannelCache, 2>
mCache;
55 mutable std::array<bool, 2>
mUseFirst {
true,
true };
An audio segment is either a whole clip or the silence between clips. Views allow shared references t...
const std::optional< LibFileFormats::AcidizerTags > tags
double GetSampleRate() const override
const std::string filename
const std::shared_ptr< const ClipInterface > mClip
void AddChannel(size_t iChannel, float *buffer, sampleCount start, size_t len) const
ClipMirAudioReader(std::optional< LibFileFormats::AcidizerTags > tags, std::string filename, WaveTrack &singleClipWaveTrack)
const WaveTrack::IntervalHolder clip
long long GetNumSamples() const override
std::array< bool, 2 > mUseFirst
std::array< ChannelCache, 2 > mCache
void ReadFloats(float *buffer, long long where, size_t numFrames) const override
std::array< std::optional< AudioSegmentSampleView >, 2 > ChannelCache
A Track that contains audio waveform data.
std::shared_ptr< Interval > IntervalHolder
Positions or offsets within audio files need a wide type.