38 double sourceSampleRateToCorrectFor,
int maxNumChannels)
40 if (source == newSource)
42 if (source ==
nullptr)
53 std::unique_ptr<ResamplingAudioSource> oldResamplerSource (resamplerSource);
54 std::unique_ptr<BufferingAudioSource> oldBufferingSource (bufferingSource);
57 if (newSource !=
nullptr)
59 newPositionableSource = newSource;
61 if (readAheadSize > 0)
65 jassert (readAheadThread !=
nullptr);
67 newPositionableSource = newBufferingSource
69 false, readAheadSize, maxNumChannels);
74 if (sourceSampleRateToCorrectFor > 0)
75 newMasterSource = newResamplerSource
78 newMasterSource = newPositionableSource;
82 if (newResamplerSource !=
nullptr && sourceSampleRateToCorrectFor > 0 && sampleRate > 0)
90 const ScopedLock sl (callbackLock);
93 resamplerSource = newResamplerSource;
94 bufferingSource = newBufferingSource;
95 masterSource = newMasterSource;
96 positionableSource = newPositionableSource;
97 readAheadBufferSize = readAheadSize;
98 sourceSampleRate = sourceSampleRateToCorrectFor;
103 if (oldMasterSource !=
nullptr)
216 const ScopedLock sl (callbackLock);
218 sampleRate = newSampleRate;
219 blockSize = samplesPerBlockExpected;
221 if (masterSource !=
nullptr)
222 masterSource->prepareToPlay (samplesPerBlockExpected, sampleRate);
224 if (resamplerSource !=
nullptr && sourceSampleRate > 0)
225 resamplerSource->setResamplingRatio (sourceSampleRate / sampleRate);