Vital
Loading...
Searching...
No Matches
vital::Processor Class Referenceabstract

Base class for all signal-processing units in Vital. More...

#include <processor.h>

Inheritance diagram for vital::Processor:
vital::CombFilter vital::Compressor vital::DcFilter vital::Delay< MemoryType > vital::DigitalSvf vital::DiodeFilter vital::DirtyFilter vital::Distortion vital::Envelope vital::Feedback vital::FirHalfbandDecimator vital::IirHalfbandDecimator vital::LadderFilter vital::LegatoFilter vital::LineMap vital::LinkwitzRileyFilter vital::MultibandCompressor vital::Operator vital::PeakMeter vital::PhaserFilter vital::PortamentoSlope vital::ProcessorRouter vital::RandomLfo vital::Reverb vital::SallenKeyFilter vital::SampleSource vital::SynthLfo vital::SynthOscillator vital::TriggerRandom vital::Value

Public Member Functions

 Processor (int num_inputs, int num_outputs, bool control_rate=false, int max_oversample=1)
 Constructs a Processor with a given number of inputs/outputs and oversampling.
 
virtual ~Processor ()
 Virtual destructor.
 
virtual Processorclone () const =0
 Clones this Processor for polyphonic expansion. Must be overridden by subclasses.
 
virtual bool hasState () const
 Indicates whether this Processor requires per-voice state.
 
virtual void process (int num_samples)=0
 Main processing function. Called by the ProcessorRouter.
 
virtual void processWithInput (const poly_float *audio_in, int num_samples)
 An optional processing function taking explicit input buffer. Fallback is an assertion failure (not supported).
 
virtual void init ()
 Called after constructor, used for any additional initialization. Subclasses can override. Sets the initialized flag.
 
virtual void reset (poly_mask reset_mask)
 Called to reset the Processor's per-voice state (e.g., on note-on).
 
virtual void hardReset ()
 Called to perform a "hard" reset for all voices.
 
bool initialized ()
 Returns whether this Processor has been initialized.
 
virtual void setSampleRate (int sample_rate)
 Updates the sample rate of this Processor (scaled by oversampling).
 
virtual void setOversampleAmount (int oversample)
 Sets the oversampling amount and updates the effective sample rate.
 
force_inline bool enabled () const
 Checks if this Processor is enabled.
 
virtual void enable (bool enable)
 Enables or disables this Processor.
 
force_inline int getSampleRate () const
 Retrieves the current (effective) sample rate.
 
force_inline int getOversampleAmount () const
 Retrieves the current oversampling factor.
 
force_inline bool isControlRate () const
 Checks if this Processor is running at control rate (buffer_size == 1).
 
virtual void setControlRate (bool control_rate)
 Sets whether this Processor runs at control rate.
 
force_inline poly_mask getResetMask (int input_index) const
 Retrieves a mask indicating which voices triggered a note-on event. Compares the input's trigger_value to kVoiceOn.
 
force_inline void clearOutputBufferForReset (poly_mask reset_mask, int input_index, int output_index) const
 Clears output samples for voices that are about to be reset, based on the trigger offset.
 
bool inputMatchesBufferSize (int input=0)
 Checks whether the buffer size of a particular input matches the size needed by this Processor.
 
bool checkInputAndOutputSize (int num_samples)
 Checks if all inputs and outputs have buffers big enough for num_samples.
 
virtual bool isPolyphonic () const
 Checks if this Processor is polyphonic by querying its ProcessorRouter.
 
void plug (const Output *source)
 Connects an external Output to this Processor's first input.
 
void plug (const Output *source, unsigned int input_index)
 Connects an external Output to a specified input index.
 
void plug (const Processor *source)
 Connects the first output of a Processor to this Processor's first input.
 
void plug (const Processor *source, unsigned int input_index)
 Connects the first output of a Processor to a specified input index.
 
void plugNext (const Output *source)
 Connects an external Output to the first available (unplugged) input.
 
