Files
UnrealEngineUWP/Engine/Plugins/Runtime/AudioModulation/Source/AudioModulation/Public/SoundControlBusMix.h
aurel cordonnier d17d20ca36 Merge from Release-Engine-Test @ 16758890 to UE5/Main
This represents UE4/Main @ 16738161 and Dev-PerfTest @ 16737719 (and Release-17.00 @ 16658211)

[CL 16763350 by aurel cordonnier in ue5-main branch]
2021-06-23 17:51:32 -04:00

82 lines
2.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "IAudioModulation.h"
#include "SoundModulationValue.h"
#include "UObject/Object.h"
#include "UObject/ObjectMacros.h"
#include "UObject/UnrealType.h"
#include "SoundControlBusMix.generated.h"
// Forward Declarations
class USoundControlBus;
USTRUCT(BlueprintType)
struct AUDIOMODULATION_API FSoundControlBusMixStage
{
GENERATED_USTRUCT_BODY()
FSoundControlBusMixStage();
FSoundControlBusMixStage(USoundControlBus* InBus, const float TargetValue);
/* Bus controlled by stage. */
UPROPERTY(EditAnywhere, Category = Stage, BlueprintReadWrite)
USoundControlBus* Bus;
/* Value mix is set to. */
UPROPERTY(EditAnywhere, Category = Stage, BlueprintReadWrite)
FSoundModulationMixValue Value;
};
UCLASS(config = Engine, autoexpandcategories = (Stage, Mix), editinlinenew, BlueprintType, MinimalAPI)
class USoundControlBusMix : public UObject
{
GENERATED_UCLASS_BODY()
protected:
// Loads the mix from the provided profile index
UFUNCTION(Category = Mix, meta = (CallInEditor = "true"))
void LoadMixFromProfile();
// Saves the mix to the provided profile index
UFUNCTION(Category = Mix, meta = (CallInEditor = "true"))
void SaveMixToProfile();
// Solos this mix, deactivating all others and activating this
// (if its not already active), while testing in-editor in all
// active worlds
UFUNCTION(Category = Mix, meta = (CallInEditor = "true"))
void SoloMix();
// Activates this mix in all active worlds
UFUNCTION(Category = Mix, meta = (CallInEditor = "true"))
void ActivateMix();
// Deactivates this mix in all active worlds
UFUNCTION(Category = Mix, meta = (CallInEditor = "true"))
void DeactivateMix();
// Deactivates all mixes in all active worlds
UFUNCTION(Category = Mix, meta = (CallInEditor = "true"))
void DeactivateAllMixes();
public:
UPROPERTY(EditAnywhere, Transient, Category = Mix)
uint32 ProfileIndex;
virtual void BeginDestroy() override;
#if WITH_EDITOR
virtual void PostEditChangeProperty(FPropertyChangedEvent& InPropertyChangedEvent) override;
virtual void PostEditChangeChainProperty(FPropertyChangedChainEvent& InPropertyChangedEvent) override;
virtual void OnPropertyChanged(FProperty* Property, EPropertyChangeType::Type ChangeType);
#endif // WITH_EDITOR
/* Array of stages controlled by mix. */
UPROPERTY(EditAnywhere, Category = Mix, BlueprintReadOnly)
TArray<FSoundControlBusMixStage> MixStages;
};