5#include "CoreMinimal.h"
6#include "Engine/DeveloperSettings.h"
7#include "ST_AudioControlSettings.generated.h"
17enum class EMIDIType : uint8
19 Both UMETA(DisplayName =
"Both"),
20 Input UMETA(DisplayName =
"Input"),
21 Output UMETA(DisplayName =
"Output"),
22 None UMETA(DisplayName =
"None")
29enum class ELEDColourFormat : uint8
31 RGB UMETA(DisplayName =
"RGB"),
32 RGBA UMETA(DisplayName =
"RGBA"),
33 BGRA UMETA(DisplayName =
"BGRA")
40enum class ELEDAlphaMapping : uint8
42 None UMETA(DisplayName =
"No Alpha (full transparency)"),
43 Linear UMETA(DisplayName =
"Linear (direct multiplication)"),
44 Logarithmic UMETA(DisplayName =
"Logarithmic (smooth, uniform)"),
45 Gamma UMETA(DisplayName =
"Gamma (corrected for display)")
61 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"MIDI")
64 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"MIDI")
77 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"ShaderTech")
80 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"ShaderTech")
85 return Name == Other.Name;
90 return !operator==(Other);
103 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"MIDI")
110USTRUCT(BlueprintType)
119USTRUCT(BlueprintType)
128USTRUCT(BlueprintType)
137USTRUCT(BlueprintType)
143 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP", meta = (SessionRestartRequired))
144 ELEDColourFormat ColourFormat = ELEDColourFormat::RGB;
146 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP", meta = (SessionRestartRequired))
147 ELEDAlphaMapping AlphaMapping = ELEDAlphaMapping::Logarithmic;
149 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP", meta = (SessionRestartRequired, EditCondition =
"AlphaMapping == ELEDAlphaMapping::Gamma", Tooltip =
"A value of 2.2 matches most screens (sRGB) and ensures correct brightness and color perception."))
150 float GammaFactor = 2.2f;
156USTRUCT(BlueprintType)
162 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"LED", meta = (SessionRestartRequired))
163 FIntPoint LEDResolution = FIntPoint(1, 1);
165 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"LED", meta = (SessionRestartRequired))
166 FIntPoint PrevisResolution = FIntPoint(1, 1);
168 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"LED")
175USTRUCT(BlueprintType)
181 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"DMX")
184 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"DMX")
191USTRUCT(BlueprintType)
197 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"DMX", meta = (SessionRestartRequired))
198 TSoftObjectPtr<class UMaterialInterface> LEDMaterial =
nullptr;
200 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"DMX")
201 bool bKeepStateOnEndPlay =
false;
203 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"DMX")
204 TArray<FST_DMXAttribute> DMXAttributes;
210USTRUCT(BlueprintType)
216 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"ArtNet", meta = (SessionRestartRequired))
217 bool bArtNetEnabled =
true;
219 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"ArtNet", meta = (SessionRestartRequired))
220 FString SocketDescription =
"ST_Socket";
222 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"ArtNet", meta = (SessionRestartRequired))
223 FString IpAddress =
"";
225 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"ArtNet", meta = (SessionRestartRequired))
228 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"ArtNet", meta = (SessionRestartRequired, Tooltip =
"Receive buffer size in bytes (default is 64KB on Windows)."))
229 int32 ReceieveBufferSize = 65536;
231 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"ArtNet", meta = (SessionRestartRequired, Tooltip =
"Send buffer size in bytes (default is 64KB on Windows)."))
232 int32 SendBufferSize = 65536;
234 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"ArtNet", meta = (SessionRestartRequired, Tooltip =
"Send Buffer Overhead will be culled when true and fragmented when false."))
235 bool bCullOverhead =
false;
241USTRUCT(BlueprintType)
247 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"DMX")
250 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"DMX")
257USTRUCT(BlueprintType)
263 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"OSC", meta = (SessionRestartRequired))
264 TSoftObjectPtr<class UMaterialInterface> LEDMaterial =
nullptr;
266 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"OSC", meta = (SessionRestartRequired))
267 FString Address =
"/MatLED";
273USTRUCT(BlueprintType)
279 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"OSC")
282 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"OSC", meta = (SessionRestartRequired))
283 bool bOSCEnabled =
true;
285 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"OSC", meta = (SessionRestartRequired))
286 FString SendIpAddress =
"127.0.0.1";
288 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"OSC", meta = (SessionRestartRequired))
289 int32 SendPort = 8000;
291 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"OSC", meta = (SessionRestartRequired))
292 FString SendClientName =
"ST_SendOSCClient";
294 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"OSC", meta = (SessionRestartRequired))
295 FString ReceiveIpAddress =
"127.0.0.1";
297 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"OSC", meta = (SessionRestartRequired))
298 int32 ReceivePort = 8000;
300 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"OSC", meta = (SessionRestartRequired))
301 FString ReceiveClientName =
"ST_ReceiveOSCClient";
303 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP", meta = (SessionRestartRequired, Tooltip =
"Receive buffer size in bytes (default is 64KB on Windows)."))
304 int32 ReceieveBufferSize = 65536;
306 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP", meta = (SessionRestartRequired, Tooltip =
"Send buffer size in bytes (default is 64KB on Windows)."))
307 int32 SendBufferSize = 65536;
309 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP", meta = (SessionRestartRequired, Tooltip =
"Send Buffer Overhead will be culled when true and fragmented when false."))
310 bool bCullOverhead =
false;
316USTRUCT(BlueprintType)
325USTRUCT(BlueprintType)
331 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP", meta = (SessionRestartRequired))
332 TSoftObjectPtr<class UMaterialInterface> LEDMaterial =
nullptr;
338USTRUCT(BlueprintType)
344 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP", meta = (SessionRestartRequired))
345 bool bUDPEnabled =
true;
347 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP", meta = (SessionRestartRequired))
348 FString SocketDescription =
"ST_Socket";
350 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP", meta = (SessionRestartRequired))
351 FString IpAddress =
"";
353 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP", meta = (SessionRestartRequired))
356 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP", meta = (SessionRestartRequired, Tooltip =
"Receive buffer size in bytes (default is 64KB on Windows)."))
357 int32 ReceieveBufferSize = 65536;
359 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP", meta = (SessionRestartRequired, Tooltip =
"Send buffer size in bytes (default is 64KB on Windows)."))
360 int32 SendBufferSize = 65536;
362 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP", meta = (SessionRestartRequired, Tooltip =
"Send Buffer Overhead will be culled when true and fragmented when false."))
363 bool bCullOverhead =
false;
369USTRUCT(BlueprintType)
375 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP")
378 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP")
381 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"UDP")
390DECLARE_MULTICAST_DELEGATE_TwoParams(FOnPostEditChangePropertyDelegate_ACS, UObject*, FPropertyChangedEvent&);
396UCLASS(Config = ST_VJMaster, DefaultConfig, meta = (DisplayName =
"ST Audio Control"))
406 UFUNCTION(BlueprintPure, Category =
"ShaderTech|AudioControl")
409 return GetDefault<UST_AudioControlSettings>();
413 inline static FOnPostEditChangePropertyDelegate_ACS OnPostEditChangeProperty;
415 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
override
417 Super::PostEditChangeProperty(PropertyChangedEvent);
418 OnPostEditChangeProperty.Broadcast(
this, PropertyChangedEvent);
422 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"UDP")
425 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"OSC")
428 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"DMX")
435 return TEXT(
"ShaderTech");
Developer Settings for ShaderTech Audio Control System.
Definition ST_AudioControlSettings.h:398
virtual FName GetCategoryName() const override
Returns the settings category in the editor.
Definition ST_AudioControlSettings.h:433
static const UST_AudioControlSettings * GetST_AudioControlSettings()
Retrieves the current ShaderTech Audio Control settings.
Definition ST_AudioControlSettings.h:407
ArtNet communication configuration.
Definition ST_AudioControlSettings.h:212
Base configuration for LED matrix settings.
Definition ST_AudioControlSettings.h:158
Configuration for DMX system.
Definition ST_AudioControlSettings.h:243
LED matrix configuration specific for DMX.
Definition ST_AudioControlSettings.h:193
LED configuration for color formats and alpha mapping.
Definition ST_AudioControlSettings.h:139
Defines MIDI input value ranges.
Definition ST_AudioControlSettings.h:57
FIntPoint ControlChangeRange
Range for MIDI Control Change messages.
Definition ST_AudioControlSettings.h:62
FIntPoint PitchBendRange
Range for MIDI Pitch Bend messages.
Definition ST_AudioControlSettings.h:65
LED matrix configuration specific for OSC.
Definition ST_AudioControlSettings.h:259
Configuration for OSC system.
Definition ST_AudioControlSettings.h:275
Represents a basic audio controller reference.
Definition ST_AudioControlSettings.h:73
UObject * Controller
Controller object reference.
Definition ST_AudioControlSettings.h:78
FName Name
Controller name identifier.
Definition ST_AudioControlSettings.h:81
Attribute/value pair for DMX control.
Definition ST_AudioControlSettings.h:177
Represents a DMX controller.
Definition ST_AudioControlSettings.h:130
Represents a MIDI device controller.
Definition ST_AudioControlSettings.h:99
EMIDIType MIDIType
Type of the MIDI device.
Definition ST_AudioControlSettings.h:104
Represents an OSC (Open Sound Control) controller.
Definition ST_AudioControlSettings.h:112
Represents a Socket-based controller.
Definition ST_AudioControlSettings.h:121
Socket communication configuration.
Definition ST_AudioControlSettings.h:371
LED configuration specific to Socket communication for material LED displays.
Definition ST_AudioControlSettings.h:327
LED configuration specific to Socket communication.
Definition ST_AudioControlSettings.h:318
UDP communication configuration.
Definition ST_AudioControlSettings.h:340