void plugNext (const Processor *source)
 Connects the first output of a Processor to the first available (unplugged) input.
 
void useInput (Input *input)
 Uses an existing Input object as this Processor's first input.
 
void useInput (Input *input, int index)
 Uses an existing Input object at a specified input index.
 
void useOutput (Output *output)
 Uses an existing Output object as this Processor's first output.
 
void useOutput (Output *output, int index)
 Uses an existing Output object at a specified output index.
 
int connectedInputs ()
 Counts how many inputs are connected to a real source (not null_source_).
 
virtual void unplugIndex (unsigned int input_index)
 Removes the connection at a specified input index, if any.
 
virtual void unplug (const Output *source)
 Removes a connection to a given Output from all inputs.
 
virtual void unplug (const Processor *source)
 Removes connections to all outputs from a given Processor.
 
virtual void numInputsChanged ()
 Called when the number of inputs changes (e.g., new connections). Subclasses may override for dynamic behavior.
 
force_inline void router (ProcessorRouter *router)
 Sets the ProcessorRouter that owns or manages this Processor.
 
force_inline ProcessorRouterrouter () const
 Returns the ProcessorRouter that currently owns this Processor.
 
ProcessorRoutergetTopLevelRouter () const
 Gets the topmost (root) ProcessorRouter by traversing parent routers.
 
virtual void registerInput (Input *input, int index)
 Registers a new input, appending it to the input list.
 
virtual OutputregisterOutput (Output *output, int index)
 Registers a new Output in the output list at a specified index.
 
virtual void registerInput (Input *input)
 Registers a new Input by appending it to the end of the input list.
 
virtual OutputregisterOutput (Output *output)
 Registers a new Output by appending it to the end of the output list.
 
force_inline int numInputs () const
 Returns the total number of Input pointers (owned or otherwise).
 
force_inline int numOutputs () const
 Returns the total number of Output pointers (owned or otherwise).
 
force_inline int numOwnedInputs () const
 Returns how many Input objects this Processor owns.
 
force_inline int numOwnedOutputs () const
 Returns how many Output objects this Processor owns.
 
force_inline Inputinput (unsigned int index=0) const
 Retrieves the Input pointer at a given index.
 
force_inline bool isInputSourcePolyphonic (int index=0)
 Checks if the input source at a given index is polyphonic.
 
force_inline InputownedInput (unsigned int index=0) const
 Retrieves an owned Input pointer at a given index.
 
force_inline Outputoutput (unsigned int index=0) const
 Retrieves the Output pointer at a given index.
 
force_inline OutputownedOutput (unsigned int index=0) const
 Retrieves an owned Output pointer at a given index.
 
void setPluggingStart (int start)
 Sets the position at which plugNext starts searching for an open input.
 

Protected Member Functions

OutputaddOutput (int oversample=1)
 Creates and registers a new Output. Handles control rate vs. audio rate.
 
InputaddInput ()
 Creates and registers a new Input, initially connected to null_source_.
 

Protected Attributes

std::shared_ptr< ProcessorStatestate_
 Shared state (sample rate, oversample, etc.)
 
int plugging_start_
 The index at which plugNext starts searching for an unplugged input.
 
std::vector< std::shared_ptr< Input > > owned_inputs_
 Inputs owned by this Processor.
 
std::vector< std::shared_ptr< Output > > owned_outputs_
 Outputs owned by this Processor.
 
std::shared_ptr< std::vector< Input * > > inputs_
 All inputs, owned or external.
 
std::shared_ptr< std::vector< Output * > > outputs_
 All outputs, owned or external.
 
ProcessorRouterrouter_
 The ProcessorRouter that manages this Processor.
 

Static Protected Attributes

static const Output null_source_
 A null (dummy) source used for unconnected inputs.
 

Detailed Description

Base class for all signal-processing units in Vital.

