CriWare Unreal Engine
Plug-ins for CriWare solutions.
Loading...
Searching...
No Matches
AtomModulation::IGenerator Class Referenceabstract

#include <AtomModulationGenerator.h>

Inheritance diagram for AtomModulation::IGenerator:

Public Member Functions

virtual ~IGenerator ()=default
virtual FGeneratorPtr Clone () const =0
virtual void GetDebugCategories (TArray< FString > &OutDebugCategories) const =0
virtual const FString & GetDebugName () const =0
virtual void GetDebugValues (TArray< FString > &OutDebugValues) const =0
virtual float GetValue () const =0
virtual void Init (FAtomRuntimeId InRuntimeID)
virtual bool IsBypassed () const =0
void PumpCommands ()
virtual void Update (double InElapsed)=0
virtual void UpdateGenerator (FGeneratorPtr &&InGenerator)=0
Public Member Functions inherited from AtomModulation::IGeneratorFixLayout
virtual ~IGeneratorFixLayout ()=default

Protected Member Functions

CRI_API void AtomThreadCommand (TUniqueFunction< void()> &&InCommand)

Protected Attributes

FAtomRuntimeId AtomRuntimeID = INDEX_NONE

Private Attributes

TQueue< TUniqueFunction< void()> > CommandQueue

Constructor & Destructor Documentation

◆ ~IGenerator()

virtual AtomModulation::IGenerator::~IGenerator ( )
virtualdefault

Member Function Documentation

◆ AtomThreadCommand()

void AtomModulation::IGenerator::AtomThreadCommand ( TUniqueFunction< void()> && InCommand)
protected

◆ Clone()

virtual FGeneratorPtr AtomModulation::IGenerator::Clone ( ) const
pure virtual

◆ GetDebugCategories()

virtual void AtomModulation::IGenerator::GetDebugCategories ( TArray< FString > & OutDebugCategories) const
pure virtual

◆ GetDebugName()

virtual const FString & AtomModulation::IGenerator::GetDebugName ( ) const
pure virtual

◆ GetDebugValues()

virtual void AtomModulation::IGenerator::GetDebugValues ( TArray< FString > & OutDebugValues) const
pure virtual

◆ GetValue()

virtual float AtomModulation::IGenerator::GetValue ( ) const
pure virtual

◆ Init()

virtual void AtomModulation::IGenerator::Init ( FAtomRuntimeId InRuntimeID)
inlinevirtual

(Optional) Initializer step where the generator is provided the associated parent Atom runtime's Id.

Reimplemented in AtomModulation::FEnvelopeFollowerGenerator.

◆ IsBypassed()

virtual bool AtomModulation::IGenerator::IsBypassed ( ) const
pure virtual

Returns whether or not the generator is bypassed.

Implemented in AtomModulation::FADEnvelopeGenerator, AtomModulation::FEnvelopeFollowerGenerator, and AtomModulation::FLFOGenerator.

◆ PumpCommands()

void AtomModulation::IGenerator::PumpCommands ( )

Pumps commands from Audio Thread to the generator's modulation processing thread.

◆ Update()

virtual void AtomModulation::IGenerator::Update ( double InElapsed)
pure virtual

Updates the generators value at the audio block rate on the modulation processing thread.

Implemented in AtomModulation::FADEnvelopeGenerator, AtomModulation::FEnvelopeFollowerGenerator, and AtomModulation::FLFOGenerator.

◆ UpdateGenerator()

virtual void AtomModulation::IGenerator::UpdateGenerator ( FGeneratorPtr && InGenerator)
pure virtual

Allows child generator class to override default copy/update behavior when receiving an updated generator call from the Atom thread. Useful for ignoring updates while a generator is running or deferring the transition to the new generator state to the modulation processing thread. This enables interpolating between existing and new generator state, properties, avoiding discontinuities, etc.

Parameters
InGenerator- The constructed version of the generator being sent from the Atom Thread

Implemented in AtomModulation::FADEnvelopeGenerator, AtomModulation::FEnvelopeFollowerGenerator, and AtomModulation::FLFOGenerator.

Member Data Documentation

◆ AtomRuntimeID

FAtomRuntimeId AtomModulation::IGenerator::AtomRuntimeID = INDEX_NONE
protected

◆ CommandQueue

TQueue<TUniqueFunction<void()> > AtomModulation::IGenerator::CommandQueue
private

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