14#include "SoundWaveScrubber.generated.h"
16#define UE_API AUDIOMIXER_API
52 float AudioMixerSampleRate = 0.0f;
53 float SourceFileSampleRate = 0.0f;
54 float SourceFileDurationSeconds = 0.0f;
55 int32 NumChannels = 0;
58 static constexpr float DecodedAudioSizeInSeconds = 1.0f;
63 float TargetPlayheadTimeSeconds = 0.0f;
66 float TimeSincePlayheadHasNotChanged = 0.0f;
73 struct FDecodedDataChunk
83 int32 NumGrainsUsingChunk = 0;
114 float GrainDurationSeconds = 0.0f;
117 int32 CurrentGrainDurationFrames = 0;
118 int32 CurrentHalfGrainDurationFrames = 0;
122 int32 GrainCount = 0;
124 int32 NumActiveGrains = 0;
135 int32 DecodedDataChunkIndex = 0;
141 int32 GrainDurationFrames = 0;
147 int32 NumFramesTillNextGrainSpawn = 0;
153 void UpdateGrainDecodeData(FGrain&
InGrain);
162 bool bIsScrubbing =
false;
163 bool bIsScrubbingDueToBeingStationary =
true;
166 bool bIsScrubbingWhileStationary =
true;
169 bool bHasErrorWithDecoder =
false;
198 int32 NumChannels = 0;
219 UFUNCTION(BlueprintCallable, Category =
"Scrubbing")
223 UFUNCTION(BlueprintCallable, Category = "Scrubbing")
227 UFUNCTION(BlueprintCallable, Category = "Scrubbing")
228 float GetPlayheadTime()
const {
return PlayheadTimeSeconds; }
231 UFUNCTION(BlueprintCallable, Category =
"Scrubbing")
235 UFUNCTION(BlueprintCallable, Category = "Scrubbing")
239 UFUNCTION(BlueprintCallable, Category = "Scrubbing")
243 float PlayheadTimeSeconds = 0.0f;
244 FVector2D GrainDurationRange = { 0.4f, 0.05f };
246 bool bIsScrubbing =
false;
247 bool bScrubWhileStationary =
true;
248 float StationaryTimeSeconds = 0.1f;
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
void Init()
Definition LockFreeList.h:4
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UE_API
Definition SColorGradingComponentViewer.h:12
Definition SoundWaveScrubber.h:174
UE_API void SetIsScrubbing(bool bInIsScrubbing)
Definition SoundWaveScrubber.cpp:463
virtual UE_API int32 OnGenerateAudio(float *OutAudio, int32 NumSamples) override
Definition SoundWaveScrubber.cpp:483
UE_API void SetIsScrubbingWhileStationary(bool bInScrubWhileStationary)
Definition SoundWaveScrubber.cpp:468
virtual UE_API bool IsFinished() const override
Definition SoundWaveScrubber.cpp:495
virtual UE_API int32 GetDesiredNumSamplesToRenderPerCallback() const override
Definition SoundWaveScrubber.cpp:490
UE_API void SetPlayheadTime(float InPlayheadTimeSeconds)
Definition SoundWaveScrubber.cpp:473
UE_API void SetGrainDurationRange(const FVector2D &InGrainDurationRange)
Definition SoundWaveScrubber.cpp:478
Definition SoundWaveScrubber.h:24
UE_API int32 RenderAudio(TArrayView< float > &OutAudio)
Definition SoundWaveScrubber.cpp:217
UE_API ~FSoundWaveScrubber()
Definition SoundWaveScrubber.cpp:20
UE_API void SetIsScrubbing(bool bInIsScrubbing)
Definition SoundWaveScrubber.cpp:188
UE_API FSoundWaveScrubber()
Definition SoundWaveScrubber.cpp:11
UE_API void SetPlayheadTime(float InPlayheadTimeSeconds)
Definition SoundWaveScrubber.cpp:198
UE_API void SetGrainDurationRange(const FVector2D &InGrainDurationRange)
Definition SoundWaveScrubber.cpp:205
UE_API void SetIsScrubbingWhileStationary(bool bInIsScrubWhileStationary)
Definition SoundWaveScrubber.cpp:193
Definition AudioDynamicParameter.h:10
Definition SoundGenerator.h:31
Definition ArrayView.h:139
Definition UniquePtr.h:107
Definition SoundWaveScrubber.h:208
ISoundGeneratorPtr GetSoundGenerator()
Definition SoundWaveScrubber.h:216
Definition SoundWave.h:417
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
Definition SoundGenerator.h:17
Definition ObjectPtr.h:488