A Processor can have multiple inputs and outputs, manages its own state, and can be plugged into other Processors or have other Processors plugged in. In typical use, a ProcessorRouter manages connections and calls process().

Constructor & Destructor Documentation

◆ Processor()

vital::Processor::Processor ( int num_inputs,
int num_outputs,
bool control_rate = false,
int max_oversample = 1 )

Constructs a Processor with a given number of inputs/outputs and oversampling.

Constructs a Processor with specified counts of inputs and outputs, control rate mode, and oversampling.

Parameters
num_inputsHow many input slots to allocate.
num_outputsHow many output slots to allocate.
control_rateIf true, the Processor runs at control rate (1 sample).
max_oversampleThe maximum oversampling factor for its outputs.
num_inputsNumber of inputs to allocate.
num_outputsNumber of outputs to allocate.
control_rateWhether the Processor is control rate (1 sample).
max_oversampleMaximum oversampling factor for its outputs.

◆ ~Processor()

virtual vital::Processor::~Processor ( )
inlinevirtual

Virtual destructor.

Member Function Documentation

◆ addInput()

Input * vital::Processor::addInput ( )
protected

Creates and registers a new Input, initially connected to null_source_.

Returns
The newly created Input pointer.

◆ addOutput()

Output * vital::Processor::addOutput ( int oversample = 1)
protected

Creates and registers a new Output. Handles control rate vs. audio rate.

Parameters
oversampleOversample factor for audio-rate outputs.
Returns
The newly created Output pointer.

◆ checkInputAndOutputSize()

bool vital::Processor::checkInputAndOutputSize ( int num_samples)

Checks if all inputs and outputs have buffers big enough for num_samples.

Parameters
num_samplesThe requested number of samples to process.
Returns
True if valid sizes, false otherwise.

◆ clearOutputBufferForReset()

force_inline void vital::Processor::clearOutputBufferForReset ( poly_mask reset_mask,
int input_index,
int output_index ) const
inline

Clears output samples for voices that are about to be reset, based on the trigger offset.

Parameters
reset_maskMask of voices to reset.
input_indexIndex of the input to read the trigger_offset from.
output_indexIndex of the output buffer to clear.

This is a specialized method for multi-voice switching or gating.

◆ clone()

virtual Processor * vital::Processor::clone ( ) const
pure virtual

Clones this Processor for polyphonic expansion. Must be overridden by subclasses.

Returns
A pointer to a newly allocated Processor that is a copy of this Processor.

Implemented in vital::Add, vital::BilinearInterpolate, vital::ChorusModule, vital::Clamp, vital::CombFilter, vital::CombModule, vital::Compressor, vital::CompressorModule, vital::cr::Add, vital::cr::BilinearInterpolate, vital::cr::Clamp, vital::cr::Cube, vital::cr::Cubic, vital::cr::ExponentialScale, vital::cr::Feedback, vital::cr::FrequencyToPhase, vital::cr::FrequencyToSamples, vital::cr::Interpolate, vital::cr::LowerBound, vital::cr::MagnitudeScale, vital::cr::MidiScale, vital::cr::Multiply, vital::cr::Quadratic, vital::cr::Quart, vital::cr::Quartic, vital::cr::Root, vital::cr::SmoothValue, vital::cr::Square, vital::cr::TimeToSamples, vital::cr::UpperBound, vital::cr::Value, vital::cr::VariableAdd, vital::DcFilter, vital::Decimator, vital::Delay< MemoryType >, vital::DelayModule, vital::DigitalSvf, vital::DiodeFilter, vital::DirtyFilter, vital::Distortion, vital::DistortionModule, vital::EffectsModulationHandler, vital::Envelope, vital::EnvelopeModule, vital::EqualizerModule, vital::Feedback, vital::FilterModule, vital::FiltersModule, vital::FirHalfbandDecimator, vital::FlangerModule, vital::FormantFilter, vital::FormantManager, vital::FormantModule, vital::IirHalfbandDecimator, vital::Interpolate, vital::Inverse, vital::LadderFilter, vital::LegatoFilter, vital::LfoModule, vital::LinearScale, vital::LineMap, vital::LinkwitzRileyFilter, vital::ModulationConnectionProcessor, vital::ModulationSum, vital::MultibandCompressor, vital::Multiply, vital::Negate, vital::OscillatorModule, vital::PeakMeter, vital::Phaser, vital::PhaserFilter, vital::PhaserModule, vital::PortamentoSlope, vital::ProcessorRouter, vital::ProducersModule, vital::RandomLfo, vital::RandomLfoModule, vital::ReorderableEffectChain, vital::Reverb, vital::ReverbModule, vital::SallenKeyFilter, vital::SampleAndHoldBuffer, vital::SampleModule, vital::SampleSource, vital::SmoothMultiply, vital::SmoothValue, vital::SmoothVolume, vital::Square, vital::StereoEncoder, vital::Subtract, vital::SynthLfo, vital::SynthModule, vital::SynthOscillator, vital::SynthVoiceHandler, vital::TempoChooser, vital::TriggerRandom, vital::Upsampler, vital::Value, vital::ValueSwitch, vital::VariableAdd, vital::VocalTract, and vital::VoiceHandler.

