UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AudioDevice.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "AudioDeviceHandle.h"
7#include "AudioMixerTrace.h"
8#include "AudioVirtualLoop.h"
11#include "Math/Transform.h"
12#include "Math/Vector.h"
14#include "Sound/AudioVolume.h"
15#include "Sound/SoundClass.h"
16#include "Sound/SoundMix.h"
19
20
25class FArchive;
26class FAudioDevice;
28class FCanvas;
29class FOutputDevice;
31class FSoundBuffer;
32class FViewport;
33class FViewportClient;
37class UReverbEffect;
39class USoundBase;
40class USoundClass;
44class USoundMix;
47class USoundSourceBus;
48class USoundWave;
49class UWorld;
50
51struct FActiveSound;
59struct FSoundGroup;
63struct FWaveInstance;
64
65namespace Audio
66{
67 class FPatchInput;
68 struct FPatchOutput;
70}
71
72namespace Audio
73{
74 class FAudioDebugger;
75
78
81}
82
87{
88 // No debug sounds
90 // No reverb sounds
92 // Only reverb sounds
94 // Force LPF on all sources
96 // Force LPF on all sources
98 // Bleed all sounds to the LFE speaker
100 // Disable any LPF filter effects
102 // Disable any LPF filter effects
104 // Disable any radio filter effects
107};
108
113{
114 enum Type
115 {
116 // Waiting to fade in
118 // Fading in
120 // Fully active
122 // Fading out
124 // Time elapsed, just about to be removed
126 };
127
128 static const TCHAR* GetString(ESoundMixState::Type InType)
129 {
130 switch (InType)
131 {
132 case ESoundMixState::Inactive: return TEXT("Inactive");
133 case ESoundMixState::FadingIn: return TEXT("FadingIn");
134 case ESoundMixState::Active: return TEXT("Active");
135 case ESoundMixState::FadingOut: return TEXT("FadingOut");
136 case ESoundMixState::AwaitingRemoval: return TEXT("AwaitingRemoval");
137 default: return TEXT("unknown");
138 }
139 }
140}
141
151
156{
159
162
165
167
170
173
176
188
192
196 FVector GetPosition(bool bAllowOverride) const;
197
201 float Interpolate(const double EndTime);
202
207
212
232
233private:
234 FListener();
235};
236
271
290
304
327
330
341
372
373/*
374* Setting for global focus scaling
375*/
399
402{
403public:
404 virtual void OnDeviceRemoved(FString DeviceID) = 0;
405 virtual void OnDefaultDeviceChanged() = 0;
406};
407
412
415
416class FAudioDevice : public FExec
417{
418public:
419
420 //Begin FExec Interface
421#if UE_ALLOW_EXEC_COMMANDS
422 ENGINE_API virtual bool Exec(UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Ar = *GLog) override;
423#endif
424 //End FExec Interface
425
426#if !UE_BUILD_SHIPPING
429
430private:
434 bool HandleDumpSoundInfoCommand(const TCHAR* Cmd, FOutputDevice& Ar);
438 bool HandleListWavesCommand(const TCHAR* Cmd, FOutputDevice& Ar);
442 bool HandleListSoundClassesCommand(const TCHAR* Cmd, FOutputDevice& Ar);
446 bool HandleShowSoundClassHierarchyCommand(const TCHAR* Cmd, FOutputDevice& Ar);
447 bool HandleListSoundClassVolumesCommand(const TCHAR* Cmd, FOutputDevice& Ar);
448 bool HandleListAudioComponentsCommand(const TCHAR* Cmd, FOutputDevice& Ar);
449 bool HandleListSoundDurationsCommand(const TCHAR* Cmd, FOutputDevice& Ar);
450 bool HandleSoundTemplateInfoCommand(const TCHAR* Cmd, FOutputDevice& Ar);
451 bool HandleSetBaseSoundMixCommand(const TCHAR* Cmd, FOutputDevice& Ar);
452 bool HandleIsolateDryAudioCommand(const TCHAR* Cmd, FOutputDevice& Ar);
453 bool HandleIsolateReverbCommand(const TCHAR* Cmd, FOutputDevice& Ar);
454 bool HandleTestLPFCommand(const TCHAR* Cmd, FOutputDevice& Ar);
455 bool HandleTestHPFCommand(const TCHAR* Cmd, FOutputDevice& Ar);
456 bool HandleTestLFEBleedCommand(const TCHAR* Cmd, FOutputDevice& Ar);
457 bool HandleDisableLPFCommand(const TCHAR* Cmd, FOutputDevice& Ar);
458 bool HandleDisableHPFCommand(const TCHAR* Cmd, FOutputDevice& Ar);
459 bool HandleDisableRadioCommand(const TCHAR* Cmd, FOutputDevice& Ar);
460 bool HandleEnableRadioCommand(const TCHAR* Cmd, FOutputDevice& Ar);
461 bool HandleResetSoundStateCommand(const TCHAR* Cmd, FOutputDevice& Ar);
462 bool HandleToggleSpatializationExtensionCommand(const TCHAR* Cmd, FOutputDevice& Ar);
463 bool HandleEnableHRTFForAllCommand(const TCHAR* Cmd, FOutputDevice& Ar);
464 bool HandleSoloCommand(const TCHAR* Cmd, FOutputDevice& Ar);
465 bool HandleClearSoloCommand(const TCHAR* Cmd, FOutputDevice& Ar);
466 bool HandlePlayAllPIEAudioCommand(const TCHAR* Cmd, FOutputDevice& Ar);
467 bool HandleAudio3dVisualizeCommand(const TCHAR* Cmd, FOutputDevice& Ar);
468 bool HandleAudioMemoryInfo(const TCHAR* Cmd, FOutputDevice& Ar);
469 bool HandleAudioSoloSoundClass(const TCHAR* Cmd, FOutputDevice& Ar);
470 bool HandleAudioSoloSoundWave(const TCHAR* Cmd, FOutputDevice& Ar);
471 bool HandleAudioSoloSoundCue(const TCHAR* Cmd, FOutputDevice& Ar);
472 bool HandleAudioMixerDebugSound(const TCHAR* Cmd, FOutputDevice& Ar);
473 bool HandleSoundClassFixup(const TCHAR* Cmd, FOutputDevice& Ar);
474 bool HandleAudioDebugSound(const TCHAR* Cmd, FOutputDevice& Ar);
475 bool HandleResetAllDynamicSoundVolumesCommand(const TCHAR* Cmd, FOutputDevice& Ar);
476 bool HandleResetDynamicSoundVolumeCommand(const TCHAR* Cmd, FOutputDevice& Ar);
477 bool HandleGetDynamicSoundVolumeCommand(const TCHAR* Cmd, FOutputDevice& Ar);
478 bool HandleSetDynamicSoundCommand(const TCHAR* Cmd, FOutputDevice& Ar);
479
481 using FToggleSoloPtr = void (Audio::FAudioDebugger::*)(FName InName, bool bExclusive);
482 void HandleAudioSoloCommon(const TCHAR* Cmd, FOutputDevice& Ar, FToggleSoloPtr Funct);
483
487 void ShowSoundClassHierarchy(FOutputDevice& Ar, USoundClass* SoundClass = nullptr, int32 Indent = 0) const;
488
492 void GetSoundClassInfo(TMap<FName, FAudioClassInfo>& AudioClassInfos);
493#endif
494
495#if UE_AUDIO_PROFILERTRACE_ENABLED
496 void OnTraceStarted(FTraceAuxiliary::EConnectionType TraceType, const FString& TraceDestination);
497#endif // UE_AUDIO_PROFILERTRACE_ENABLED
498
499public:
500
505
507
512
515
519 ENGINE_API bool Init(Audio::FDeviceId InDeviceID, int32 InMaxSources, int32 BufferSizeOverride = INDEX_NONE, int32 NumBuffersOverride = INDEX_NONE);
520
525
530
534 ENGINE_API void Teardown();
535
540
544 ENGINE_API void Update(bool bGameTicking);
545
547 virtual void UpdateGameThread() {}
548
555
559 ENGINE_API virtual void CountBytes(FArchive& Ar);
560
565
572
575
577 virtual void FadeOut() {}
578 virtual void FadeIn() {}
579
584
585 /*
586 * Derived classes can override this method to do their own cleanup. Called at the end of FAudioDevice::Flush()
587 */
589
595
597
605
606 ENGINE_API static bool LegacyReverbDisabled();
607
608#if WITH_EDITOR
610 ENGINE_API void OnBeginPIE(const bool bIsSimulating);
611
613 ENGINE_API void OnEndPIE(const bool bIsSimulating);
614#endif
615
624 ENGINE_API virtual void Precache(USoundWave* SoundWave, bool bSynchronous = false, bool bTrackMemory = true, bool bForceFullDecompression = false);
625
626 UE_DEPRECATED(5.7, "With PCM audio caching removed, this hueristic is no longer used.")
628
632 UE_DEPRECATED(5.7, "Most of these arguments are no longer used, replace calls with the caller's value for bForceFullDecompression")
634
639
644
649
652
656
661
667 UE_DEPRECATED(5.5, "No longer needed for resource managment, existing calls may be deleted")
669
676
684 ENGINE_API void SetListener(UWorld* World, int32 InListenerIndex, const FTransform& ListenerTransform, float InDeltaSeconds);
685
688
691
693
698 {
700 return CurrentReverbEffect;
701 }
702
704 {
706 ENGINE_API FCreateComponentParams(UWorld* World, AActor* Actor = nullptr);
709
711 TSubclassOf<UAudioComponent> AudioComponentClass = UAudioComponent::StaticClass();
714 bool bPlay;
716
717 ENGINE_API void SetLocation(FVector Location);
718 ENGINE_API bool ShouldUseAttenuation() const;
719
720 private:
721 UWorld* World;
722 AActor* Actor;
723 FAudioDevice* AudioDevice;
724
725 bool bLocationSet;
726 FVector Location;
727
728 ENGINE_API void CommonInit();
729
730 friend FAudioDevice;
731 };
732
740
754 ENGINE_API void PlaySoundAtLocation(USoundBase* Sound, UWorld* World, float VolumeMultiplier, float PitchMultiplier, float StartTime, const FVector& Location, const FRotator& Rotation, USoundAttenuation* AttenuationSettings = nullptr, USoundConcurrency* ConcurrencySettings = nullptr, const TArray<FAudioParameter>* Params = nullptr, const AActor* OwningActor = nullptr);
756 ENGINE_API void PlaySoundAtLocation(USoundBase* Sound, UWorld* World, float VolumeMultiplier, float PitchMultiplier, float StartTime, const FVector& Location, const FRotator& Rotation, USoundAttenuation* AttenuationSettings, USoundConcurrency* Concurrency, TArray<FAudioParameter>&& Params, const AActor* OwningActor = nullptr);
757
758
762 ENGINE_API void AddNewActiveSound(const FActiveSound& ActiveSound, const TArray<FAudioParameter>* InDefaultParams = nullptr, const FString* EventLogID = nullptr);
763
768
772 UE_DEPRECATED(5.7, "Use AddNewActiveSound which accepts a TSharedRef<>")
774
779
783 ENGINE_API void StopActiveSound(uint64 AudioComponentID, const FString* EventLogID = nullptr);
784
788 ENGINE_API void StopActiveSound(FActiveSound* ActiveSound, const FString* EventLogID = nullptr);
789
793 ENGINE_API void PauseActiveSound(uint64 AudioComponentID, const bool bInIsPaused);
794
796 ENGINE_API void NotifyActiveSoundOcclusionTraceDone(FActiveSound* ActiveSound, bool bIsOccluded);
797
803 UE_DEPRECATED(5.0, "This call cannot be called from the GameThread & AudioComponents can now execute multiple ActiveSound instances at once. Use 'SendCommandToActiveSounds' instead.")
805
810 ENGINE_API bool CanHaveMultipleActiveSounds(uint64 AudioComponentID) const;
811
817
821 ENGINE_API void RemoveActiveSound(FActiveSound* ActiveSound);
822
824 ENGINE_API void RemoveAudioVolumeProxy(uint32 AudioVolumeID);
826
837
838 ENGINE_API void GetAudioVolumeSettings(const uint32 WorldID, const FVector& Location, FAudioVolumeSettings& OutSettings) const;
840
845
850
854 UE_DEPRECATED(5.3, "NotifyPending is deprecated in public scope. Use IActiveSoundUpdateInterface::NotifyActiveSoundDeleting instead.")
855 void NotifyPendingDelete(FActiveSound& ActiveSound) const {}
856
857protected:
858
864
871
877
884
885 UE_DEPRECATED(5.5, "NotifyAddActiveSound is deprecated. Use NotifySubsystemsActiveSoundCreated instead.")
887 {
889 }
890
891 UE_DEPRECATED(5.5, "NotifyPendingDeleteInternal is deprecated. Use NotifySubsystemsActiveSoundDeleting and/or NotifySubsystemsVirtualizedSoundDeleting instead.")
893 {
895 }
896
897 UE_DEPRECATED(5.7, "NotifySubsystemsSetOwner is deprecated. Use ActiveSound.GetOwnerKey instead.")
898 ENGINE_API void NotifySubsystemsSetOwner(FActiveSound& ActiveSound, const UObject* Owner) const;
899
900public:
901
906
911
915 EDebugState GetMixDebugState() const { return((EDebugState)DebugState); }
916
917 ENGINE_API void SetMixDebugState(EDebugState DebugState);
918
923
924protected:
930
933
934 // Handle for our device created delegate
936
937 // Handle for our device destroyed delegate
939
941
942 // Callback as audio device is about to render a buffer
944
945 // Callback as audio device has just finished rendering a buffer
947
948public:
956
961
963 virtual void InitSoundSubmixes() {}
964
966 virtual void RegisterSoundSubmix(USoundSubmixBase* SoundSubmix, bool bInit) {}
967
969 virtual void UnregisterSoundSubmix(const USoundSubmixBase* SoundSubmix, const bool bReparentChildren) {}
970
972
973 UE_DEPRECATED(5.4, "Use RegisterSubmixBufferListener version that requires a shared reference to a listener and provide explicit reference to a submix: use GetMainSubmixObject to register with the Main Output Submix (rather than nullptr for safety), and instantiate buffer listener via the shared pointer API.")
975
976 UE_DEPRECATED(5.4, "Use UnregisterSubmixBufferListener version that requires a shared reference to a listener and provide explicit reference to a submix: use GetMainSubmixObject to unregister from the Main Output Submix (rather than nullptr for safety), and instantiate buffer listener via the shared pointer API.")
978
983
988
989
991
993
995
1003
1008
1012 ENGINE_API bool LocationIsAudible(const FVector& Location, const float MaxDistance) const;
1013
1017 ENGINE_API bool LocationIsAudible(const FVector& Location, int32 ListenerIndex, const float MaxDistance) const;
1018
1022 ENGINE_API float GetDistanceToNearestListener(const FVector& Location) const;
1023
1028 ENGINE_API bool GetDistanceSquaredToListener(const FVector& Location, int32 ListenerIndex, float& OutSqDistance) const;
1029
1034 ENGINE_API bool GetDistanceSquaredToNearestListener(const FVector& Location, float& OutSqDistance) const;
1035
1040
1049 ENGINE_API bool GetListenerPosition(int32 ListenerIndex, FVector& OutPosition, bool bAllowOverride) const;
1050
1054 ENGINE_API bool GetListenerTransform(int32 ListenerIndex, FTransform& OutTransform) const;
1055
1059 ENGINE_API bool GetListenerWorldID(int32 ListenerIndex, uint32& OutWorldID) const;
1060
1065
1069 ENGINE_API void RemoveSoundMix(USoundMix* SoundMix);
1070
1075
1077 ENGINE_API void EnableRadioEffect(bool bEnable = false);
1078
1083 ENGINE_API void SetBaseSoundMix(USoundMix* SoundMix);
1084
1092
1096 ENGINE_API void SetSoundMixClassOverride(USoundMix* InSoundMix, USoundClass* InSoundClass, float Volume, float Pitch, float FadeInTime, bool bApplyToChildren);
1097
1102
1110
1117
1122
1130 ENGINE_API void ActivateReverbEffect(UReverbEffect* ReverbEffect, FName TagName, float Priority, float Volume, float FadeTime);
1131
1138
1141
1143 UE_DEPRECATED(5.7, "Realtime decpmpression is available on all platforms")
1145 {
1146 return true;
1147 }
1148
1150 UE_DEPRECATED(5.7, "PCM Audio Caching is a leagacy feature that is now disabled for all platforms")
1152 {
1153 return true;
1154 }
1155
1159 virtual bool ValidateAPICall(const TCHAR* Function, uint32 ErrorCode)
1160 {
1161 return true;
1162 }
1163
1165 {
1167 return ActiveSounds;
1168 }
1169
1172
1174 virtual void SuspendContext() {}
1175
1177 virtual void ResumeContext() {}
1178
1180 virtual bool IsExernalBackgroundSoundActive() { return false; }
1181
1183 ENGINE_API bool IsHRTFEnabledForAll() const;
1184
1186 {
1188
1189 bHRTFEnabledForAll_OnGameThread = bNewHRTFEnabledForAll;
1190
1191 DECLARE_CYCLE_STAT(TEXT("FAudioThreadTask.SetHRTFEnabledForAll"), STAT_SetHRTFEnabledForAll, STATGROUP_AudioThreadCommands);
1192
1193 FAudioDevice* AudioDevice = this;
1195 {
1196 AudioDevice->bHRTFEnabledForAll = bNewHRTFEnabledForAll;
1197
1199 }
1200
1202 ENGINE_API bool IsHRTFDisabled() const;
1203
1205 {
1207
1208 bHRTFDisabled_OnGameThread = bNewHRTFDisabled;
1209
1210 DECLARE_CYCLE_STAT(TEXT("FAudioThreadTask.SetHRTFDisabled"), STAT_SetHRTFDisabled, STATGROUP_AudioThreadCommands);
1211
1212 FAudioDevice* AudioDevice = this;
1214 {
1215 AudioDevice->bHRTFDisabled = bNewHRTFDisabled;
1216
1218 }
1219
1228
1231
1234
1235 ENGINE_API bool IsAudioDeviceMuted() const;
1236
1237 ENGINE_API void SetDeviceMuted(bool bMuted);
1238
1240 ENGINE_API void GetAzimuth(const FAttenuationListenerData& OutListenerData, float& OutAzimuth, float& AbsoluteAzimuth) const;
1241
1243 ENGINE_API float GetFocusFactor(const float Azimuth, const FSoundAttenuationSettings& AttenuationSettings) const;
1244
1247
1259 ENGINE_API bool SoundIsAudible(USoundBase* Sound, const UWorld* World, const FVector& Location, const FSoundAttenuationSettings* AttenuationSettingsToApply, float MaxDistance, float FocusFactor) const;
1260
1263
1265 ENGINE_API int32 FindClosestListenerIndex(const FTransform& SoundTransform) const;
1267
1270
1272 virtual double GetAudioTime() const
1273 {
1274 return 0.0;
1275 }
1276
1279 {
1280 }
1281
1284
1287
1290
1292 virtual int32 GetNumActiveSources() const { return 0; }
1293
1295 int32 GetNumFreeSources() const { return Sources.Num(); }
1296
1298 float GetSampleRate() const { return (float)(SampleRate); }
1299
1302
1305
1308 {
1309 return bSpatializationInterfaceEnabled;
1310 }
1311
1314
1317
1323
1325 struct FAudioSpatializationInterfaceInfo;
1326 ENGINE_API FAudioSpatializationInterfaceInfo GetCurrentSpatializationPluginInterfaceInfo();
1327
1329
1332 {
1333 return bModulationInterfaceEnabled;
1334 }
1335
1338 {
1339 return bOcclusionInterfaceEnabled;
1340 }
1341
1342 ENGINE_API static bool IsOcclusionPluginLoaded();
1343
1346 {
1347 return bReverbInterfaceEnabled;
1348 }
1349
1350 ENGINE_API static bool IsReverbPluginLoaded();
1351
1353 {
1354 return bSourceDataOverrideInterfaceEnabled;
1355 }
1356
1358
1361 {
1363 }
1364
1367 {
1369 }
1370
1373
1374 virtual bool IsNonRealtime() const
1375 {
1376 return false;
1377 }
1378
1380 virtual void UpdateSourceEffectChain(const uint32 SourceEffectChainId, const TArray<FSourceEffectChainEntry>& SourceEffectChain, const bool bPlayEffectChainTails) {}
1381
1384
1387 {
1388 UE_LOG(LogAudio, Error, TEXT("Submixes are only supported in audio mixer."));
1389 }
1390
1393 {
1394 UE_LOG(LogAudio, Error, TEXT("Submix recording only works with the audio mixer. Please run using -audiomixer to or set INI file use submix recording."));
1395 }
1396
1399 {
1400 UE_LOG(LogAudio, Error, TEXT("Submix recording only works with the audio mixer. Please run using -audiomixer to or set INI file use submix recording."));
1401
1403 return InvalidBuffer;
1404 }
1405
1408 {
1409 UE_LOG(LogAudio, Error, TEXT("Envelope following submixes only works with the audio mixer. Please run using -audiomixer or set INI file to use submix recording."));
1410 }
1411
1414 {
1415 UE_LOG(LogAudio, Error, TEXT("Envelope following submixes only works with the audio mixer. Please run using -audiomixer or set INI file to use submix recording."));
1416 }
1417
1419 virtual void SetSubmixWetDryLevel(USoundSubmix* InSoundSubmix, float InOutputVolume, float InWetLevel, float InDryLevel)
1420 {
1421 UE_LOG(LogAudio, Error, TEXT("Submixes are only supported in audio mixer."));
1422 }
1423
1426 {
1427 UE_LOG(LogAudio, Error, TEXT("Submixes are only supported in audio mixer."));
1428 }
1429
1432 {
1433 UE_LOG(LogAudio, Error, TEXT("Submixes are only supported in audio mixer."));
1434 }
1435
1436 UE_DEPRECATED(5.1, "UpdateSubmixModulationSettings taking single modulators is deprecated. Use the overload that allows for modulator sets")
1438 {
1439 UE_LOG(LogAudio, Error, TEXT("Submixes are only supported in audio mixer & 'UpdateSubmixModulationSettings' function taking single modulators no longer supported."));
1440 }
1441
1446
1448 {
1449 UE_LOG(LogAudio, Error, TEXT("Submixes are only supported in audio mixer."));
1450 }
1451
1453 virtual void SetSubmixOutputVolume(USoundSubmix* InSoundSubmix, float InOutputVolume)
1454 {
1455 UE_LOG(LogAudio, Error, TEXT("Submixes are only supported in audio mixer."));
1456 }
1457
1459 virtual void SetSubmixWetLevel(USoundSubmix* InSoundSubmix, float InWetLevel)
1460 {
1461 UE_LOG(LogAudio, Error, TEXT("Submixes are only supported in audio mixer."));
1462 }
1463
1465 virtual void SetSubmixDryLevel(USoundSubmix* InSoundSubmix, float InDryLevel)
1466 {
1467 UE_LOG(LogAudio, Error, TEXT("Submixes are only supported in audio mixer."));
1468 }
1469
1472 {
1473 UE_LOG(LogAudio, Error, TEXT("Submixes are only supported in audio mixer."));
1474 }
1475
1478 {
1479 UE_LOG(LogAudio, Error, TEXT("Submixes are only supported in audio mixer."));
1480 }
1481
1485
1492
1493
1494protected:
1495 friend class FSoundSource;
1496
1500 ENGINE_API void HandlePause(bool bGameTicking, bool bGlobalPause = false);
1501
1507
1512
1517
1519
1521
1522private:
1523
1529
1530
1536
1541
1545 void ReportSoundFailedToStart(const uint64 AudioComponentID, FAudioVirtualLoop* VirtualLoop);
1546
1553 void InitializePluginListeners(UWorld* World);
1554
1561 void NotifyPluginListenersWorldChanged(UWorld* World);
1562
1566 void ParseSoundClasses(float InDeltaTime);
1567
1570 void UpdateConcurrency(TArray<FWaveInstance*>& WaveInstances, TArray<FActiveSound*>& ActiveSoundsCopy);
1571
1578
1579
1586 bool ApplySoundMix(USoundMix* NewMix, FSoundMixState* SoundMixState);
1587
1594 void UpdateSoundMix(USoundMix* SoundMix, FSoundMixState* SoundMixState);
1595
1602 void UpdatePassiveSoundMixModifiers(TArray<FWaveInstance*>& WaveInstances, int32 FirstActiveIndex);
1603
1612 bool TryClearingSoundMix(USoundMix* SoundMix, FSoundMixState* SoundMixState);
1613
1621 bool TryClearingEQSoundMix(USoundMix* SoundMix);
1622
1630 USoundMix* FindNextHighestEQPrioritySoundMix(USoundMix* IgnoredSoundMix);
1631
1635 void ClearSoundMix(USoundMix* SoundMix);
1636
1644 void ApplyClassAdjusters(USoundMix* SoundMix, float InterpValue, float DeltaTime);
1645
1652 void UpdateSoundClassProperties(float DeltaTime);
1653
1654 void VirtualizeInactiveLoops();
1655
1662 void RecursiveApplyAdjuster(const FSoundClassAdjuster& InAdjuster, USoundClass* InSoundClass);
1663
1667 float InterpolateAdjuster(const float Adjuster, const float InterpValue) const
1668 {
1669 return Adjuster * InterpValue + 1.0f - InterpValue;
1670 }
1671
1673 float GetInterpolatedFrequency(const float InFrequency, const float InterpValue) const;
1674
1676 virtual FAudioPlatformSettings GetPlatformSettings() const { return FAudioPlatformSettings(); }
1677
1679 void UpdateAudioVolumeEffects();
1680
1682 void UpdateAudioEngineSubsystems();
1683
1684#if UE_AUDIO_PROFILERTRACE_ENABLED
1687
1690#endif // UE_AUDIO_PROFILERTRACE_ENABLED
1691
1692public:
1693
1697 ENGINE_API void* InitEffect(FSoundSource* Source);
1698
1703 ENGINE_API void* UpdateEffect(FSoundSource* Source);
1704
1709
1714 {
1716 return Effects;
1717 }
1718
1723 {
1725 return Effects;
1726 }
1727
1729 {
1730 return ObjectPtrDecay(SoundMixModifiers);
1731 }
1732
1734 {
1735 return ObjectPtrDecay(PrevPassiveSoundMixModifiers);
1736 }
1737
1739 {
1740 return DefaultBaseSoundMix;
1741 }
1742
1749
1750 ENGINE_API FDelegateHandle AddPreRenderDelegate(const FOnAudioDevicePreRender::FDelegate& InDelegate);
1751
1753
1754 ENGINE_API FDelegateHandle AddPostRenderDelegate(const FOnAudioDevicePostRender::FDelegate& InDelegate);
1755
1757
1758private:
1765 void RecurseIntoSoundClasses(USoundClass* CurrentClass, FSoundClassProperties& ParentProperties);
1766
1770 void UpdateHighestPriorityReverb();
1771
1772 void SendUpdateResultsToGameThread(int32 FirstActiveIndex);
1773
1774public:
1775
1776// If we make FAudioDevice not be subclassable, then all the functions following would move to IAudioDeviceModule
1777
1779 virtual bool InitializeHardware()
1780 {
1781 return true;
1782 }
1783
1785 virtual void TeardownHardware()
1786 {
1787 }
1788
1791 {
1792 }
1793
1795 virtual void UpdateHardware()
1796 {
1797 }
1798
1801
1804
1810
1814 ENGINE_API bool IsPendingStop(FActiveSound* ActiveSound);
1815
1823
1825 ENGINE_API float GetDeviceDeltaTime() const;
1826
1828 ENGINE_API float GetGameDeltaTime() const;
1829
1831 ENGINE_API bool IsUsingListenerAttenuationOverride(int32 ListenerIndex) const;
1832
1834 ENGINE_API const FVector& GetListenerAttenuationOverride(int32 ListenerIndex) const;
1835
1836 ENGINE_API void UpdateVirtualLoops(bool bForceUpdate);
1837
1840 {
1841 const double CurrTime = FPlatformTime::Seconds();
1842 DeviceDeltaTime = UE_REAL_TO_FLOAT(CurrTime - LastUpdateTime);
1843 LastUpdateTime = CurrTime;
1844 }
1845
1846private:
1848 void ProcessingPendingActiveSoundStops(bool bForceDelete = false);
1849
1851 void StopOldestStoppingSource();
1852
1854 bool ShouldUseAttenuation(const UWorld* World) const;
1855
1857 int32 GetNumPrecacheFrames() const;
1858
1860 void UpdateUnpreparedSound(FWaveInstance* WaveInstance, bool bGameTicking) const;
1861
1863 void UpdateSoundDuration(FWaveInstance* WaveInstance, bool bGameTicking) const;
1864
1865 bool RemoveVirtualLoop(FActiveSound& ActiveSound);
1866public:
1867
1869 ENGINE_API static bool CanUseVRAudioDevice();
1870
1872 double GetAudioClock() const { return AudioClock; }
1873
1877 virtual double GetInterpolatedAudioClock() const { return GetAudioClock(); }
1878
1880
1881 bool AreStartupSoundsPreCached() const { return bStartupSoundsPreCached; }
1882
1883 UE_DEPRECATED(5.1, "GetTransientMasterVolume has been deprecated. Please use GetTransientPrimaryVolume instead.")
1884 float GetTransientMasterVolume() const { check(IsInAudioThread()); return TransientPrimaryVolume; }
1885
1886 UE_DEPRECATED(5.1, "SetTransientMasterVolume has been deprecated. Please use SetTransientPrimaryVolume instead.")
1887 ENGINE_API void SetTransientMasterVolume(float TransientPrimaryVolume);
1888
1889 UE_DEPRECATED(5.1, "GetMasterVolume has been deprecated. Please use GetPrimaryVolume instead.")
1890 float GetMasterVolume() const { return PrimaryVolume; }
1891
1892 float GetTransientPrimaryVolume() const { check(IsInAudioThread()); return TransientPrimaryVolume; }
1893 ENGINE_API void SetTransientPrimaryVolume(float TransientPrimaryVolume);
1894
1896 float GetPrimaryVolume() const { return PrimaryVolume; }
1897
1899
1902
1903 const FDynamicParameter& GetGlobalPitchScale() const { check(IsInAudioThread()); return GlobalPitchScale; }
1904 ENGINE_API void SetGlobalPitchModulation(float PitchScale, float TimeSec);
1905 ENGINE_API float ClampPitch(float InPitchScale) const;
1906
1908 ENGINE_API void SetSoundClassDistanceScale(USoundClass* InSoundClass, float DistanceScale, float TimeSec);
1909
1910 float GetPlatformAudioHeadroom() const { check(IsInAudioThread()); return PlatformAudioHeadroom; }
1912
1914
1916 bool PlayWhenSilentEnabled() const { return bAllowPlayWhenSilent; }
1917
1918 ENGINE_API bool IsMainAudioDevice() const;
1919
1925
1927
1929 float GetDefaultReverbSendLevel() const { return DefaultReverbSendLevel; }
1930
1932
1934 ENGINE_API void SetAudioStateProperty(const FName& PropertyName, const FName& PropertyValue);
1935
1941
1943 template <typename TSubsystemClass>
1945 {
1946 return SubsystemCollection.GetSubsystem<TSubsystemClass>(TSubsystemClass::StaticClass());
1947 }
1948
1953 template <typename TSubsystemClass>
1955 {
1956 if (InHandle.IsValid())
1957 {
1958 return InHandle->GetSubsystem<TSubsystemClass>();
1959 }
1960 return nullptr;
1961 }
1962
1966 template <typename TSubsystemClass>
1968 {
1969 return SubsystemCollection.GetSubsystemArrayCopy<TSubsystemClass>(TSubsystemClass::StaticClass());
1970 }
1971
1975 template <typename TSubsystemClass>
1976 void ForEachSubsystem(TFunctionRef<void(TSubsystemClass*)> Operation) const
1977 {
1978 ((FSubsystemCollection<UAudioEngineSubsystem>&)SubsystemCollection).ForEachSubsystem(
1979 [Operation=MoveTemp(Operation)](UAudioEngineSubsystem* Subsystem){
1980 Operation(CastChecked<TSubsystemClass>(Subsystem));
1981 }, TSubsystemClass::StaticClass());
1982 }
1983
1984public:
1985
1988
1991
1994
1997
2000
2016
2017 UE_DEPRECATED(5.1, "Do not access this member directly, it is not used. Call GetSpatializationPluginInterface() instead.")
2019
2020protected:
2025
2028
2029public:
2032
2035
2038
2041
2044
2045 // Game thread cache of listener transforms
2047
2048private:
2050 int32 MaxSources;
2051
2053 int32 MaxChannels;
2054 int32 MaxChannels_GameThread;
2055
2057 float MaxChannelsScale;
2058 float MaxChannelsScale_GameThread;
2059
2060 uint64 CurrentTick;
2061
2063 TStrongObjectPtr<UAudioComponent> TestAudioComponent;
2064
2066 TEnumAsByte<enum EDebugState> DebugState;
2067
2069 float TransientPrimaryVolume;
2070
2072 float PrimaryVolume;
2073
2075 FDynamicParameter GlobalPitchScale;
2076
2078 FGlobalFocusSettings GlobalFocusSettings;
2079 FGlobalFocusSettings GlobalFocusSettings_GameThread;
2080
2082 double LastUpdateTime;
2083
2085 int32 NextResourceID;
2086
2087protected:
2088 // Audio thread representation of listeners
2090
2093
2094private:
2095
2097 TStrongObjectPtr<UAudioSubsystemCollectionRoot> SubsystemCollectionRoot;
2098
2100 FAudioSubsystemCollection SubsystemCollection;
2101
2103 TMap<FWaveInstance*, FSoundSource*> WaveInstanceSourceMap;
2104
2106 TMap<USoundClass*, FSoundClassProperties> SoundClasses;
2107 TMap<USoundClass*, FSoundClassDynamicProperties> DynamicSoundClassProperties;
2108
2110 USoundMix* BaseSoundMix;
2111
2113 TObjectPtr<USoundMix> DefaultBaseSoundMix;
2114
2116 TMap<TObjectPtr<USoundMix>, FSoundMixState> SoundMixModifiers;
2117
2119 TMap<USoundMix*, FSoundMixClassOverrideMap> SoundMixClassEffectOverrides;
2120
2121protected:
2124
2125private:
2126 UReverbEffect* CurrentReverbEffect;
2127
2129 float PlatformAudioHeadroom;
2130
2132 float DefaultReverbSendLevel;
2133
2135 TMap<FName, FActivatedReverb> ActivatedReverbs;
2136
2138 TSharedPtr<FActivatedReverb> PendingActivatedReverb;
2139
2141 FActivatedReverb HighestPriorityActivatedReverb_AudioThread;
2142
2144 FAudioVolumeSettings CurrentAudioVolumeSettings;
2145
2147 bool bHRTFEnabledForAll_OnGameThread;
2148
2150 bool bHRTFDisabled_OnGameThread;
2151
2152 uint8 bGameWasTicking:1;
2153
2154public:
2156 UE_DEPRECATED(5.7, "bDisableAudioCaching has no effect and will be removed in 5.8")
2158
2161
2163
2166
2169
2173
2174// deprecate these as they have been moved to the info struct.
2175
2176 UE_DEPRECATED(5.1, "This member is no longer in use. Use the return value of GetCurrentSpatializationPluginInterfaceInfo()")
2178
2180 UE_DEPRECATED(5.1, "This member is no longer in use. Use the return value of GetCurrentSpatializationPluginInterfaceInfo()")
2182
2183
2184
2185private:
2187 uint8 bStartupSoundsPreCached:1;
2188
2190 uint8 bSpatializationInterfaceEnabled:1;
2191 uint8 bOcclusionInterfaceEnabled:1;
2192 uint8 bReverbInterfaceEnabled:1;
2193 uint8 bSourceDataOverrideInterfaceEnabled:1;
2194 uint8 bModulationInterfaceEnabled:1;
2195
2197 uint8 bPluginListenersInitialized:1;
2198
2200 uint8 bHRTFEnabledForAll:1;
2201
2203 uint8 bHRTFDisabled:1;
2204
2206 uint8 bIsDeviceMuted:1;
2207
2209 uint8 bIsInitialized:1;
2210
2211protected:
2212
2215
2218
2220
2222 inline bool IsInitialized() const { return bIsInitialized; }
2223
2224private:
2225
2227 uint8 bHasActivatedReverb:1;
2228
2230 uint8 bAllowPlayWhenSilent:1;
2231
2233 uint8 bUseAttenuationForNonGameWorlds:1;
2234
2238 TArray<FActiveSound*> ActiveSounds;
2240 TArray<TObjectPtr<USoundWave>> ReferencedSoundWaves;
2241
2242 void UpdateReferencedSoundWaves();
2243 TArray<USoundWave*> ReferencedSoundWaves_AudioThread;
2244 FCriticalSection AudioThreadReferenceCritSec;
2245
2246 TArray<USoundWave*> PrecachingSoundWaves;
2247
2248 TArray<FWaveInstance*> ActiveWaveInstances;
2249
2254
2256 TArray<FSoundClassAdjuster> SoundClassAdjustersCopy;
2257
2259 TSet<FActiveSound*> PendingSoundsToStop;
2260
2262 TQueue<FActiveSound*> PendingAddedActiveSounds;
2263
2265 int32 MaxActiveSoundsAddedPerFrame;
2266
2268 TArray<FActiveSound*> PendingSoundsToDelete;
2269
2270 TMap<uint64, TArray<FActiveSound*>> AudioComponentIDToActiveSoundMap;
2271
2273 TMap<uint64, bool> AudioComponentIDToCanHaveMultipleActiveSoundsMap;
2274
2275 TMap<uint32, FAudioVolumeProxy> AudioVolumeProxies;
2276
2277 TMap<uint32, TPair<FReverbSettings,FInteriorSettings>> WorldIDToDefaultAudioVolumeSettingsMap;
2278
2280 TArray<TObjectPtr<USoundMix>> PrevPassiveSoundMixModifiers;
2281
2283 TMap<FName, FName> AudioStateProperties;
2284
2286 FSoundConcurrencyManager ConcurrencyManager;
2287
2289 TArray<FMatrix> InverseListenerTransforms;
2290
2292 uint32 OneShotCount;
2293
2294 // Global min and max pitch scale, derived from audio settings
2295 float GlobalMinPitch;
2296 float GlobalMaxPitch;
2297};
2298
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
int Volume
Definition AndroidPlatformMisc.cpp:380
#define check(expr)
Definition AssertionMacros.h:314
TWeakObjectPtr< UAudioComponent > FAudioComponentPtr
Definition AudioDevice.h:329
EDebugState
Definition AudioDevice.h:87
@ DEBUGSTATE_DisableRadio
Definition AudioDevice.h:105
@ DEBUGSTATE_IsolateReverb
Definition AudioDevice.h:93
@ DEBUGSTATE_DisableLPF
Definition AudioDevice.h:101
@ DEBUGSTATE_None
Definition AudioDevice.h:89
@ DEBUGSTATE_TestLFEBleed
Definition AudioDevice.h:99
@ DEBUGSTATE_TestHPF
Definition AudioDevice.h:97
@ DEBUGSTATE_DisableHPF
Definition AudioDevice.h:103
@ DEBUGSTATE_IsolateDryAudio
Definition AudioDevice.h:91
@ DEBUGSTATE_MAX
Definition AudioDevice.h:106
@ DEBUGSTATE_TestLPF
Definition AudioDevice.h:95
TMap< USoundClass *, FSoundMixClassOverride > FSoundMixClassOverrideMap
Definition AudioDevice.h:328
#define GLog
Definition CoreGlobals.h:95
@ INDEX_NONE
Definition CoreMiscDefines.h:150
@ ForceInit
Definition CoreMiscDefines.h:155
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::UPTRINT UPTRINT
An unsigned integer the same size as a pointer.
Definition Platform.h:1146
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
#define GET_STATID(Stat)
Definition Stats.h:656
#define DECLARE_CYCLE_STAT(CounterName, StatId, GroupId)
Definition Stats.h:669
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
#define UE_REAL_TO_FLOAT(argument)
Definition LargeWorldCoordinates.h:30
void Init()
Definition LockFreeList.h:4
#define UE_LOG(CategoryName, Verbosity, Format,...)
Definition LogMacros.h:270
int32 ParseParams(const FString &ParamStr, TArray< FString > &OutArray)
Definition NativeJSScripting.cpp:193
const U & ObjectPtrDecay(const T &Value)
Definition ObjectPtr.h:1744
U & ObjectPtrWrap(T &Value)
Definition ObjectPtr.h:1755
ESPMode
Definition SharedPointerFwd.h:12
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
CORE_API bool IsInAudioThread()
Definition ThreadingBase.cpp:251
CORE_API bool IsInGameThread()
Definition ThreadingBase.cpp:185
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition Archive.h:1208
Definition AudioDeviceHandle.h:28
Definition AudioDeviceManager.h:87
Definition AudioDevice.h:417
ENGINE_API void SetMixDebugState(EDebugState DebugState)
Definition AudioDevice.cpp:2221
virtual void UpdateSourceEffectChain(const uint32 SourceEffectChainId, const TArray< FSourceEffectChainEntry > &SourceEffectChain, const bool bPlayEffectChainTails)
Definition AudioDevice.h:1380
const FAudioEffectsManager * GetEffects() const
Definition AudioDevice.h:1722
uint8 bOcclusionIsExternalSend
Definition AudioDevice.h:2171
bool IsReverbPluginEnabled() const
Definition AudioDevice.h:1345
ENGINE_API void AddReferencedObjects(FReferenceCollector &Collector)
Definition AudioDevice.cpp:1032
bool IsModulationPluginEnabled() const
Definition AudioDevice.h:1331
ENGINE_API bool IsUsingListenerAttenuationOverride(int32 ListenerIndex) const
Definition AudioDevice.cpp:7373
uint8 bIsBakedAnalysisEnabled
Definition AudioDevice.h:2165
ENGINE_API bool GetListenerWorldID(int32 ListenerIndex, uint32 &OutWorldID) const
Definition AudioDevice.cpp:6209
virtual void SetSubmixOutputVolume(USoundSubmix *InSoundSubmix, float InOutputVolume)
Definition AudioDevice.h:1453
const TMap< USoundMix *, FSoundMixState > & GetSoundMixModifiers() const
Definition AudioDevice.h:1728
ENGINE_API bool RemovePreRenderDelegate(const FDelegateHandle &InHandle)
Definition AudioDevice.cpp:5086
int32 GetNumFreeSources() const
Definition AudioDevice.h:1295
EDebugState GetMixDebugState() const
Definition AudioDevice.h:915
TAudioOcclusionPtr OcclusionInterface
Definition AudioDevice.h:2037
ENGINE_API void SetSoundMixClassOverride(USoundMix *InSoundMix, USoundClass *InSoundClass, float Volume, float Pitch, float FadeInTime, bool bApplyToChildren)
Definition AudioDevice.cpp:3827
uint8 bIsStoppingVoicesEnabled
Definition AudioDevice.h:2162
TArray< TSubsystemClass * > GetSubsystemArrayCopy() const
Definition AudioDevice.h:1967
ENGINE_API void ClearListenerAttenuationOverride(int32 ListenerIndex)
Definition AudioDevice.cpp:3535
void NotifyPendingDelete(FActiveSound &ActiveSound) const
Definition AudioDevice.h:855
ENGINE_API void NotifySubsystemsVirtualizedSoundCreated(FActiveSound &ActiveSound) const
Definition AudioDevice.cpp:3692
ENGINE_API bool GetListenerPosition(int32 ListenerIndex, FVector &OutPosition, bool bAllowOverride) const
Definition AudioDevice.cpp:6157
ENGINE_API void SetDefaultBaseSoundMix(USoundMix *SoundMix)
Definition AudioDevice.cpp:2445
ENGINE_API float GetDistanceToNearestListener(const FVector &Location) const
Definition AudioDevice.cpp:6100
ENGINE_API void EnableRadioEffect(bool bEnable=false)
Definition AudioDevice.cpp:1150
int32 MaxChannelsSupportedBySpatializationPlugin
Definition AudioDevice.h:2181
ENGINE_API void PushSoundMixModifier(USoundMix *SoundMix, bool bIsPassive=false, bool bIsRetrigger=false)
Definition AudioDevice.cpp:3773
FDelegateHandle DeviceCreatedHandle
Definition AudioDevice.h:935
ENGINE_API void Teardown()
Definition AudioDevice.cpp:906
ENGINE_API bool ShouldUseRealtimeDecompression(bool bForceFullDecompression, const FSoundGroup &SoundGroup, USoundWave *SoundWave, float CompressedDurationThreshold) const
Definition AudioDevice.cpp:7071
ENGINE_API void AddAudioVolumeProxy(const FAudioVolumeProxy &Proxy)
Definition AudioVolume.cpp:115
ENGINE_API bool LocationIsAudible(const FVector &Location, const float MaxDistance) const
Definition AudioDevice.cpp:6058
uint8 bAllowCenterChannel3DPanning
Definition AudioDevice.h:2217
virtual ENGINE_API void StopSpectrumAnalysis(USoundSubmix *InSubmix)
Definition AudioDevice.cpp:5555
ENGINE_API void PrecacheStartupSounds()
Definition AudioDevice.cpp:798
ENGINE_API FVector GetListenerTransformedDirection(const FVector &Position, float *OutDistance)
Definition AudioDevice.cpp:7338
virtual void SetSubmixDryLevel(USoundSubmix *InSoundSubmix, float InDryLevel)
Definition AudioDevice.h:1465
virtual void EnableDebugAudioOutput()
Definition AudioDevice.h:1278
ENGINE_API void RegisterSoundClass(USoundClass *InSoundClass)
Definition AudioDevice.cpp:7098
virtual ENGINE_API Audio::FPatchOutputStrongPtr AddPatchForSubmix(uint32 InObjectId, float InPatchGain)
Definition AudioDevice.cpp:7177
void SetUseAttenuationForNonGameWorlds(bool bInUseAttenuationForNonGameWorlds)
Definition AudioDevice.h:1921
ENGINE_API void AddNewActiveSound(const FActiveSound &ActiveSound, const TArray< FAudioParameter > *InDefaultParams=nullptr, const FString *EventLogID=nullptr)
Definition AudioDevice.cpp:5220
ENGINE_API void SetGlobalFocusSettings(const FGlobalFocusSettings &NewFocusSettings)
Definition AudioDevice.cpp:7543
ENGINE_API float GetDeviceDeltaTime() const
Definition AudioDevice.cpp:7359
virtual double GetInterpolatedAudioClock() const
Definition AudioDevice.h:1877
Audio::FDeviceId DeviceID
Definition AudioDevice.h:1999
virtual void RegisterSoundSubmix(USoundSubmixBase *SoundSubmix, bool bInit)
Definition AudioDevice.h:966
ENGINE_API void SetMaxChannelsScaled(float InScaledChannelCount)
Definition AudioDevice.cpp:848
ENGINE_API void ClearSoundMixClassOverride(USoundMix *InSoundMix, USoundClass *InSoundClass, float FadeOutTime)
Definition AudioDevice.cpp:3879
ENGINE_API void RemoveActiveSound(FActiveSound *ActiveSound)
Definition AudioDevice.cpp:6021
virtual Audio::FAlignedFloatBuffer & StopRecording(USoundSubmix *InSubmix, float &OutNumChannels, float &OutSampleRate)
Definition AudioDevice.h:1398
ENGINE_API bool GetDistanceSquaredToListener(const FVector &Location, int32 ListenerIndex, float &OutSqDistance) const
Definition AudioDevice.cpp:6111
static ENGINE_API FAudioDeviceManager * GetAudioDeviceManager()
Definition AudioDevice.cpp:402
ENGINE_API FAudioDevice()
Definition AudioDevice.cpp:323
ENGINE_API FActiveSound * FindActiveSound(uint64 AudioComponentID)
Definition AudioDevice.cpp:5950
ENGINE_API bool IsMainAudioDevice() const
Definition AudioDevice.cpp:7618
virtual ENGINE_API void RemoveEnvelopeFollowerDelegate(USoundSubmix *InSubmix, const FOnSubmixEnvelopeBP &OnSubmixEnvelopeBP)
Definition AudioDevice.cpp:5545
int32 GetBufferLength() const
Definition AudioDevice.h:1301
ENGINE_API float ClampPitch(float InPitchScale) const
Definition AudioDevice.cpp:7595
bool IsBakedAnalaysisQueryingEnabled() const
Definition AudioDevice.h:1366
ENGINE_API void OnPreGarbageCollect()
Definition AudioDevice.cpp:686
virtual void FadeOut()
Definition AudioDevice.h:577
float DeviceDeltaTime
Definition AudioDevice.h:2219
uint8 bAudioMixerModuleLoaded
Definition AudioDevice.h:2168
uint8 bSpatializationIsExternalSend
Definition AudioDevice.h:2177
const TArray< USoundMix * > & GetPrevPassiveSoundMixModifiers() const
Definition AudioDevice.h:1733
bool IsSourceDataOverridePluginEnabled() const
Definition AudioDevice.h:1352
float GetPrimaryVolume() const
Definition AudioDevice.h:1896
float GetPlatformAudioHeadroom() const
Definition AudioDevice.h:1910
const TArray< FListener > & GetListeners() const
Definition AudioDevice.h:692
virtual bool IsNonRealtime() const
Definition AudioDevice.h:1374
ENGINE_API void InitSoundClasses()
Definition AudioDevice.cpp:2398
virtual void StartRecording(USoundSubmix *InSubmix, float ExpectedRecordingDuration)
Definition AudioDevice.h:1392
virtual ENGINE_API Audio::FPatchOutputStrongPtr AddPatchOutputForAudioBus(uint32 InAudioBusId, int32 InFrames, int32 InChannels, float InGain=1.f)
Definition AudioDevice.cpp:7188
uint8 bIsAudioDeviceHardwareInitialized
Definition AudioDevice.h:2160
bool IsStoppingVoicesEnabled() const
Definition AudioDevice.h:1360
FAudioEffectsManager * GetEffects()
Definition AudioDevice.h:1713
TAudioModulationPtr ModulationInterface
Definition AudioDevice.h:2040
ENGINE_API void GetAudioVolumeSettings(const uint32 WorldID, const FVector &Location, FAudioVolumeSettings &OutSettings) const
Definition AudioDevice.cpp:3613
int32 NumStoppingSources
Definition AudioDevice.h:1987
virtual ENGINE_API void RemoveSpectralAnalysisDelegate(USoundSubmix *InSubmix, const FOnSubmixSpectralAnalysisBP &OnSubmixSpectralAnalysisBP)
Definition AudioDevice.cpp:5575
ENGINE_API FDelegateHandle AddPreRenderDelegate(const FOnAudioDevicePreRender::FDelegate &InDelegate)
Definition AudioDevice.cpp:5080
TArray< FSoundSource * > Sources
Definition AudioDevice.h:2091
ENGINE_API void UpdateAudioVolumeProxy(const FAudioVolumeProxy &Proxy)
Definition AudioVolume.cpp:175
virtual void UpdateSubmixModulationSettings(USoundSubmix *InSoundSubmix, USoundModulatorBase *InOutputModulation, USoundModulatorBase *InWetLevelModulation, USoundModulatorBase *InDryLevelModulation)
Definition AudioDevice.h:1437
ENGINE_API void * UpdateEffect(FSoundSource *Source)
Definition AudioDevice.cpp:4080
FAudioPlatformSettings PlatformSettings
Definition AudioDevice.h:1993
virtual void UpdateGameThread()
Definition AudioDevice.h:547
ENGINE_API void NotifyAudioDevicePreRender(const FAudioDeviceRenderInfo &InInfo)
Definition AudioDevice.cpp:5092
ENGINE_API void OnDeviceCreated(Audio::FDeviceId InDeviceID)
Definition AudioDevice.cpp:661
ENGINE_API float GetLowPassFilterResonance() const
Definition AudioDevice.cpp:694
ENGINE_API void SetDeviceMuted(bool bMuted)
Definition AudioDevice.cpp:7319
ENGINE_API void UpdateVirtualLoops(bool bForceUpdate)
Definition AudioDevice.cpp:7404
ENGINE_API void NotifySubsystemsActiveSoundDeleting(FActiveSound &ActiveSound) const
Definition AudioDevice.cpp:3678
virtual void GetAudioDeviceList(TArray< FString > &OutAudioDeviceNames) const
Definition AudioDevice.h:509
FDelegateHandle DeviceDestroyedHandle
Definition AudioDevice.h:938
static ENGINE_API bool IsReverbPluginLoaded()
Definition AudioDevice.cpp:780
TAudioSpatializationPtr SpatializationPluginInterface
Definition AudioDevice.h:2018
ENGINE_API void UnregisterPluginListener(const TAudioPluginListenerPtr PluginListener)
Definition AudioDevice.cpp:7288
ENGINE_API void SetCanHaveMultipleActiveSounds(uint64 AudioComponentID, bool InCanHaveMultipleActiveSounds)
Definition AudioDevice.cpp:6002
static ENGINE_API int32 FindClosestListenerIndex(const FTransform &SoundTransform, const TArray< FListener > &InListeners)
Definition AudioDevice.cpp:6352
ENGINE_API float GetFocusFactor(const float Azimuth, const FSoundAttenuationSettings &AttenuationSettings) const
Definition AudioDevice.cpp:6478
ENGINE_API FAudioSpatializationInterfaceInfo GetCurrentSpatializationPluginInterfaceInfo()
Definition AudioDevice.cpp:741
bool AreStartupSoundsPreCached() const
Definition AudioDevice.h:1881
float GetSampleRate() const
Definition AudioDevice.h:1298
ENGINE_API void SetAudioStateProperty(const FName &PropertyName, const FName &PropertyValue)
Definition AudioDevice.cpp:7651
static ENGINE_API bool LegacyReverbDisabled()
Definition AudioDevice.cpp:7278
virtual void InitSoundSubmixes()
Definition AudioDevice.h:963
uint8 bDisableAudioCaching
Definition AudioDevice.h:2157
int32 GetNumBuffers() const
Definition AudioDevice.h:1304
virtual void UpdateHardware()
Definition AudioDevice.h:1795
void NotifyAddActiveSound(FActiveSound &ActiveSound) const
Definition AudioDevice.h:886
ENGINE_API float GetGameDeltaTime() const
Definition AudioDevice.cpp:7365
ENGINE_API void StartSources(TArray< FWaveInstance * > &WaveInstances, int32 FirstActiveIndex, bool bGameTicking)
Definition AudioDevice.cpp:4509
virtual void SetSubmixModulationBaseLevels(USoundSubmix *InSoundSubmix, float InVolumeModBase, float InWetModBase, float InDryModBase)
Definition AudioDevice.h:1447
ENGINE_API void Deinitialize()
Definition AudioDevice.cpp:1008
virtual void StartEnvelopeFollowing(USoundSubmix *InSubmix)
Definition AudioDevice.h:1407
virtual ENGINE_API void CountBytes(FArchive &Ar)
Definition AudioDevice.cpp:1019
ENGINE_API bool IsAudioDeviceMuted() const
Definition AudioDevice.cpp:7293
static ENGINE_API float GetMaxWorldDistance()
Definition AudioDevice.cpp:6152
ENGINE_API FDelegateHandle AddPostRenderDelegate(const FOnAudioDevicePostRender::FDelegate &InDelegate)
Definition AudioDevice.cpp:5098
ENGINE_API void RemoveAudioVolumeProxy(uint32 AudioVolumeID)
Definition AudioVolume.cpp:148
static ENGINE_API bool IsSourceDataOverridePluginLoaded()
Definition AudioDevice.cpp:789
virtual ENGINE_API void GetPhasesForFrequencies(USoundSubmix *InSubmix, const TArray< float > &InFrequencies, TArray< float > &OutPhases)
Definition AudioDevice.cpp:5565
TSubsystemClass * GetSubsystem() const
Definition AudioDevice.h:1944
virtual ENGINE_API void AddSpectralAnalysisDelegate(USoundSubmix *InSubmix, const FSoundSpectrumAnalyzerDelegateSettings &InDelegateSettings, const FOnSubmixSpectralAnalysisBP &OnSubmixSpectralAnalysisBP)
Definition AudioDevice.cpp:5570
ENGINE_API bool SoundIsAudible(USoundBase *Sound, const UWorld *World, const FVector &Location, const FSoundAttenuationSettings *AttenuationSettingsToApply, float MaxDistance, float FocusFactor) const
Definition AudioDevice.cpp:6283
virtual bool IsExernalBackgroundSoundActive()
Definition AudioDevice.h:1180
ENGINE_API void RetriggerVirtualLoop(FAudioVirtualLoop &VirtualLoop)
Definition AudioDevice.cpp:5533
ENGINE_API int32 GetSortedActiveWaveInstances(TArray< FWaveInstance * > &WaveInstances, const ESortedActiveWaveGetType::Type GetType)
Definition AudioDevice.cpp:4147
ENGINE_API TArray< FName > GetAvailableSpatializationPluginNames() const
Definition AudioDevice.cpp:730
ENGINE_API void SetMaxChannels(int32 InMaxChannels)
Definition AudioDevice.cpp:813
int32 NumPrecacheFrames
Definition AudioDevice.h:1996
ENGINE_API void StopSourcesUsingBuffer(FSoundBuffer *SoundBuffer)
Definition AudioDevice.cpp:7077
ENGINE_API void DestroyEffect(FSoundSource *Source)
Definition AudioDevice.cpp:4092
FName CurrentSpatializationPluginInterfaceName
Definition AudioDevice.h:2022
virtual void FlushAudioRenderingCommands(bool bPumpSynchronously=false)
Definition AudioDevice.h:594
float GetTransientPrimaryVolume() const
Definition AudioDevice.h:1892
ENGINE_API void PauseActiveSound(uint64 AudioComponentID, const bool bInIsPaused)
Definition AudioDevice.cpp:5912
virtual bool SupportsRealtimeDecompression() const
Definition AudioDevice.h:1144
ENGINE_API bool RemovePostRenderDelegate(const FDelegateHandle &InHandle)
Definition AudioDevice.cpp:5104
virtual ENGINE_API void StopAllSounds(bool bShouldStopUISounds=false)
Definition AudioDevice.cpp:5142
ENGINE_API void SetListener(UWorld *World, int32 InListenerIndex, const FTransform &ListenerTransform, float InDeltaSeconds)
Definition AudioDevice.cpp:3373
ENGINE_API void Suspend(bool bGameTicking)
Definition AudioDevice.cpp:1014
ENGINE_API void GatherInteriorData(FActiveSound &ActiveSound, FSoundParseParameters &ParseParams) const
Definition AudioDevice.cpp:3646
virtual bool ValidateAPICall(const TCHAR *Function, uint32 ErrorCode)
Definition AudioDevice.h:1159
ENGINE_API const TMap< FName, FActivatedReverb > & GetActiveReverb() const
Definition AudioDevice.cpp:7630
ENGINE_API void ResetAudioVolumeProxyChangedState()
Definition AudioDevice.cpp:3604
ENGINE_API void ApplyInteriorSettings(FActiveSound &ActiveSound, FSoundParseParameters &ParseParams) const
Definition AudioDevice.cpp:3655
TAudioReverbPtr ReverbPluginInterface
Definition AudioDevice.h:2034
TArray< FAudioSpatializationInterfaceInfo > SpatializationInterfaces
Definition AudioDevice.h:2023
ENGINE_API const TMap< FWaveInstance *, FSoundSource * > & GetWaveInstanceSourceMap() const
Definition AudioDevice.cpp:7635
TAudioSpatializationPtr GetSpatializationPluginInterface()
Definition AudioDevice.h:1319
virtual void SetSubmixWetDryLevel(USoundSubmix *InSoundSubmix, float InOutputVolume, float InWetLevel, float InDryLevel)
Definition AudioDevice.h:1419
const TArray< FActiveSound * > & GetActiveSounds() const
Definition AudioDevice.h:1164
ENGINE_API FSoundSource * GetSoundSource(FWaveInstance *WaveInstance) const
Definition AudioDevice.cpp:7526
UReverbEffect * GetCurrentReverbEffect() const
Definition AudioDevice.h:697
virtual int32 GetNumActiveSources() const
Definition AudioDevice.h:1292
ENGINE_API void RemoveSoundMix(USoundMix *SoundMix)
Definition AudioDevice.cpp:2474
ENGINE_API void NotifySubsystemsSetOwner(FActiveSound &ActiveSound, const UObject *Owner) const
Definition AudioDevice.cpp:3715
virtual FSoundSource * CreateSoundSource()=0
virtual void FadeIn()
Definition AudioDevice.h:578
virtual void SetSubmixEffectChainOverride(USoundSubmix *InSoundSubmix, const TArray< FSoundEffectSubmixPtr > &InSubmixEffectChain, float InCrossfadeTime)
Definition AudioDevice.h:1471
TArray< FListener > Listeners
Definition AudioDevice.h:2089
USoundMix * GetDefaultBaseSoundMixModifier()
Definition AudioDevice.h:1738
const FDynamicParameter & GetGlobalPitchScale() const
Definition AudioDevice.h:1903
ENGINE_API void UpdateActiveSoundPlaybackTime(bool bIsTimeTicking)
Definition AudioDevice.cpp:4282
ENGINE_API void SetGlobalPitchModulation(float PitchScale, float TimeSec)
Definition AudioDevice.cpp:7556
virtual void SuspendContext()
Definition AudioDevice.h:1174
virtual ENGINE_API void GetMagnitudesForFrequencies(USoundSubmix *InSubmix, const TArray< float > &InFrequencies, TArray< float > &OutMagnitudes)
Definition AudioDevice.cpp:5560
double AudioClock
Definition AudioDevice.h:2214
ENGINE_API const TArray< FWaveInstance * > & GetActiveWaveInstances() const
Definition AudioDevice.cpp:7624
void SetHRTFEnabledForAll(bool InbHRTFEnabledForAll)
Definition AudioDevice.h:1185
virtual void UpdateDeviceDeltaTime()
Definition AudioDevice.h:1839
double GetAudioClock() const
Definition AudioDevice.h:1872
virtual void SetSubmixWetLevel(USoundSubmix *InSoundSubmix, float InWetLevel)
Definition AudioDevice.h:1459
virtual ENGINE_API void Precache(USoundWave *SoundWave, bool bSynchronous=false, bool bTrackMemory=true, bool bForceFullDecompression=false)
Definition AudioDevice.cpp:6902
ENGINE_API float GetCompressionDurationThreshold(const FSoundGroup &SoundGroup)
Definition AudioDevice.cpp:7050
virtual double GetAudioTime() const
Definition AudioDevice.h:1272
ENGINE_API TRange< float > GetGlobalPitchRange() const
Definition AudioDevice.cpp:901
int32 SampleRate
Definition AudioDevice.h:1990
ENGINE_API void StopTestComponent()
Definition AudioDevice.cpp:1180
ENGINE_API void RegisterPluginListener(const TAudioPluginListenerPtr PluginListener)
Definition AudioDevice.cpp:7283
virtual void StopEnvelopeFollowing(USoundSubmix *InSubmix)
Definition AudioDevice.h:1413
virtual ENGINE_API ~FAudioDevice()
TArray< FSoundSource * > FreeSources
Definition AudioDevice.h:2092
FAudioEffectsManager * Effects
Definition AudioDevice.h:2123
virtual void UpdateSubmixProperties(USoundSubmixBase *InSubmix)
Definition AudioDevice.h:1386
void SetSpatializationInterfaceEnabled(bool InbSpatializationInterfaceEnabled)
Definition AudioDevice.h:1220
void ForEachSubsystem(TFunctionRef< void(TSubsystemClass *)> Operation) const
Definition AudioDevice.h:1976
ENGINE_API void NotifyAudioDevicePostRender(const FAudioDeviceRenderInfo &InInfo)
Definition AudioDevice.cpp:5110
virtual bool DisablePCMAudioCaching() const
Definition AudioDevice.h:1151
ENGINE_API FName GetAudioStateProperty(const FName &PropertyName) const
Definition AudioDevice.cpp:7640
ENGINE_API int32 GetMaxSources() const
Definition AudioDevice.cpp:896
ENGINE_API UAudioComponent * GetTestComponent(UWorld *InWorld)
Definition AudioDevice.cpp:1164
static TSubsystemClass * GetSubsystem(const FAudioDeviceHandle &InHandle)
Definition AudioDevice.h:1954
float GetMasterVolume() const
Definition AudioDevice.h:1890
ENGINE_API void InvalidateCachedInteriorVolumes() const
Definition AudioDevice.cpp:3337
ENGINE_API bool SpatializationPluginInterfacesAvailable()
Definition AudioDevice.cpp:766
ENGINE_API void * InitEffect(FSoundSource *Source)
Definition AudioDevice.cpp:4070
FAudioPluginInitializationParams PluginInitializationParams
Definition AudioDevice.h:2027
virtual void SetSubmixAutoDisable(USoundSubmix *InSoundSubmix, bool bInAutoDisable)
Definition AudioDevice.h:1425
FCriticalSection RenderStateCallbackListCritSec
Definition AudioDevice.h:940
TAudioSourceDataOverridePtr SourceDataOverridePluginInterface
Definition AudioDevice.h:2031
bool IsInitialized() const
Definition AudioDevice.h:2222
virtual void UnregisterSoundSubmix(const USoundSubmixBase *SoundSubmix, const bool bReparentChildren)
Definition AudioDevice.h:969
float GetDefaultReverbSendLevel() const
Definition AudioDevice.h:1929
ENGINE_API bool GetDefaultAudioSettings(uint32 WorldID, FReverbSettings &OutReverbSettings, FInteriorSettings &OutInteriorSettings) const
Definition AudioDevice.cpp:3574
FOnAudioDevicePreRender OnAudioDevicePreRender
Definition AudioDevice.h:943
ENGINE_API bool IsHRTFEnabledForAll() const
Definition AudioDevice.cpp:2199
virtual void ResumeContext()
Definition AudioDevice.h:1177
ENGINE_API void InitSoundSources()
Definition AudioDevice.cpp:2417
virtual bool InitializeHardware()
Definition AudioDevice.h:1779
ENGINE_API void StopSoundsUsingResource(USoundWave *SoundWave, TArray< UAudioComponent * > *StoppedComponents=nullptr)
Definition AudioDevice.cpp:7217
ENGINE_API FSoundClassDynamicProperties * GetSoundClassDynamicProperties(USoundClass *InSoundClass)
Definition AudioDevice.cpp:7205
virtual void OnListenerUpdated(const TArray< FListener > &InListeners)
Definition AudioDevice.h:1516
ENGINE_API void UnlinkActiveSoundFromComponent(const FActiveSound &InActiveSound)
Definition AudioDevice.cpp:6414
ENGINE_API int32 GetMaxChannels() const
Definition AudioDevice.cpp:878
ENGINE_API void StopSources(TArray< FWaveInstance * > &WaveInstances, int32 FirstActiveIndex)
Definition AudioDevice.cpp:4423
virtual ENGINE_API void FlushExtended(UWorld *WorldToFlush, bool bClearActivatedReverb)
Definition AudioDevice.cpp:6892
ENGINE_API void AddVirtualLoop(const FAudioVirtualLoop &InVirtualLoop)
Definition AudioDevice.cpp:5580
TArray< FListenerProxy > ListenerProxies
Definition AudioDevice.h:2046
ENGINE_API void PopSoundMixModifier(USoundMix *SoundMix, bool bIsPassive=false)
Definition AudioDevice.cpp:3954
ENGINE_API void SetDefaultAudioSettings(UWorld *World, const FReverbSettings &DefaultReverbSettings, const FInteriorSettings &DefaultInteriorSettings)
Definition AudioDevice.cpp:3589
ENGINE_API void SetSoundClassDistanceScale(USoundClass *InSoundClass, float DistanceScale, float TimeSec)
Definition AudioDevice.cpp:7573
ENGINE_API void GetMaxDistanceAndFocusFactor(USoundBase *Sound, const UWorld *World, const FVector &Location, const FSoundAttenuationSettings *AttenuationSettingsToApply, float &OutMaxDistance, float &OutFocusFactor)
Definition AudioDevice.cpp:6237
ENGINE_API bool GetListenerTransform(int32 ListenerIndex, FTransform &OutTransform) const
Definition AudioDevice.cpp:6181
ENGINE_API void AddSoundToStop(FActiveSound *SoundToStop)
Definition AudioDevice.cpp:5818
ENGINE_API bool SetCurrentSpatializationPlugin(FName PluginName)
Definition AudioDevice.cpp:701
virtual ENGINE_API void AddEnvelopeFollowerDelegate(USoundSubmix *InSubmix, const FOnSubmixEnvelopeBP &OnSubmixEnvelopeBP)
Definition AudioDevice.cpp:5540
ENGINE_API void SetTransientPrimaryVolume(float TransientPrimaryVolume)
Definition AudioDevice.cpp:7508
FAudioSpatializationInterfaceInfo * CurrentSpatializationInterfaceInfoPtr
Definition AudioDevice.h:2024
virtual void UpdateHardwareTiming()
Definition AudioDevice.h:1790
ENGINE_API void PlaySoundAtLocation(USoundBase *Sound, UWorld *World, float VolumeMultiplier, float PitchMultiplier, float StartTime, const FVector &Location, const FRotator &Rotation, USoundAttenuation *AttenuationSettings=nullptr, USoundConcurrency *ConcurrencySettings=nullptr, const TArray< FAudioParameter > *Params=nullptr, const AActor *OwningActor=nullptr)
Definition AudioDevice.cpp:6744
virtual void TeardownHardware()
Definition AudioDevice.h:1785
void SetSoundMixModifiers(const TMap< USoundMix *, FSoundMixState > &InSoundMixModifiers, const TArray< USoundMix * > &InPrevPassiveSoundMixModifiers, USoundMix *InDefaultBaseSoundMix)
Definition AudioDevice.h:1743
void SetHRTFDisabled(bool InIsHRTFDisabled)
Definition AudioDevice.h:1204
static ENGINE_API const FAudioQualitySettings & GetQualityLevelSettings()
Definition AudioDevice.cpp:412
ENGINE_API void GetAzimuth(const FAttenuationListenerData &OutListenerData, float &OutAzimuth, float &AbsoluteAzimuth) const
Definition AudioDevice.cpp:6444
ENGINE_API bool IsPendingStop(FActiveSound *ActiveSound)
Definition AudioDevice.cpp:5851
ENGINE_API void SetTransientMasterVolume(float TransientPrimaryVolume)
ENGINE_API void ActivateReverbEffect(UReverbEffect *ReverbEffect, FName TagName, float Priority, float Volume, float FadeTime)
Definition AudioDevice.cpp:4046
static ENGINE_API FAudioDeviceHandle GetMainAudioDevice()
Definition AudioDevice.cpp:387
virtual void UpdateSubmixModulationSettings(USoundSubmix *InSoundSubmix, const TSet< TObjectPtr< USoundModulatorBase > > &InOutputModulation, const TSet< TObjectPtr< USoundModulatorBase > > &InWetLevelModulation, const TSet< TObjectPtr< USoundModulatorBase > > &InDryLevelModulation)
Definition AudioDevice.h:1442
uint8 bReverbIsExternalSend
Definition AudioDevice.h:2172
virtual ENGINE_API FAudioEffectsManager * CreateEffectsManager()
Definition AudioDevice.cpp:407
virtual ENGINE_API Audio::FPatchInput AddPatchInputForAudioBus(uint32 InAudioBusId, int32 InFrames, int32 InChannels, float InGain=1.f)
Definition AudioDevice.cpp:7183
virtual void ClearSubmixEffectChainOverride(USoundSubmix *InSoundSubmix, float InCrossfadeTime)
Definition AudioDevice.h:1477
UAudioEngineSubsystem * GetSubsystemBase(TSubclassOf< UAudioEngineSubsystem > SubsystemClass) const
Definition AudioDevice.h:1937
FOnAudioDevicePostRender OnAudioDevicePostRender
Definition AudioDevice.h:946
bool IsOcclusionPluginEnabled() const
Definition AudioDevice.h:1337
ENGINE_API void NotifySubsystemsVirtualizedSoundDeleting(FActiveSound &ActiveSound) const
Definition AudioDevice.cpp:3701
ENGINE_API void NotifyActiveSoundOcclusionTraceDone(FActiveSound *ActiveSound, bool bIsOccluded)
Definition AudioDevice.cpp:5940
ENGINE_API void DeactivateReverbEffect(FName TagName)
Definition AudioDevice.cpp:4060
ENGINE_API void SetListenerAttenuationOverride(int32 ListenerIndex, const FVector AttenuationPosition)
Definition AudioDevice.cpp:3492
ENGINE_API void StopActiveSound(uint64 AudioComponentID, const FString *EventLogID=nullptr)
Definition AudioDevice.cpp:5859
ENGINE_API void UnregisterSoundClass(USoundClass *SoundClass)
Definition AudioDevice.cpp:7127
ENGINE_API void SendCommandToActiveSounds(uint64 InAudioComponentID, TUniqueFunction< void(FActiveSound &)> InFunc, const TStatId InStatId=TStatId())
Definition AudioDevice.cpp:5966
ENGINE_API void SetPlatformAudioHeadroom(float PlatformHeadRoom)
Definition AudioDevice.cpp:7600
ENGINE_API const FGlobalFocusSettings & GetGlobalFocusSettings() const
Definition AudioDevice.cpp:7532
virtual ENGINE_API void RegisterSubmixBufferListener(ISubmixBufferListener *InSubmixBufferListener, USoundSubmix *SoundSubmix=nullptr)
Definition AudioDevice.cpp:7157
virtual ENGINE_API void UnregisterSubmixBufferListener(ISubmixBufferListener *InSubmixBufferListener, USoundSubmix *SoundSubmix=nullptr)
Definition AudioDevice.cpp:7167
ENGINE_API void SetBaseSoundMix(USoundMix *SoundMix)
Definition AudioDevice.cpp:3723
virtual ENGINE_API USoundSubmix & GetMainSubmixObject() const
Definition AudioDevice.cpp:7149
static ENGINE_API bool IsOcclusionPluginLoaded()
Definition AudioDevice.cpp:771
ENGINE_API void ResetInterpolation()
Definition AudioDevice.cpp:1111
ENGINE_API FSoundClassProperties * GetSoundClassCurrentProperties(USoundClass *InSoundClass)
Definition AudioDevice.cpp:7193
bool IsSpatializationPluginEnabled() const
Definition AudioDevice.h:1307
ENGINE_API bool IsHRTFDisabled() const
Definition AudioDevice.cpp:2210
virtual ENGINE_API void StartSpectrumAnalysis(USoundSubmix *InSubmix, const FSoundSpectrumAnalyzerSettings &InSettings)
Definition AudioDevice.cpp:5550
virtual bool HasCompressedAudioInfoClass(USoundWave *SoundWave)
Definition AudioDevice.h:1140
ENGINE_API void NotifySubsystemsActiveSoundCreated(FActiveSound &ActiveSound) const
Definition AudioDevice.cpp:3664
ENGINE_API void OnDeviceDestroyed(Audio::FDeviceId InDeviceID)
Definition AudioDevice.cpp:674
virtual void SetSubmixAutoDisableTime(USoundSubmix *InSoundSubmix, float InDisableTime)
Definition AudioDevice.h:1431
ENGINE_API bool GetDistanceSquaredToNearestListener(const FVector &Location, float &OutSqDistance) const
Definition AudioDevice.cpp:6132
ENGINE_API void ClearSoundMixModifiers()
Definition AudioDevice.cpp:4019
ENGINE_API void ClearSoundMixModifier(USoundMix *SoundMix)
Definition AudioDevice.cpp:3990
virtual bool GetCurrentSourceEffectChain(const uint32 SourceEffectChainId, TArray< FSourceEffectChainEntry > &OutCurrentSourceEffectChainEntries)
Definition AudioDevice.h:1383
static ENGINE_API bool CanUseVRAudioDevice()
Definition AudioDevice.cpp:7493
void NotifyPendingDeleteInternal(FActiveSound &ActiveSound) const
Definition AudioDevice.h:892
ENGINE_API bool CanHaveMultipleActiveSounds(uint64 AudioComponentID) const
Definition AudioDevice.cpp:5990
float GetTransientMasterVolume() const
Definition AudioDevice.h:1884
ENGINE_API const FVector & GetListenerAttenuationOverride(int32 ListenerIndex) const
Definition AudioDevice.cpp:7390
static ENGINE_API UAudioComponent * CreateComponent(USoundBase *Sound, const FCreateComponentParams &Params=FCreateComponentParams())
Definition AudioDevice.cpp:6588
TArray< TAudioPluginListenerPtr > PluginListeners
Definition AudioDevice.h:2043
bool PlayWhenSilentEnabled() const
Definition AudioDevice.h:1916
ENGINE_API void HandlePause(bool bGameTicking, bool bGlobalPause=false)
Definition AudioDevice.cpp:4101
ENGINE_API void InitializeSubsystemCollection()
Definition AudioDevice.cpp:2434
Definition AudioEffect.h:102
Definition AudioEngineSubsystem.h:82
static ENGINE_API void RunCommandOnAudioThread(TUniqueFunction< void()> InFunction, const TStatId InStatId=TStatId())
Definition AudioThread.cpp:494
static ENGINE_API void SuspendAudioThread()
Definition AudioThread.cpp:329
static ENGINE_API void ResumeAudioThread()
Definition AudioThread.cpp:363
Definition CanvasTypes.h:211
Definition IDelegateInstance.h:14
Definition AudioDynamicParameter.h:10
Definition Exec.h:29
virtual CORE_API bool Exec(UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar)
Definition Exec.cpp:30
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition OutputDevice.h:133
Definition UObjectGlobals.h:2492
Definition Audio.h:551
Definition SoundConcurrency.h:385
Definition Audio.h:627
Definition SubsystemCollection.h:125
TSubsystemClass * GetSubsystem(const TSubclassOf< TSubsystemClass > &SubsystemClass) const
Definition SubsystemCollection.h:129
TArray< TSubsystemClass * > GetSubsystemArrayCopy(const TSubclassOf< TSubsystemClass > &SubsystemClass) const
Definition SubsystemCollection.h:139
EConnectionType
Definition TraceAuxiliary.h:78
Definition ViewportClient.h:28
Definition UnrealClient.h:412
Definition IAudioExtensionPlugin.h:246
Definition IAudioExtensionPlugin.h:301
Definition AudioDecompress.h:31
Definition AudioDevice.h:402
virtual void OnDeviceRemoved(FString DeviceID)=0
virtual void OnDefaultDeviceChanged()=0
Definition ISubmixBufferListener.h:13
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition EnumAsByte.h:22
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition Queue.h:48
Definition Range.h:50
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition StrongObjectPtrTemplates.h:26
Definition SubclassOf.h:30
Definition FunctionFwd.h:19
Definition AudioEngineSubsystem.h:46
Definition AudioEngineSubsystem.h:24
Definition Object.h:95
Definition ReverbEffect.h:13
Definition SoundAttenuation.h:444
Definition SoundBase.h:109
Definition SoundClass.h:209
Definition SoundConcurrency.h:217
Definition SoundEffectSource.h:20
Definition SoundEffectSubmix.h:26
Definition SoundMix.h:173
Definition IAudioModulation.h:223
Definition SoundSubmix.h:174
Definition SoundSubmix.h:334
Definition SoundWave.h:417
Definition World.h:918
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
uint32 FDeviceId
Definition AudioDefines.h:66
uint64 GetTransmitterID(uint64 ComponentID, UPTRINT WaveInstanceHash, uint32 PlayOrder)
Definition AudioDevice.cpp:265
TSharedPtr< FPatchOutput, ESPMode::ThreadSafe > FPatchOutputStrongPtr
Definition AudioDevice.h:69
uint32 DeviceID
Definition IAudioParameterTransmitter.h:18
ICompressedAudioInfo * CreateSoundAssetDecoder(const FName &InRuntimeFormat)
Definition AudioDevice.cpp:252
@ Z
Definition Axis.h:15
@ Y
Definition Axis.h:14
@ X
Definition Axis.h:13
Definition AudioDevice.h:143
Type
Definition AudioDevice.h:145
@ FullUpdate
Definition AudioDevice.h:146
@ QueryOnly
Definition AudioDevice.h:148
@ PausedUpdate
Definition AudioDevice.h:147
Definition AudioDevice.h:113
Type
Definition AudioDevice.h:115
@ AwaitingRemoval
Definition AudioDevice.h:125
@ Active
Definition AudioDevice.h:121
@ FadingIn
Definition AudioDevice.h:119
@ FadingOut
Definition AudioDevice.h:123
@ Inactive
Definition AudioDevice.h:117
@ false
Definition radaudio_common.h:23
Definition AudioDevice.h:332
FActivatedReverb()
Definition AudioDevice.h:336
FReverbSettings ReverbSettings
Definition AudioDevice.h:333
float Priority
Definition AudioDevice.h:334
Definition ActiveSound.h:283
static double Seconds()
Definition AndroidPlatformTime.h:20
Definition ActiveSound.h:34
Definition AudioDevice.h:344
FVector::FReal ListenerToSoundDistance
Definition AudioDevice.h:347
FVector::FReal ListenerToSoundDistanceForPanning
Definition AudioDevice.h:351
FTransform ListenerTransform
Definition AudioDevice.h:353
FVector ListenerToSoundDir
Definition AudioDevice.h:345
const FSoundAttenuationSettings * AttenuationSettings
Definition AudioDevice.h:355
const FTransform SoundTransform
Definition AudioDevice.h:354
FVector::FReal AttenuationDistance
Definition AudioDevice.h:346
Definition AudioDevice.h:276
int32 NumRealTime
Definition AudioDevice.h:279
int32 NumResident
Definition AudioDevice.h:277
int32 SizeResident
Definition AudioDevice.h:278
FAudioClassInfo()
Definition AudioDevice.h:282
int32 SizeRealTime
Definition AudioDevice.h:280
Definition AudioDevice.h:409
int32 NumFrames
Definition AudioDevice.h:410
ENGINE_API bool IsValid() const
Definition AudioDevice.cpp:7689
TAudioSpatializationPtr SpatializationPlugin
Definition AudioDevice.h:2010
uint8 bReturnsToSubmixGraph
Definition AudioDevice.h:2014
uint8 bIsInitialized
Definition AudioDevice.h:2013
uint8 bSpatializationIsExternalSend
Definition AudioDevice.h:2012
int32 MaxChannelsSupportedBySpatializationPlugin
Definition AudioDevice.h:2011
FName PluginName
Definition AudioDevice.h:2009
Definition AudioDevice.h:828
TArray< FAudioVolumeSubmixSendSettings > SubmixSendSettings
Definition AudioDevice.h:833
FReverbSettings ReverbSettings
Definition AudioDevice.h:831
TArray< FAudioVolumeSubmixOverrideSettings > SubmixOverrideSettings
Definition AudioDevice.h:834
FInteriorSettings InteriorSettings
Definition AudioDevice.h:832
Definition AudioDevice.h:704
bool bAutoDestroy
Definition AudioDevice.h:713
ENGINE_API bool ShouldUseAttenuation() const
Definition AudioDevice.cpp:6578
USoundAttenuation * AttenuationSettings
Definition AudioDevice.h:710
ENGINE_API void SetLocation(FVector Location)
Definition AudioDevice.cpp:6565
TSet< USoundConcurrency * > ConcurrencySet
Definition AudioDevice.h:712
bool bPlay
Definition AudioDevice.h:714
bool bStopWhenOwnerDestroyed
Definition AudioDevice.h:715
TSubclassOf< UAudioComponent > AudioComponentClass
Definition AudioDevice.h:711
ENGINE_API FCreateComponentParams()
Definition AudioDevice.cpp:6499
Definition AudioParameter.h:93
Definition AudioMixerTypes.h:63
int32 NumBuffers
Definition AudioMixerTypes.h:71
int32 CallbackBufferFrameSize
Definition AudioMixerTypes.h:68
Definition IAudioExtensionPlugin.h:127
Definition AudioSettings.h:79
Definition AudioVirtualLoop.h:13
Definition AudioVolume.h:137
Definition AudioDevice.h:377
float FocusAzimuthScale
Definition AudioDevice.h:378
float FocusPriorityScale
Definition AudioDevice.h:384
float FocusDistanceScale
Definition AudioDevice.h:380
float NonFocusPriorityScale
Definition AudioDevice.h:385
float NonFocusAzimuthScale
Definition AudioDevice.h:379
float NonFocusDistanceScale
Definition AudioDevice.h:381
float NonFocusVolumeScale
Definition AudioDevice.h:383
FGlobalFocusSettings()
Definition AudioDevice.h:387
float FocusVolumeScale
Definition AudioDevice.h:382
Definition AudioVolume.h:76
Definition AudioDevice.h:241
FVector GetPosition(bool bAllowOverride) const
Definition AudioDevice.cpp:3363
uint32 WorldID
Definition AudioDevice.h:251
FVector AttenuationOverride
Definition AudioDevice.h:245
FListenerProxy()
Definition AudioDevice.h:258
FTransform Transform
Definition AudioDevice.h:242
FListenerProxy(const FListener &Listener)
Definition AudioDevice.h:263
uint32 bUseAttenuationOverride
Definition AudioDevice.h:248
Definition AudioDevice.h:156
FTransform Transform
Definition AudioDevice.h:157
FVector GetRight() const
Definition AudioDevice.h:191
uint32 bUseAttenuationOverride
Definition AudioDevice.h:164
double InteriorEndTime
Definition AudioDevice.h:179
float InteriorVolumeInterp
Definition AudioDevice.h:183
double InteriorStartTime
Definition AudioDevice.h:178
double ExteriorLPFEndTime
Definition AudioDevice.h:182
FListener(FAudioDevice *InAudioDevice)
Definition AudioDevice.h:213
int32 ListenerIndex
Definition AudioDevice.h:175
FVector Velocity
Definition AudioDevice.h:158
FVector GetPosition(bool bAllowOverride) const
Definition AudioDevice.cpp:3302
float ExteriorLPFInterp
Definition AudioDevice.h:186
double InteriorLPFEndTime
Definition AudioDevice.h:181
float InteriorLPFInterp
Definition AudioDevice.h:184
FVector AttenuationOverride
Definition AudioDevice.h:161
struct FInteriorSettings InteriorSettings
Definition AudioDevice.h:166
FAudioDevice * AudioDevice
Definition AudioDevice.h:187
void UpdateCurrentInteriorSettings()
Definition AudioDevice.cpp:3328
float Interpolate(const double EndTime)
Definition AudioDevice.cpp:3312
FVector GetFront() const
Definition AudioDevice.h:190
FVector GetUp() const
Definition AudioDevice.h:189
uint32 AudioVolumeID
Definition AudioDevice.h:169
float ExteriorVolumeInterp
Definition AudioDevice.h:185
double ExteriorEndTime
Definition AudioDevice.h:180
void ApplyInteriorSettings(uint32 AudioVolumeID, const FInteriorSettings &Settings)
Definition AudioDevice.cpp:3347
uint32 WorldID
Definition AudioDevice.h:172
Definition ReverbSettings.h:49
Definition SoundAttenuation.h:139
Definition SoundMix.h:132
Definition SoundClass.h:154
Definition SoundClass.h:55
Definition SoundGroups.h:42
Definition AudioDevice.h:306
uint8 bIsCleared
Definition AudioDevice.h:314
FSoundMixClassOverride()
Definition AudioDevice.h:316
FDynamicParameter VolumeOverride
Definition AudioDevice.h:308
float FadeInTime
Definition AudioDevice.h:310
FSoundClassAdjuster SoundClassAdjustor
Definition AudioDevice.h:307
uint8 bIsClearing
Definition AudioDevice.h:313
uint8 bOverrideChanged
Definition AudioDevice.h:312
FDynamicParameter PitchOverride
Definition AudioDevice.h:309
uint8 bOverrideApplied
Definition AudioDevice.h:311
Definition AudioDevice.h:292
uint32 ActiveRefCount
Definition AudioDevice.h:294
ESoundMixState::Type CurrentState
Definition AudioDevice.h:302
double FadeOutStartTime
Definition AudioDevice.h:299
double FadeInStartTime
Definition AudioDevice.h:297
uint32 PassiveRefCount
Definition AudioDevice.h:295
double EndTime
Definition AudioDevice.h:300
bool IsBaseSoundMix
Definition AudioDevice.h:293
float InterpValue
Definition AudioDevice.h:301
double FadeInEndTime
Definition AudioDevice.h:298
double StartTime
Definition AudioDevice.h:296
Definition ActiveSound.h:64
Definition SoundSubmix.h:126
Definition SoundSubmix.h:108
Definition SoundEffectSource.h:31
Definition Audio.h:180
Definition ObjectPtr.h:488
Definition LightweightStats.h:416
Definition WeakObjectPtrTemplates.h:25
TVector< T > GetUnitAxis(EAxis::Type InAxis) const
Definition TransformNonVectorized.h:1553
double FReal
Definition Vector.h:55