#pragma once

#include "CoreMinimal.h"
#include "AudioLinkSettingsAbstract.h"
#include "UObject/SoftObjectPtr.h"
#include "WwiseAudioLinkSettings.generated.h"

class UAkAudioEvent;

UCLASS(Blueprintable, EditInlineNew)
class WWISEAUDIOLINKRUNTIME_API UWwiseAudioLinkSettings : public UAudioLinkSettingsAbstract
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TSoftObjectPtr<UAkAudioEvent> StartEvent;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool bShouldClearBufferOnReceipt;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float ProducerToConsumerBufferRatio;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float InitialSilenceFillRatio;

protected:
	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	UAkAudioEvent* StartEventResolved;

public:
	UWwiseAudioLinkSettings();
};

FORCEINLINE uint32 GetTypeHash(const UWwiseAudioLinkSettings) { return 0; }
