27 : currentSampleRate (0.0), bufferSizeExpected (0)
39 if (input !=
nullptr && ! inputs.contains (input))
64 std::unique_ptr<AudioSource>
toDelete;
68 const int index = inputs.indexOf (input);
73 if (inputsToDelete [index])
77 inputs.remove (index);
91 for (
int i = inputs.size(); --i >= 0;)
92 if (inputsToDelete[i])
93 toDelete.add (inputs.getUnchecked (i));
98 for (
int i =
toDelete.size(); --i >= 0;)
99 toDelete.getUnchecked (i)->releaseResources();
108 currentSampleRate = sampleRate;
111 for (
int i = inputs.size(); --i >= 0;)
119 for (
int i = inputs.size(); --i >= 0;)
120 inputs.getUnchecked (i)->releaseResources();
124 currentSampleRate = 0;
125 bufferSizeExpected = 0;
132 if (inputs.size() > 0)
134 inputs.getUnchecked (0)->getNextAudioBlock (
info);
136 if (inputs.size() > 1)
138 tempBuffer.
setSize (jmax (1,
info.buffer->getNumChannels()),
139 info.buffer->getNumSamples());
143 for (
int i = 1; i < inputs.size(); ++i)
145 inputs.getUnchecked (i)->getNextAudioBlock (
info2);
154 info.clearActiveBufferRegion();
void setSize(int newNumChannels, int newNumSamples, bool keepExistingContent=false, bool clearExtraSpace=false, bool avoidReallocating=false)
virtual void releaseResources()=0
virtual void prepareToPlay(int samplesPerBlockExpected, double sampleRate)=0
BigInteger & shiftBits(int howManyBitsLeft, int startBit)
BigInteger & setBit(int bitNumber)
void removeInputSource(AudioSource *input)
void getNextAudioBlock(const AudioSourceChannelInfo &) override
void addInputSource(AudioSource *newInput, bool deleteWhenRemoved)
void prepareToPlay(int samplesPerBlockExpected, double sampleRate) override
~MixerAudioSource() override
void releaseResources() override