64 unsigned int numberOfChannels,
65 unsigned int bitsPerSample);
85 unsigned int bitsPerSample);
117 virtual bool write (
const int** samplesToWrite,
int numSamples) = 0;
128 virtual bool flush();
143 int64 numSamplesToRead);
155 int numSamplesToRead,
156 int samplesPerBlock = 2048);
161 int startSample,
int numSamples);
164 bool writeFromFloatArrays (
const float*
const* channels,
int numChannels,
int numSamples);
196 int numSamplesToBuffer);
213 bool write (
const float*
const* data,
int numSamples);
222 virtual void reset (
int numChannels,
double sampleRate, int64 totalSamplesInSource) = 0;
224 int startOffsetInBuffer,
int numSamples) = 0;
239 void setFlushInterval (
int numSamplesPerFlush)
noexcept;
243 std::unique_ptr<Buffer> buffer;
267 template <
class DestSampleType,
class SourceSampleType,
class DestEndianness>
273 static void write (
void* destData,
int numDestChannels,
const int*
const* source,
274 int numSamples,
const int sourceOffset = 0)
noexcept
276 for (
int i = 0; i < numDestChannels; ++i)
278 const DestType dest (addBytesToPointer (destData, i * DestType::getBytesPerSample()), numDestChannels);
280 if (*source !=
nullptr)
void clearSamples(int numSamples) const noexcept
void convertSamples(Pointer source, int numSamples) const noexcept