Files
UnrealEngineUWP/Engine/Source/Runtime/Engine/Private/SoundNodeOscillator.cpp
marc audy 311f7464bf Updated ../Engine/Source/Runtime/... to inline gen.cpp files
Before:
3648 unity files
Total CPU Time: 47886.140625 s
Total time in Parallel executor: 498.81 seconds

After:
3548 unity files
Total CPU Time: 46643.828125 s
Total time in Parallel executor: 486.06 seconds

#jira
#preflight

[CL 22173263 by marc audy in ue5-main branch]
2022-09-24 13:57:58 -04:00

62 lines
2.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Sound/SoundNodeOscillator.h"
#include "ActiveSound.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(SoundNodeOscillator)
/*-----------------------------------------------------------------------------
USoundNodeOscillator implementation.
-----------------------------------------------------------------------------*/
USoundNodeOscillator::USoundNodeOscillator(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
AmplitudeMin = 0;
AmplitudeMax = 0;
FrequencyMin = 0;
FrequencyMax = 0;
OffsetMin = 0;
OffsetMax = 0;
CenterMin = 0;
CenterMax = 0;
bModulateVolume = false;
bModulatePitch = false;
}
void USoundNodeOscillator::ParseNodes( FAudioDevice* AudioDevice, const UPTRINT NodeWaveInstanceHash, FActiveSound& ActiveSound, const FSoundParseParameters& ParseParams, TArray<FWaveInstance*>& WaveInstances )
{
RETRIEVE_SOUNDNODE_PAYLOAD( sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) );
DECLARE_SOUNDNODE_ELEMENT( float, UsedAmplitude );
DECLARE_SOUNDNODE_ELEMENT( float, UsedFrequency );
DECLARE_SOUNDNODE_ELEMENT( float, UsedOffset );
DECLARE_SOUNDNODE_ELEMENT( float, UsedCenter );
if( *RequiresInitialization )
{
UsedAmplitude = AmplitudeMax + ( ( AmplitudeMin - AmplitudeMax ) * RandomStream.FRand() );
UsedFrequency = FrequencyMax + ( ( FrequencyMin - FrequencyMax ) * RandomStream.FRand() );
UsedOffset = OffsetMax + ( ( OffsetMin - OffsetMax ) * RandomStream.FRand() );
UsedCenter = CenterMax + ( ( CenterMin - CenterMax ) * RandomStream.FRand() );
*RequiresInitialization = 0;
}
FSoundParseParameters UpdatedParams = ParseParams;
const float ModulationFactor = UsedCenter + UsedAmplitude * FMath::Sin( UsedOffset + UsedFrequency * ActiveSound.PlaybackTime * UE_PI );
if( bModulateVolume )
{
UpdatedParams.Volume *= ModulationFactor;
}
if( bModulatePitch )
{
UpdatedParams.Pitch *= ModulationFactor;
}
Super::ParseNodes( AudioDevice, NodeWaveInstanceHash, ActiveSound, UpdatedParams, WaveInstances );
}