◆ connectedInputs()

int vital::Processor::connectedInputs ( )

Counts how many inputs are connected to a real source (not null_source_).

Returns
The number of connected inputs.

◆ enable()

virtual void vital::Processor::enable ( bool enable)
inlinevirtual

Enables or disables this Processor.

Parameters
enableIf true, sets the Processor to enabled; else disabled.

Reimplemented in vital::ChorusModule, vital::CompressorModule, vital::DelayModule, vital::EqualizerModule, vital::FlangerModule, vital::Operator, vital::PhaserModule, vital::ReverbModule, and vital::SynthModule.

◆ enabled()

force_inline bool vital::Processor::enabled ( ) const
inline

Checks if this Processor is enabled.

Returns
True if enabled, false otherwise.

◆ getOversampleAmount()

force_inline int vital::Processor::getOversampleAmount ( ) const
inline

Retrieves the current oversampling factor.

Returns
The oversample amount.

◆ getResetMask()

force_inline poly_mask vital::Processor::getResetMask ( int input_index) const
inline

Retrieves a mask indicating which voices triggered a note-on event. Compares the input's trigger_value to kVoiceOn.

Parameters
input_indexWhich input index to check.
Returns
A poly_mask of voices that match note-on.

◆ getSampleRate()

force_inline int vital::Processor::getSampleRate ( ) const
inline

Retrieves the current (effective) sample rate.

Returns
The sample rate (includes oversampling).

◆ getTopLevelRouter()

ProcessorRouter * vital::Processor::getTopLevelRouter ( ) const

Gets the topmost (root) ProcessorRouter by traversing parent routers.

Returns
A pointer to the top-level ProcessorRouter, or nullptr if none.

◆ hardReset()

◆ hasState()

virtual bool vital::Processor::hasState ( ) const
inlinevirtual

Indicates whether this Processor requires per-voice state.

Returns
True if it has state per voice. Defaults to true.

Reimplemented in vital::ModulationSum, vital::Operator, vital::SmoothMultiply, and vital::StereoEncoder.

◆ init()

◆ initialized()

bool vital::Processor::initialized ( )
inline

Returns whether this Processor has been initialized.

◆ input()

force_inline Input * vital::Processor::input ( unsigned int index = 0) const
inline

Retrieves the Input pointer at a given index.

Parameters
indexThe index of the input.
Returns
A pointer to the Input at that index.

◆ inputMatchesBufferSize()

bool vital::Processor::inputMatchesBufferSize ( int input = 0)

Checks whether the buffer size of a particular input matches the size needed by this Processor.

Parameters
inputThe input index to check.
Returns
True if it matches, false otherwise.

◆ isControlRate()

