OpenShot Library | OpenShotAudio  0.2.2
juce::dsp::Convolution::Pimpl Struct Reference

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...

+ Inheritance diagram for juce::dsp::Convolution::Pimpl:

Public Types

enum  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 &parameter)
 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.
 
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.
 

Public Attributes

const int64 maximumTimeInSamples = 10 * 96000
 

Detailed Description

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.

Member Function Documentation

◆ initProcessing()

void juce::dsp::Convolution::Pimpl::initProcessing ( int  maximumBufferSize)
inline

Inits the size of the interpolation buffer.

Definition at line 383 of file juce_Convolution.cpp.

◆ addToFifo() [1/2]

void juce::dsp::Convolution::Pimpl::addToFifo ( ChangeRequest  type,
juce::var  parameter 
)
inline

Adds a new change request.

Definition at line 393 of file juce_Convolution.cpp.

◆ addToFifo() [2/2]

void juce::dsp::Convolution::Pimpl::addToFifo ( ChangeRequest *  types,
juce::var parameters,
int  numEntries 
)
inline

Adds a new array of change requests.

Definition at line 418 of file juce_Convolution.cpp.

◆ readFromFifo()

void juce::dsp::Convolution::Pimpl::readFromFifo ( ChangeRequest &  type,
juce::var parameter 
)
inline

Reads requests from the fifo.

Definition at line 449 of file juce_Convolution.cpp.

◆ getNumRemainingEntries()

int juce::dsp::Convolution::Pimpl::getNumRemainingEntries ( ) const
inlinenoexcept

Returns the number of requests that still need to be processed.

Definition at line 470 of file juce_Convolution.cpp.

◆ processFifo()

void juce::dsp::Convolution::Pimpl::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 juce::AudioBuffer< Type >::setSample(), and juce::AudioBuffer< Type >::setSize().

◆ reset()

void juce::dsp::Convolution::Pimpl::reset ( )
inline

Resets the convolution engines states.

Definition at line 708 of file juce_Convolution.cpp.


The documentation for this struct was generated from the following file: