#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: ResonanceAudio

#include "Basic.hpp"

#include "Engine_classes.hpp"
#include "ResonanceAudio_structs.hpp"
#include "AudioExtensions_classes.hpp"
#include "CoreUObject_structs.hpp"
#include "CoreUObject_classes.hpp"


SDK_NAMESPACE_START

// Class ResonanceAudio.ResonanceAudioSoundfieldSettings
// 0x0008 (0x0030 - 0x0028)
class UResonanceAudioSoundfieldSettings final : public USoundfieldEncodingSettingsBase
{
public:
	EResonanceRenderMode                          RenderMode;                                        // 0x0028(0x0001)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_29[0x7];                                       // 0x0029(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ResonanceAudioSoundfieldSettings")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ResonanceAudioSoundfieldSettings")
	}
	static class UResonanceAudioSoundfieldSettings* GetDefaultObj()
	{
		return GetDefaultObjImpl<UResonanceAudioSoundfieldSettings>();
	}
};
DUMPER7_ASSERTS_UResonanceAudioSoundfieldSettings;

// Class ResonanceAudio.ResonanceAudioBlueprintFunctionLibrary
// 0x0000 (0x0028 - 0x0028)
class UResonanceAudioBlueprintFunctionLibrary final : public UBlueprintFunctionLibrary
{
public:
	static class UResonanceAudioReverbPluginPreset* GetGlobalReverbPreset();
	static void SetGlobalReverbPreset(class UResonanceAudioReverbPluginPreset* InPreset);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ResonanceAudioBlueprintFunctionLibrary")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ResonanceAudioBlueprintFunctionLibrary")
	}
	static class UResonanceAudioBlueprintFunctionLibrary* GetDefaultObj()
	{
		return GetDefaultObjImpl<UResonanceAudioBlueprintFunctionLibrary>();
	}
};
DUMPER7_ASSERTS_UResonanceAudioBlueprintFunctionLibrary;

// Class ResonanceAudio.ResonanceAudioDirectivityVisualizer
// 0x0080 (0x0328 - 0x02A8)
class AResonanceAudioDirectivityVisualizer final : public AActor
{
public:
	uint8                                         Pad_2A8[0x70];                                     // 0x02A8(0x0070)(Fixing Size After Last Property [ Dumper-7 ])
	class UMaterial*                              Material;                                          // 0x0318(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	class UResonanceAudioSpatializationSourceSettings* Settings;                                     // 0x0320(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ResonanceAudioDirectivityVisualizer")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ResonanceAudioDirectivityVisualizer")
	}
	static class AResonanceAudioDirectivityVisualizer* GetDefaultObj()
	{
		return GetDefaultObjImpl<AResonanceAudioDirectivityVisualizer>();
	}
};
DUMPER7_ASSERTS_AResonanceAudioDirectivityVisualizer;

// Class ResonanceAudio.ResonanceAudioReverbPluginPreset
// 0x0108 (0x0170 - 0x0068)
class UResonanceAudioReverbPluginPreset final : public USoundEffectSubmixPreset
{
public:
	uint8                                         Pad_68[0x98];                                      // 0x0068(0x0098)(Fixing Size After Last Property [ Dumper-7 ])
	struct FResonanceAudioReverbPluginSettings    Settings;                                          // 0x0100(0x0070)(Edit, NoDestructor, NativeAccessSpecifierPublic)

public:
	void SetEnableRoomEffects(bool bInEnableRoomEffects);
	void SetReflectionScalar(float InReflectionScalar);
	void SetReverbBrightness(float InReverbBrightness);
	void SetReverbGain(float InReverbGain);
	void SetReverbTimeModifier(float InReverbTimeModifier);
	void SetRoomDimensions(const struct FVector& InDimensions);
	void SetRoomMaterials(const TArray<ERaMaterialName>& InMaterials);
	void SetRoomPosition(const struct FVector& InPosition);
	void SetRoomRotation(const struct FQuat& InRotation);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ResonanceAudioReverbPluginPreset")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ResonanceAudioReverbPluginPreset")
	}
	static class UResonanceAudioReverbPluginPreset* GetDefaultObj()
	{
		return GetDefaultObjImpl<UResonanceAudioReverbPluginPreset>();
	}
};
DUMPER7_ASSERTS_UResonanceAudioReverbPluginPreset;

// Class ResonanceAudio.ResonanceAudioSettings
// 0x0068 (0x0090 - 0x0028)
class UResonanceAudioSettings final : public UObject
{
public:
	struct FSoftObjectPath                        OutputSubmix;                                      // 0x0028(0x0020)(Edit, ZeroConstructor, Config, GlobalConfig, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	ERaQualityMode                                QualityMode;                                       // 0x0048(0x0001)(Edit, ZeroConstructor, Config, GlobalConfig, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_49[0x7];                                       // 0x0049(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	struct FSoftObjectPath                        GlobalReverbPreset;                                // 0x0050(0x0020)(Edit, ZeroConstructor, Config, GlobalConfig, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FSoftObjectPath                        GlobalSourcePreset;                                // 0x0070(0x0020)(Edit, ZeroConstructor, Config, GlobalConfig, HasGetValueTypeHash, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ResonanceAudioSettings")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ResonanceAudioSettings")
	}
	static class UResonanceAudioSettings* GetDefaultObj()
	{
		return GetDefaultObjImpl<UResonanceAudioSettings>();
	}
};
DUMPER7_ASSERTS_UResonanceAudioSettings;

// Class ResonanceAudio.ResonanceAudioSpatializationSourceSettings
// 0x0028 (0x0050 - 0x0028)
class UResonanceAudioSpatializationSourceSettings final : public USpatializationPluginSourceSettingsBase
{
public:
	ERaSpatializationMethod                       SpatializationMethod;                              // 0x0028(0x0001)(Edit, ZeroConstructor, Config, GlobalConfig, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_29[0x3];                                       // 0x0029(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	float                                         Pattern;                                           // 0x002C(0x0004)(Edit, ZeroConstructor, Config, GlobalConfig, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         Sharpness;                                         // 0x0030(0x0004)(Edit, ZeroConstructor, Config, GlobalConfig, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bToggleVisualization;                              // 0x0034(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_35[0x3];                                       // 0x0035(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	float                                         Scale;                                             // 0x0038(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         Spread;                                            // 0x003C(0x0004)(Edit, ZeroConstructor, Config, GlobalConfig, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	ERaDistanceRolloffModel                       Rolloff;                                           // 0x0040(0x0001)(Edit, ZeroConstructor, Config, GlobalConfig, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_41[0x3];                                       // 0x0041(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	float                                         MinDistance;                                       // 0x0044(0x0004)(Edit, ZeroConstructor, Config, GlobalConfig, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         MaxDistance;                                       // 0x0048(0x0004)(Edit, ZeroConstructor, Config, GlobalConfig, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_4C[0x4];                                       // 0x004C(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void SetSoundSourceDirectivity(float InPattern, float InSharpness);
	void SetSoundSourceSpread(float InSpread);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ResonanceAudioSpatializationSourceSettings")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ResonanceAudioSpatializationSourceSettings")
	}
	static class UResonanceAudioSpatializationSourceSettings* GetDefaultObj()
	{
		return GetDefaultObjImpl<UResonanceAudioSpatializationSourceSettings>();
	}
};
DUMPER7_ASSERTS_UResonanceAudioSpatializationSourceSettings;

SDK_NAMESPACE_END
