CriWare Unreal Engine
Plug-ins for CriWare solutions.
Loading...
Searching...
No Matches
UAtomAnalyzer Class Reference

#include <AtomAnalyzer.h>

Inheritance diagram for UAtomAnalyzer:

Public Types

typedef int32 FResultId
typedef TSharedPtr< Atom::IAnalyzerResult, ESPMode::ThreadSafe > FResultSharedPtr

Public Member Functions

virtual CRIWARECORE_API void BeginDestroy () override
virtual void BroadcastResults ()
virtual CRIWARECORE_API TSharedPtr< Atom::IAnalyzerControls > GetAnalyzerControls () const
virtual CRIWARECORE_API TUniquePtr< Atom::IAnalyzerSettings > GetSettings (const int32 InSampleRate, const int32 InNumChannels) const
CRIWARECORE_API void StartAnalyzing (const FAtomRuntimeId InAtomRuntimeID, UAtomAudioBus *AudioBusToAnalyze)
CRIWARECORE_API void StartAnalyzing (const UObject *WorldContextObject, UAtomAudioBus *AudioBusToAnalyze)
CRIWARECORE_API void StopAnalyzing (const UObject *WorldContextObject=nullptr)

Public Attributes

TObjectPtr< UAtomAudioBus > AudioBus

Protected Member Functions

virtual CRIWARECORE_API FName GetAnalyzerFactoryName () const
template<class ResultType>
TUniquePtr< ResultType > GetResults ()

Protected Attributes

int32 NumFramesPerBufferToAnalyze = 1024

Private Member Functions

CRIWARECORE_API bool DoAnalysis ()
CRIWARECORE_API UAtomAnalyzerSettings * GetSettingsFromProperty (FProperty *Property)
CRIWARECORE_API bool IsReadyForAnalysis () const

Private Attributes

TArray< float > AnalysisBuffer
TSharedPtr< FAsyncTask< FAtomAnalyzeTask > > AnalysisTask
TSharedPtr< Atom::IAnalyzerControls > AnalyzerControls
TUniquePtr< Atom::FAnalyzerFacade > AnalyzerFacade
Atom::IAnalyzerFactory * AnalyzerFactory = nullptr
TObjectPtr< UAtomAnalyzerSubsystem > AtomAnalyzerSubsystem
int32 AtomRuntimeSampleRate = 0
int32 NumBusChannels = 0
Audio::FPatchOutputStrongPtr PatchOutputStrongPtr
TUniquePtr< Atom::IAnalyzerResult > ResultsInternal

Friends

class UAtomAnalyzerSubsystem

Detailed Description

UAtomAnalyzer

UAtomAnalyzer performs analysis on an audio bus using specific settings and exposes the results via blueprints.

Subclasses of UAtomAnalyzer must implement GetAnalyzerFactoryName() to associate the UAtomAnalyzer asset with an IAudioAnalyzerFactory implementation.

To support blueprint access, subclasses can implement UFUNCTIONs to expose the data returned by GetResult().

Member Typedef Documentation

◆ FResultId

typedef int32 UAtomAnalyzer::FResultId

ID to keep track of results. Useful for tracking most recent result when performing asynchronous processing.

◆ FResultSharedPtr

typedef TSharedPtr<Atom::IAnalyzerResult, ESPMode::ThreadSafe> UAtomAnalyzer::FResultSharedPtr

Thread safe shared point to result object.

Member Function Documentation

◆ BeginDestroy()

void UAtomAnalyzer::BeginDestroy ( )
overridevirtual

◆ BroadcastResults()

virtual void UAtomAnalyzer::BroadcastResults ( )
inlinevirtual

Function to broadcast results.

◆ DoAnalysis()

bool UAtomAnalyzer::DoAnalysis ( )
private

Does the actual analysis and casts the results to the derived classes type. Returns true if there results to broadcast.

◆ GetAnalyzerControls()

TSharedPtr< Atom::IAnalyzerControls > UAtomAnalyzer::GetAnalyzerControls ( ) const
virtual

