VJ Master 1.3
Real-time audio analysis and visualisation.
 
Loading...
Searching...
No Matches
ST_VisBase.h
1// Copyright (c) 2025 Aaron Trotter (ShaderTech). All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "GameFramework/Actor.h"
7#include "Main/ST_AudioProcessingInterface.h"
8#include "Main/ST_AudioProcessingSettings.h"
9#include "ST_VisBase.generated.h"
10
15UCLASS(BlueprintType, Abstract)
16class ST_AUDIOVISUALISATION_API AST_VisBase : public AActor, public IST_AudioProcessingInterface
17{
18 GENERATED_BODY()
19
20public:
23
24protected:
26 virtual void PostInitializeComponents() override;
27
28public:
30 virtual void Tick(float DeltaTime) override;
31
33 virtual void BeginPlay() override;
34
36 virtual void HandleBeginPlay();
37
39 virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
40
42 UFUNCTION(BlueprintCallable, Category = "ShaderTech|AudioVisualisation|IO")
43 virtual bool RegisterToIO(EAudioIOType NewAudioIOType);
44
46 bool RegisterToIO(int32 NewAudioIOType);
47
49 UFUNCTION(BlueprintCallable, Category = "ShaderTech|AudioVisualisation|IO")
50 virtual void DeregisterFromIO(EAudioIOType CurrAudioIOType);
51
53 void DeregisterFromIO(int32 CurrAudioIOType);
54
56 virtual bool SetConstantParameters();
57
59 virtual bool SetDynamicParameters();
60
61protected:
63 UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Bounds")
64 USceneComponent* Root = nullptr;
65
67 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ShaderTech|AudioVisualisation")
68 bool bCustomBeginPlay = false;
69
71 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ShaderTech|AudioVisualisation")
72 bool bSamplerActivates = false;
73
75 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ShaderTech|AudioVisualisation")
77
79 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ShaderTech|AudioVisualisation", meta = (Bitmask, BitmaskEnum = "/Script/ST_AudioProcessing.EAudioIOType"))
81
83 UPROPERTY(Transient, VisibleAnywhere, BlueprintReadOnly, Category = "ShaderTech|AudioVisualisation", meta = (Bitmask, BitmaskEnum = "/Script/ST_AudioProcessing.EAudioIOType"))
85
86#if WITH_EDITORONLY_DATA
87public:
89 virtual bool ShouldTickIfViewportsOnly() const override;
90
92 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ShaderTech|AudioVisualisation")
93 bool bUpdateInEditor = false;
94#endif
95};
96
97inline bool AST_VisBase::RegisterToIO(EAudioIOType NewAudioIOType)
98{
99 return RegisterToIO((int32)NewAudioIOType);
100}
101
102inline void AST_VisBase::DeregisterFromIO(EAudioIOType CurrAudioIOType)
103{
104 DeregisterFromIO((int32)CurrAudioIOType);
105}
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override
Definition ST_VisBase.cpp:39
int32 Default_AudioIOs
Definition ST_VisBase.h:80
virtual bool SetDynamicParameters()
Definition ST_VisBase.cpp:120
bool bZeroSamplersDeactivates
Definition ST_VisBase.h:76
virtual bool RegisterToIO(EAudioIOType NewAudioIOType)
Definition ST_VisBase.h:97
AST_VisBase()
Definition ST_VisBase.cpp:8
virtual void DeregisterFromIO(EAudioIOType CurrAudioIOType)
Definition ST_VisBase.h:102
virtual bool SetConstantParameters()
Definition ST_VisBase.cpp:115
int32 Registered_AudioIOs
Definition ST_VisBase.h:84
virtual void HandleBeginPlay()
Definition ST_VisBase.cpp:29
bool bSamplerActivates
Definition ST_VisBase.h:72
USceneComponent * Root
Definition ST_VisBase.h:64
virtual void BeginPlay() override
Definition ST_VisBase.cpp:17
virtual void PostInitializeComponents() override
Definition ST_VisBase.cpp:34
bool bCustomBeginPlay
Definition ST_VisBase.h:68
virtual void Tick(float DeltaTime) override
Definition ST_VisBase.cpp:89
Interface for handling audio processing events.
Definition ST_AudioProcessingInterface.h:30