force_inline bool vital::Processor::isControlRate ( ) const
inline

Checks if this Processor is running at control rate (buffer_size == 1).

Returns
True if control rate, false otherwise.

◆ isInputSourcePolyphonic()

force_inline bool vital::Processor::isInputSourcePolyphonic ( int index = 0)
inline

Checks if the input source at a given index is polyphonic.

Parameters
indexThe input index.
Returns
True if the source is owned by a polyphonic Processor.

◆ isPolyphonic()

bool vital::Processor::isPolyphonic ( ) const
virtual

Checks if this Processor is polyphonic by querying its ProcessorRouter.

Returns
True if polyphonic, false if monophonic or no router.

◆ numInputs()

force_inline int vital::Processor::numInputs ( ) const
inline

Returns the total number of Input pointers (owned or otherwise).

◆ numInputsChanged()

virtual void vital::Processor::numInputsChanged ( )
inlinevirtual

Called when the number of inputs changes (e.g., new connections). Subclasses may override for dynamic behavior.

Reimplemented in vital::Operator.

◆ numOutputs()

force_inline int vital::Processor::numOutputs ( ) const
inline

Returns the total number of Output pointers (owned or otherwise).

◆ numOwnedInputs()

force_inline int vital::Processor::numOwnedInputs ( ) const
inline

Returns how many Input objects this Processor owns.

◆ numOwnedOutputs()

force_inline int vital::Processor::numOwnedOutputs ( ) const
inline

Returns how many Output objects this Processor owns.

◆ output()

force_inline Output * vital::Processor::output ( unsigned int index = 0) const
inline

Retrieves the Output pointer at a given index.

Parameters
indexThe index of the output.
Returns
A pointer to the Output at that index.

◆ ownedInput()

force_inline Input * vital::Processor::ownedInput ( unsigned int index = 0) const
inline

Retrieves an owned Input pointer at a given index.

Parameters
indexThe index of the owned input.
Returns
The owned Input pointer.

◆ ownedOutput()

force_inline Output * vital::Processor::ownedOutput ( unsigned int index = 0) const
inline

Retrieves an owned Output pointer at a given index.

Parameters
indexThe index of the owned output.
Returns
The owned Output pointer.

◆ plug() [1/4]

void vital::Processor::plug ( const Output * source)

Connects an external Output to this Processor's first input.

Parameters
sourceThe output to connect.

◆ plug() [2/4]

void vital::Processor::plug ( const Output * source,
unsigned int input_index )

Connects an external Output to a specified input index.

Parameters
sourceThe output to connect.
input_indexWhich input slot to connect to.

◆ plug() [3/4]

void vital::Processor::plug ( const Processor * source)

Connects the first output of a Processor to this Processor's first input.

Parameters
sourceThe Processor providing the output.

◆ plug() [4/4]

void vital::Processor::plug ( const Processor * source,
unsigned int input_index )

Connects the first output of a Processor to a specified input index.

Parameters
sourceThe Processor providing the output.
input_indexWhich input slot to connect to.

◆ plugNext() [1/2]

void vital::Processor::plugNext ( const Output * source)

Connects an external Output to the first available (unplugged) input.

Parameters
sourceThe output to connect.

◆ plugNext() [2/2]

void vital::Processor::plugNext ( const Processor * source)

Connects the first output of a Processor to the first available (unplugged) input.

Parameters
sourceThe Processor providing the output.

◆ process()

virtual void vital::Processor::process ( int num_samples)
pure virtual

Main processing function. Called by the ProcessorRouter.

Parameters
num_samplesNumber of samples to process.

