OpenShot Library | OpenShotAudio 0.2.2
|
Manages all the changes requested by the main convolution engine, to minimize the number of calls of the convolution engine initialization, and the potential consequences of multiple quick calls to the function Convolution::loadImpulseResponse. More...
Public Types | |
enum class | ChangeRequest { changeEngine = 0 , changeSampleRate , changeMaximumBufferSize , changeSource , changeImpulseResponseSize , changeStereo , changeTrimming , changeNormalisation , changeIgnore , numChangeRequestTypes } |
using | SourceType = ConvolutionEngine::ProcessingInformation::SourceType |
Public Member Functions | |
void | initProcessing (int maximumBufferSize) |
Inits the size of the interpolation buffer. More... | |
void | addToFifo (ChangeRequest type, juce::var parameter) |
Adds a new change request. More... | |
void | addToFifo (ChangeRequest *types, juce::var *parameters, int numEntries) |
Adds a new array of change requests. More... | |
void | readFromFifo (ChangeRequest &type, juce::var ¶meter) |
Reads requests from the fifo. More... | |
int | getNumRemainingEntries () const noexcept |
Returns the number of requests that still need to be processed. More... | |
void | processFifo () |
This function processes all the change requests to remove all the the redundant ones, and to tell what kind of initialization must be done. More... | |
void | copyBufferToTemporaryLocation (dsp::AudioBlock< float > block) |
This function copies a buffer to a temporary location, so that any external audio source can be processed then in the dedicated thread. More... | |
void | reset () |
Resets the convolution engines states. More... | |
void | processSamples (const AudioBlock< const float > &input, AudioBlock< float > &output) |
Convolution processing handling interpolation between previous and new states of the convolution engines. More... | |
Public Attributes | |
const int64 | maximumTimeInSamples = 10 * 96000 |
Manages all the changes requested by the main convolution engine, to minimize the number of calls of the convolution engine initialization, and the potential consequences of multiple quick calls to the function Convolution::loadImpulseResponse.
Definition at line 337 of file juce_Convolution.cpp.
using juce::dsp::Convolution::Pimpl::SourceType = ConvolutionEngine::ProcessingInformation::SourceType |
Definition at line 353 of file juce_Convolution.cpp.
|
strong |
Definition at line 339 of file juce_Convolution.cpp.
|
inline |
Definition at line 356 of file juce_Convolution.cpp.
|
inlineoverride |
Definition at line 376 of file juce_Convolution.cpp.
|
inline |
Inits the size of the interpolation buffer.
Definition at line 383 of file juce_Convolution.cpp.
References juce::AudioBuffer< Type >::setSize(), and juce::Thread::stopThread().
|
inline |
Adds a new change request.
Definition at line 393 of file juce_Convolution.cpp.
References juce::AbstractFifo::finishedWrite(), juce::AbstractFifo::prepareToWrite(), and juce::Array< ElementType, TypeOfCriticalSectionToUse, minimumAllocatedSize >::setUnchecked().
|
inline |
Adds a new array of change requests.
Definition at line 418 of file juce_Convolution.cpp.
References juce::AbstractFifo::finishedWrite(), juce::AbstractFifo::prepareToWrite(), and juce::Array< ElementType, TypeOfCriticalSectionToUse, minimumAllocatedSize >::setUnchecked().
|
inline |
Reads requests from the fifo.
Definition at line 449 of file juce_Convolution.cpp.
References juce::AbstractFifo::finishedRead(), and juce::AbstractFifo::prepareToRead().
Referenced by processFifo().
|
inlinenoexcept |
Returns the number of requests that still need to be processed.
Definition at line 470 of file juce_Convolution.cpp.
References juce::AbstractFifo::getNumReady().
Referenced by processFifo().
|
inline |
This function processes all the change requests to remove all the the redundant ones, and to tell what kind of initialization must be done.
Depending on the results, the convolution engines might be reset, or simply updated, or they might not need any change at all.
Definition at line 482 of file juce_Convolution.cpp.
References copyBufferToTemporaryLocation(), getNumRemainingEntries(), juce::Thread::isThreadRunning(), readFromFifo(), juce::AudioBuffer< Type >::setSample(), juce::AudioBuffer< Type >::setSize(), juce::Array< ElementType, TypeOfCriticalSectionToUse, minimumAllocatedSize >::setUnchecked(), and juce::Thread::startThread().
Referenced by processSamples(), and reset().
|
inline |
This function copies a buffer to a temporary location, so that any external audio source can be processed then in the dedicated thread.
Definition at line 695 of file juce_Convolution.cpp.
References juce::AudioBuffer< Type >::copyFrom(), juce::dsp::AudioBlock< SampleType >::getChannelPointer(), juce::dsp::AudioBlock< SampleType >::getNumChannels(), and juce::dsp::AudioBlock< SampleType >::getNumSamples().
Referenced by processFifo().
|
inline |
Resets the convolution engines states.
Definition at line 708 of file juce_Convolution.cpp.
References processFifo().
|
inline |
Convolution processing handling interpolation between previous and new states of the convolution engines.
Definition at line 721 of file juce_Convolution.cpp.
References juce::SmoothedValueBase< SmoothedValueType >::applyGain(), juce::dsp::AudioBlock< SampleType >::copyFrom(), juce::AudioBuffer< Type >::copyFrom(), juce::dsp::AudioBlock< SampleType >::getChannelPointer(), juce::dsp::AudioBlock< SampleType >::getNumChannels(), juce::dsp::AudioBlock< SampleType >::getNumSamples(), juce::dsp::AudioBlock< SampleType >::getSingleChannelBlock(), juce::dsp::AudioBlock< SampleType >::getSubBlock(), juce::AudioBuffer< Type >::getWritePointer(), processFifo(), and processSamples().
Referenced by processSamples().
const int64 juce::dsp::Convolution::Pimpl::maximumTimeInSamples = 10 * 96000 |
Definition at line 775 of file juce_Convolution.cpp.