UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AudioEngineSubsystem.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Subsystem.h"
8#include "AudioEngineSubsystem.generated.h"
9
10// Forward Declarations
11class FAudioDevice;
12namespace Audio
13{
14 class FMixerDevice;
15 class FMixerSourceManager;
16}
17
22UCLASS(MinimalAPI)
24{
26
27public:
28
30 void inline SetAudioDeviceID(Audio::FDeviceId DeviceID) { OwningDeviceID = DeviceID; }
31
33 Audio::FDeviceId GetAudioDeviceID() const { return OwningDeviceID; }
34
35protected:
36
38};
39
44UCLASS(Abstract, MinimalAPI)
46{
48
49public:
50
52
57 virtual void Update() {}
58
60 ENGINE_API virtual Audio::FDeviceId GetAudioDeviceId() const final;
61
63 ENGINE_API virtual FAudioDeviceHandle GetAudioDeviceHandle() const final;
64
66 ENGINE_API virtual Audio::FMixerSourceManager* GetMutableSourceManager() final;
67
69 ENGINE_API virtual const Audio::FMixerSourceManager* GetSourceManager() const final;
70
72 ENGINE_API virtual Audio::FMixerDevice* GetMutableMixerDevice() final;
73
75 ENGINE_API virtual const Audio::FMixerDevice* GetMixerDevice() const final;
76};
77
82{
83public:
84
85 template<class ArgType>
87 {
88 UClass* ArgClass = nullptr;
90 {
91 ArgClass = ArgType::UClassType::StaticClass();
92 }
93 else
94 {
95 ArgClass = ArgType::StaticClass();
96 }
97
98 ForEachSubsystemOfClass(ArgClass, [Function=MoveTemp(InFunction)](USubsystem* Subsystem)
99 {
100 Function(CastChecked<ArgType>(Subsystem));
101 });
102 }
103};
104
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition AudioDeviceHandle.h:28
Definition AudioDevice.h:417
Definition AudioEngineSubsystem.h:82
void ForEachSubsystem(TFunctionRef< bool(ArgType *)> InFunction) const
Definition AudioEngineSubsystem.h:86
Definition SubsystemCollection.h:125
Definition AssetRegistryState.h:50
Definition AudioEngineSubsystem.h:46
virtual void Update()
Definition AudioEngineSubsystem.h:57
Definition AudioEngineSubsystem.h:24
void SetAudioDeviceID(Audio::FDeviceId DeviceID)
Definition AudioEngineSubsystem.h:30
Audio::FDeviceId GetAudioDeviceID() const
Definition AudioEngineSubsystem.h:33
Definition Class.h:3793
Definition Subsystem.h:88
Definition Object.h:95
Definition Subsystem.h:48
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
uint32 FDeviceId
Definition AudioDefines.h:66
Definition Casts.h:52