Implemented in vital::Add, vital::BilinearInterpolate, vital::Clamp, vital::CombFilter, vital::Compressor, vital::cr::Add, vital::cr::BilinearInterpolate, vital::cr::Clamp, vital::cr::Cube, vital::cr::Cubic, vital::cr::ExponentialScale, vital::cr::Feedback, vital::cr::FrequencyToPhase, vital::cr::FrequencyToSamples, vital::cr::Interpolate, vital::cr::LowerBound, vital::cr::MagnitudeScale, vital::cr::MidiScale, vital::cr::Multiply, vital::cr::Quadratic, vital::cr::Quart, vital::cr::Quartic, vital::cr::Root, vital::cr::SmoothValue, vital::cr::Square, vital::cr::TimeToSamples, vital::cr::UpperBound, vital::cr::Value, vital::cr::VariableAdd, vital::DcFilter, vital::Decimator, vital::Delay< MemoryType >, vital::DigitalSvf, vital::DiodeFilter, vital::DirtyFilter, vital::Distortion, vital::EffectsModulationHandler, vital::Envelope, vital::Feedback, vital::FilterModule, vital::FiltersModule, vital::FirHalfbandDecimator, vital::FormantModule, vital::IirHalfbandDecimator, vital::Interpolate, vital::Inverse, vital::LadderFilter, vital::LegatoFilter, vital::LinearScale, vital::LineMap, vital::LinkwitzRileyFilter, vital::ModulationConnectionProcessor, vital::ModulationSum, vital::MultibandCompressor, vital::Multiply, vital::Negate, vital::OscillatorModule, vital::PeakMeter, vital::Phaser, vital::PhaserFilter, vital::PortamentoSlope, vital::ProcessorRouter, vital::ProducersModule, vital::RandomLfo, vital::ReorderableEffectChain, vital::Reverb, vital::SallenKeyFilter, vital::SampleAndHoldBuffer, vital::SampleModule, vital::SampleSource, vital::SmoothMultiply, vital::SmoothValue, vital::SmoothVolume, vital::SoundEngine, vital::Square, vital::StereoEncoder, vital::Subtract, vital::SynthLfo, vital::SynthOscillator, vital::SynthVoiceHandler, vital::TempoChooser, vital::TriggerRandom, vital::Upsampler, vital::Value, vital::ValueSwitch, vital::VariableAdd, vital::VocalTract, and vital::VoiceHandler.

◆ processWithInput()

virtual void vital::Processor::processWithInput ( const poly_float * audio_in,
int num_samples )
inlinevirtual

◆ registerInput() [1/2]

void vital::Processor::registerInput ( Input * input)
virtual

Registers a new Input by appending it to the end of the input list.

Parameters
inputThe Input pointer.

◆ registerInput() [2/2]

void vital::Processor::registerInput ( Input * input,
int index )
virtual

Registers a new input, appending it to the input list.

Parameters
inputThe Input pointer.
indexOptional index to place the input at (overloaded).

◆ registerOutput() [1/2]

Output * vital::Processor::registerOutput ( Output * output)
virtual

Registers a new Output by appending it to the end of the output list.

Parameters
outputThe Output pointer.
Returns
The same Output pointer.

Reimplemented in vital::VoiceHandler.

◆ registerOutput() [2/2]

Output * vital::Processor::registerOutput ( Output * output,
int index )
virtual

Registers a new Output in the output list at a specified index.

Parameters
outputThe Output pointer.
indexThe index to place it at.
Returns
The same Output pointer.

Reimplemented in vital::VoiceHandler.

◆ reset()

◆ router() [1/2]

force_inline ProcessorRouter * vital::Processor::router ( ) const
inline

Returns the ProcessorRouter that currently owns this Processor.

Returns
The ProcessorRouter pointer.

◆ router() [2/2]

force_inline void vital::Processor::router ( ProcessorRouter * router)
inline

Sets the ProcessorRouter that owns or manages this Processor.

Parameters
routerA pointer to the ProcessorRouter.

◆ setControlRate()

virtual void vital::Processor::setControlRate ( bool control_rate)
inlinevirtual

Sets whether this Processor runs at control rate.

Parameters
control_rateTrue to set control rate, false otherwise.

