UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AudioBus.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "CoreMinimal.h"
5#include "UObject/Object.h"
7#include "AudioBus.generated.h"
8
9class FAudioDevice;
10
11// The number of channels to mix audio into the source bus
12UENUM(BlueprintType)
14{
15 Mono = 0,
16 Stereo = 1,
17 Quad = 3,
18 FivePointOne = 5 UMETA(DisplayName = "5.1"),
19 SevenPointOne = 7 UMETA(DisplayName = "7.1"),
21};
22
24{
25 static EAudioBusChannels ConvertIntToEAudioBusChannels(const int32 InValue)
26 {
27 switch (InValue)
28 {
29 case 1: return EAudioBusChannels::Mono;
30 case 2: return EAudioBusChannels::Stereo;
31 case 4: return EAudioBusChannels::Quad;
34 default:
35 // TODO alex.perez: LogAudio undeclared identifier, is it ok to add the header that has LogAudio, or should we move this function to another place?
36 //UE_LOG(LogAudio, Error, TEXT("Number of channels: %d not available in AudioBusChannels configurations. Make sure that the number of channels used is 1, 2, 4, 6 or 8."), InValue);
37 check(false);
39 }
40 };
41}
42
43class FAudioBusProxy;
44
46class FAudioBusProxy final : public Audio::TProxyData<FAudioBusProxy>
47{
48public:
50
52
54
55 virtual ~FAudioBusProxy() override {}
56
59
61 {
62 return InProxy.TypeHash;
63 }
64
65private:
66 uint32 TypeHash = uint32(INDEX_NONE);
67};
68
69// Function to retrieve an audio bus buffer given a handle
70// static float* GetAudioBusBuffer(const FAudioBusHandle& AudioBusHandle);
71
72// An audio bus is an object which represents an audio patch cord. Audio can be sent to it. It can be sonified using USoundSourceBuses.
73// Instances of the audio bus are created in the audio engine.
74UCLASS(ClassGroup = Sound, meta = (BlueprintSpawnableComponent), MinimalAPI)
76{
78
79public:
80
82 UPROPERTY(EditAnywhere, Category = BusProperties)
84
85 //~ Begin UObject
86 ENGINE_API virtual void BeginDestroy() override;
87 //~ End UObject
88
89 // Returns the number of channels of the audio bus in integer format
90 int32 GetNumChannels() const { return (int32)AudioBusChannels + 1; }
91
92 //~ Begin UObject Interface.
93#if WITH_EDITOR
94 ENGINE_API virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
95#endif // WITH_EDITOR
96 //~ End UObject Interface.
97
98 //~ Begin IAudioProxy Interface
99 ENGINE_API virtual TSharedPtr<Audio::IProxyData> CreateProxyData(const Audio::FProxyDataInitParams& InitParams) override;
100 //~ End IAudioProxy Interface
101};
#define check(expr)
Definition AssertionMacros.h:314
EAudioBusChannels
Definition AudioBus.h:14
@ INDEX_NONE
Definition CoreMiscDefines.h:150
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UMETA(...)
Definition ObjectMacros.h:747
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition IAudioProxyInitializer.h:106
Definition AudioBus.h:47
uint32 AudioBusId
Definition AudioBus.h:57
friend uint32 GetTypeHash(const FAudioBusProxy &InProxy)
Definition AudioBus.h:60
FAudioBusProxy(const FAudioBusProxy &Other)=default
int32 NumChannels
Definition AudioBus.h:58
virtual ~FAudioBusProxy() override
Definition AudioBus.h:55
IMPL_AUDIOPROXY_CLASS(FAudioBusProxy)
Definition AudioDevice.h:417
Definition IAudioProxyInitializer.h:128
Definition SharedPointer.h:692
Definition AudioBus.h:76
Definition Object.h:95
Definition AudioBus.h:24
Definition IAudioProxyInitializer.h:119
Definition UnrealType.h:6865