41 if (
newSource !=
nullptr && bufferSize > 0 && sampleRate > 0)
42 newSource->prepareToPlay (bufferSize, sampleRate);
67 jassert (sampleRate > 0 && bufferSize > 0);
71 if (source !=
nullptr)
82 if (
numInputs >= numElementsInArray (inputChans))
92 if (
numOutputs >= numElementsInArray (outputChans))
131 zeromem (channels[
numActiveChans], (
size_t) numSamples *
sizeof (
float));
141 for (
int i =
info.buffer->getNumChannels(); --i >= 0;)
142 buffer.applyGainRamp (i,
info.startSample,
info.numSamples, lastGain, gain);
157 device->getCurrentBufferSizeSamples());
164 zeromem (channels,
sizeof (channels));
166 if (source !=
nullptr)
172 if (source !=
nullptr)
void setSize(int newNumChannels, int newNumSamples, bool keepExistingContent=false, bool clearExtraSpace=false, bool avoidReallocating=false)
Type * getWritePointer(int channelNumber) noexcept
void setGain(float newGain) noexcept
void setSource(AudioSource *newSource)
void audioDeviceIOCallbackWithContext(const float *const *inputChannelData, int totalNumInputChannels, float *const *outputChannelData, int totalNumOutputChannels, int numSamples, const AudioIODeviceCallbackContext &context) override
void audioDeviceStopped() override
~AudioSourcePlayer() override
void prepareToPlay(double sampleRate, int blockSize)
void audioDeviceAboutToStart(AudioIODevice *device) override
virtual void releaseResources()=0
virtual void prepareToPlay(int samplesPerBlockExpected, double sampleRate)=0
virtual void getNextAudioBlock(const AudioSourceChannelInfo &bufferToFill)=0