Reimplemented in vital::EnvelopeModule, and vital::LfoModule.

◆ setOversampleAmount()

virtual void vital::Processor::setOversampleAmount ( int oversample)
inlinevirtual

Sets the oversampling amount and updates the effective sample rate.

Parameters
oversampleThe new oversampling factor.

Reimplemented in vital::Decimator, vital::DelayModule, vital::FilterFxModule, vital::FiltersModule, vital::LinkwitzRileyFilter, vital::MultibandCompressor, vital::Phaser, vital::ProcessorRouter, vital::Reverb, vital::SynthOscillator, vital::Value, vital::ValueSwitch, and vital::VoiceHandler.

◆ setPluggingStart()

void vital::Processor::setPluggingStart ( int start)
inline

Sets the position at which plugNext starts searching for an open input.

Parameters
startThe new starting index for plugNext.

◆ setSampleRate()

virtual void vital::Processor::setSampleRate ( int sample_rate)
inlinevirtual

Updates the sample rate of this Processor (scaled by oversampling).

Parameters
sample_rateThe new base sample rate (pre-oversampling).

Reimplemented in vital::CompressorModule, vital::DcFilter, vital::DelayModule, vital::DistortionModule, vital::EqualizerModule, vital::LinkwitzRileyFilter, vital::MultibandCompressor, vital::PhaserModule, vital::ProcessorRouter, vital::Reverb, vital::ReverbModule, and vital::VoiceHandler.

◆ unplug() [1/2]

void vital::Processor::unplug ( const Output * source)
virtual

Removes a connection to a given Output from all inputs.

Parameters
sourceThe output to unplug.

◆ unplug() [2/2]

void vital::Processor::unplug ( const Processor * source)
virtual

Removes connections to all outputs from a given Processor.

Parameters
sourceThe Processor to unplug.

◆ unplugIndex()

void vital::Processor::unplugIndex ( unsigned int input_index)
virtual

Removes the connection at a specified input index, if any.

Parameters
input_indexThe input slot index to unplug.

◆ useInput() [1/2]

void vital::Processor::useInput ( Input * input)

Uses an existing Input object as this Processor's first input.

Parameters
inputThe existing Input object to use.

◆ useInput() [2/2]

void vital::Processor::useInput ( Input * input,
int index )

Uses an existing Input object at a specified input index.

Parameters
inputThe existing Input object to use.
indexThe input slot index in this Processor.

◆ useOutput() [1/2]

void vital::Processor::useOutput ( Output * output)

Uses an existing Output object as this Processor's first output.

Parameters
outputThe existing Output object to use.

◆ useOutput() [2/2]

void vital::Processor::useOutput ( Output * output,
int index )

Uses an existing Output object at a specified output index.

Parameters
outputThe existing Output object to use.
indexThe output slot index in this Processor.

Member Data Documentation

◆ inputs_

std::shared_ptr<std::vector<Input*> > vital::Processor::inputs_
protected

All inputs, owned or external.

◆ null_source_

const Output vital::Processor::null_source_
staticprotected

A null (dummy) source used for unconnected inputs.

◆ outputs_

std::shared_ptr<std::vector<Output*> > vital::Processor::outputs_
protected

All outputs, owned or external.

◆ owned_inputs_

std::vector<std::shared_ptr<Input> > vital::Processor::owned_inputs_
protected

Inputs owned by this Processor.

◆ owned_outputs_

std::vector<std::shared_ptr<Output> > vital::Processor::owned_outputs_
protected

Outputs owned by this Processor.

◆ plugging_start_

int vital::Processor::plugging_start_
protected

The index at which plugNext starts searching for an unplugged input.

◆ router_

ProcessorRouter* vital::Processor::router_
protected

The ProcessorRouter that manages this Processor.

◆ state_

std::shared_ptr<ProcessorState> vital::Processor::state_
protected

Shared state (sample rate, oversample, etc.)


The documentation for this class was generated from the following files: