//============================================================================== void AudioProcessorPlayer::setProcessor (AudioProcessor* const processorToPlay) { if (processor != processorToPlay) { if (processorToPlay != nullptr && sampleRate > 0 && blockSize > 0) { processorToPlay->setPlayConfigDetails (numInputChans, numOutputChans, sampleRate, blockSize); processorToPlay->prepareToPlay (sampleRate, blockSize); } AudioProcessor* oldOne; { const ScopedLock sl (lock); oldOne = isPrepared ? processor : nullptr; processor = processorToPlay; isPrepared = true; } if (oldOne != nullptr) oldOne->releaseResources(); } }
FilterIOConfigurationWindow::FilterIOConfigurationWindow (AudioProcessor& p) : AudioProcessorEditor (&p), title ("title", p.getName()) { setOpaque (true); title.setFont (title.getFont().withStyle (Font::bold)); addAndMakeVisible (title); { ScopedLock renderLock (p.getCallbackLock()); p.suspendProcessing (true); p.releaseResources(); } if (p.getBusCount (true) > 0 || p.canAddBus (true)) { inConfig.reset (new InputOutputConfig (*this, true)); addAndMakeVisible (inConfig.get()); } if (p.getBusCount (false) > 0 || p.canAddBus (false)) { outConfig.reset (new InputOutputConfig (*this, false)); addAndMakeVisible (outConfig.get()); } currentLayout = p.getBusesLayout(); setSize (400, (inConfig != nullptr && outConfig != nullptr ? 160 : 0) + 200); }
//============================================================================== void AudioProcessorPlayer::setProcessor (AudioProcessor* const processorToPlay) { if (processor != processorToPlay) { if (processorToPlay != nullptr && sampleRate > 0 && blockSize > 0) { processorToPlay->setPlayConfigDetails (numInputChans, numOutputChans, sampleRate, blockSize); const bool supportsDouble = processorToPlay->supportsDoublePrecisionProcessing() && isDoublePrecision; AudioProcessor::ProcessingPrecision precision = supportsDouble ? AudioProcessor::doublePrecision : AudioProcessor::singlePrecision; processorToPlay->setProcessingPrecision (precision); processorToPlay->prepareToPlay (sampleRate, blockSize); } AudioProcessor* oldOne; { const ScopedLock sl (lock); oldOne = isPrepared ? processor : nullptr; processor = processorToPlay; isPrepared = true; } if (oldOne != nullptr) oldOne->releaseResources(); } }