Implementations can override this method to create controls objects specific for their analyzer.

◆ GetAnalyzerFactoryName()

virtual CRIWARECORE_API FName UAtomAnalyzer::GetAnalyzerFactoryName ( ) const
protectedvirtual

◆ GetResults()

template<class ResultType>
TUniquePtr< ResultType > UAtomAnalyzer::GetResults ( )
inlineprotected

◆ GetSettings()

TUniquePtr< Atom::IAnalyzerSettings > UAtomAnalyzer::GetSettings ( const int32 InSampleRate,
const int32 InNumChannels ) const
virtual

Implementations can override this method to create settings objects specific for their analyzer.

◆ GetSettingsFromProperty()

UAtomAnalyzerSettings * UAtomAnalyzer::GetSettingsFromProperty ( FProperty * Property)
private

◆ IsReadyForAnalysis()

bool UAtomAnalyzer::IsReadyForAnalysis ( ) const
private

Returns if this audio analyzer has enough audio queued up and is ready for analysis.

◆ StartAnalyzing() [1/2]

void UAtomAnalyzer::StartAnalyzing ( const FAtomRuntimeId InAtomRuntimeID,
UAtomAudioBus * AudioBusToAnalyze )

Starts analyzing using the given world.

◆ StartAnalyzing() [2/2]

void UAtomAnalyzer::StartAnalyzing ( const UObject * WorldContextObject,
UAtomAudioBus * AudioBusToAnalyze )

Starts analyzing audio from the given audio bus. Optionally override the Atom audio bus desired to analyze.

◆ StopAnalyzing()

void UAtomAnalyzer::StopAnalyzing ( const UObject * WorldContextObject = nullptr)

Stops analyzing audio.

◆ UAtomAnalyzerSubsystem

friend class UAtomAnalyzerSubsystem
friend

Member Data Documentation

◆ AnalysisBuffer

TArray<float> UAtomAnalyzer::AnalysisBuffer
private

◆ AnalysisTask

TSharedPtr<FAsyncTask<FAtomAnalyzeTask> > UAtomAnalyzer::AnalysisTask
private

◆ AnalyzerControls

TSharedPtr<Atom::IAnalyzerControls> UAtomAnalyzer::AnalyzerControls
private

◆ AnalyzerFacade

TUniquePtr<Atom::FAnalyzerFacade> UAtomAnalyzer::AnalyzerFacade
private

◆ AnalyzerFactory

Atom::IAnalyzerFactory* UAtomAnalyzer::AnalyzerFactory = nullptr
private

◆ AtomAnalyzerSubsystem

TObjectPtr<UAtomAnalyzerSubsystem> UAtomAnalyzer::AtomAnalyzerSubsystem
private

◆ AtomRuntimeSampleRate

int32 UAtomAnalyzer::AtomRuntimeSampleRate = 0
private

◆ AudioBus

TObjectPtr<UAtomAudioBus> UAtomAnalyzer::AudioBus

The UAtomAudioBus which is analyzed in real-time.

◆ NumBusChannels

int32 UAtomAnalyzer::NumBusChannels = 0
private

◆ NumFramesPerBufferToAnalyze

int32 UAtomAnalyzer::NumFramesPerBufferToAnalyze = 1024
protected

How many frames of audio to wait before analyzing the audio.

◆ PatchOutputStrongPtr

Audio::FPatchOutputStrongPtr UAtomAnalyzer::PatchOutputStrongPtr
private

◆ ResultsInternal

TUniquePtr<Atom::IAnalyzerResult> UAtomAnalyzer::ResultsInternal
private

The documentation for this class was generated from the following files:
  • C:/git/uev2/Engine/Plugins/Runtime/CriWare/CriWare/Source/CriWareCore/Public/Atom/Analyzers/AtomAnalyzer.h
  • C:/git/uev2/Engine/Plugins/Runtime/CriWare/CriWare/Source/CriWareCore/Private/Atom/Analyzers/AtomAnalyzer.cpp