// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Containers/Array.h" #include "Engine/DeveloperSettings.h" #include "UObject/SoftObjectPath.h" #include "UObject/SoftObjectPtr.h" #include "UObject/UObjectGlobals.h" #include "LyraAudioSettings.generated.h" class UObject; class USoundEffectSubmixPreset; class USoundSubmix; USTRUCT() struct LYRAGAME_API FLyraSubmixEffectChainMap { GENERATED_BODY() UPROPERTY(EditAnywhere, meta = (AllowedClasses = "SoundSubmix")) TSoftObjectPtr Submix = nullptr; UPROPERTY(EditAnywhere, meta = (AllowedClasses = "SoundEffectSubmixPreset")) TArray> SubmixEffectChain; }; /** * */ UCLASS(config = Game, defaultconfig, meta = (DisplayName = "LyraAudioSettings")) class LYRAGAME_API ULyraAudioSettings : public UDeveloperSettings { GENERATED_BODY() public: /** The Default Base Control Bus Mix */ UPROPERTY(config, EditAnywhere, Category = MixSettings, meta = (AllowedClasses = "SoundControlBusMix")) FSoftObjectPath DefaultControlBusMix; /** The Loading Screen Control Bus Mix - Called during loading screens to cover background audio events */ UPROPERTY(config, EditAnywhere, Category = MixSettings, meta = (AllowedClasses = "SoundControlBusMix")) FSoftObjectPath LoadingScreenControlBusMix; /** The Default Base Control Bus Mix */ UPROPERTY(config, EditAnywhere, Category = UserMixSettings, meta = (AllowedClasses = "SoundControlBusMix")) FSoftObjectPath UserSettingsControlBusMix; /** Control Bus assigned to the Overall sound volume setting */ UPROPERTY(config, EditAnywhere, Category = UserMixSettings, meta = (AllowedClasses = "SoundControlBus")) FSoftObjectPath OverallVolumeControlBus; /** Control Bus assigned to the Music sound volume setting */ UPROPERTY(config, EditAnywhere, Category = UserMixSettings, meta = (AllowedClasses = "SoundControlBus")) FSoftObjectPath MusicVolumeControlBus; /** Control Bus assigned to the SoundFX sound volume setting */ UPROPERTY(config, EditAnywhere, Category = UserMixSettings, meta = (AllowedClasses = "SoundControlBus")) FSoftObjectPath SoundFXVolumeControlBus; /** Control Bus assigned to the Dialogue sound volume setting */ UPROPERTY(config, EditAnywhere, Category = UserMixSettings, meta = (AllowedClasses = "SoundControlBus")) FSoftObjectPath DialogueVolumeControlBus; /** Control Bus assigned to the VoiceChat sound volume setting */ UPROPERTY(config, EditAnywhere, Category = UserMixSettings, meta = (AllowedClasses = "SoundControlBus")) FSoftObjectPath VoiceChatVolumeControlBus; /** Submix Processing Chains to achieve high dynamic range audio output */ UPROPERTY(config, EditAnywhere, Category = EffectSettings) TArray HDRAudioSubmixEffectChain; /** Submix Processing Chains to achieve low dynamic range audio output */ UPROPERTY(config, EditAnywhere, Category = EffectSettings) TArray LDRAudioSubmixEffectChain; private: };