VJ Master 1.0
Real-time audio analysis and visualisation.
Loading...
Searching...
No Matches
ST_AudioProcessingFunctionLibrary.h
1// Copyright (c) 2025 Aaron Trotter (ShaderTech). All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Kismet/BlueprintFunctionLibrary.h"
7#include "Main/ST_AudioProcessingSettings.h"
8#include "ST_AudioProcessingFunctionLibrary.generated.h"
9
10struct ma_device_config;
11
19UCLASS()
20class ST_AUDIOPROCESSING_API UST_AudioProcessingFunctionLibrary : public UBlueprintFunctionLibrary
21{
22 GENERATED_BODY()
23
24public:
33 UFUNCTION(BlueprintPure, Category = "ShaderTech|AudioProcessing|IO")
34 static class UST_AudioIOBase* GetST_AudioIO(EAudioIOType Type);
35
45 UFUNCTION(BlueprintPure, Category = "ShaderTech|AudioProcessing|IO")
46 static class UST_AudioIOBase* GetST_AudioIOFromId(FIntPoint IOId);
47
57 static bool GetST_AudioIOsInMask(int32 IOMask, TArray<class UST_AudioIOBase*>& ValidIOs);
58
66 UFUNCTION(BlueprintPure, Category = "ShaderTech|AudioProcessing|IO")
68
76 UFUNCTION(BlueprintPure, Category = "ShaderTech|AudioProcessing|IO")
78
86 UFUNCTION(BlueprintPure, Category = "ShaderTech|AudioProcessing|IO")
88
96 UFUNCTION(BlueprintPure, Category = "ShaderTech|AudioProcessing|IO")
98
106 UFUNCTION(BlueprintPure, Category = "ShaderTech|AudioProcessing|IO")
108
118 UFUNCTION(BlueprintPure, Category = "ShaderTech|AudioProcessing|IO")
119 static bool IsGlobalAudioIOFlagged(EAudioIOType Type);
120
130 UFUNCTION(BlueprintPure, Category = "ShaderTech|AudioProcessing|IO")
131 static void GetIOId(EAudioIOType Type, FIntPoint& Id);
132
140 UFUNCTION(BlueprintPure, Category = "ShaderTech|AudioProcessing|IO")
141 static int32 CountIOEnum();
142
150 UFUNCTION(BlueprintPure, Category = "ShaderTech|AudioProcessing|IO")
151 static int32 GetNumIOs();
152
160 UFUNCTION(BlueprintCallable, Category = "ShaderTech|AudioProcessing|IO")
161 static TArray<class UST_AudioIOBase*> GetAudioIOs();
162
170 UFUNCTION(BlueprintCallable, Category = "ShaderTech|AudioProcessing")
171 static TArray<FName> GetPlaybackDeviceNames();
172
180 UFUNCTION(BlueprintCallable, Category = "ShaderTech|AudioProcessing")
181 static TArray<FName> GetCaptureDeviceNames();
182
190 UFUNCTION(BlueprintCallable, Category = "ShaderTech|AudioProcessing")
191 static FString GetAudioFilePathFromLocation(EST_AudioFileLocation AudioFileLocation);
192
204 static void GetPeriodsData(const ma_device_config* pConfig, uint32& periodsOut, uint32& periodSizeInFramesOut, uint32& periodDurationInMicrosecondsOut);
205};
A class responsible for capturing audio in a loopback mode.
Definition ST_AudioCaptureLoopback.h:19
A class responsible for capturing audio from a microphone.
Definition ST_AudioCaptureMicrophone.h:18
Base class for Audio IO functionality in ShaderTech.
Definition ST_AudioIOBase.h:38
FIntPoint GetIOId() const
Definition ST_AudioIOBase.h:301
A class responsible for managing audio playback using a playback engine.
Definition ST_AudioPlaybackEnginePlayer.h:21
A class responsible for managing audio playback.
Definition ST_AudioPlaybackPlayer.h:17
A class responsible for managing audio playback with waveform data.
Definition ST_AudioPlaybackWaveform.h:18
A library of static functions providing access to different audio I/O systems and devices.
Definition ST_AudioProcessingFunctionLibrary.h:21
static bool GetST_AudioIOsInMask(int32 IOMask, TArray< class UST_AudioIOBase * > &ValidIOs)
Gets all valid audio I/O systems based on a provided I/O mask.
Definition ST_AudioProcessingFunctionLibrary.cpp:63
static class UST_AudioCaptureLoopback * GetST_AudioCaptureLoopback()
Retrieves an audio capture loopback instance.
Definition ST_AudioProcessingFunctionLibrary.cpp:99
static class UST_AudioPlaybackWaveform * GetST_AudioPlaybackWaveform()
Retrieves an audio playback waveform instance.
Definition ST_AudioProcessingFunctionLibrary.cpp:129
static bool IsGlobalAudioIOFlagged(EAudioIOType Type)
Checks if a global audio I/O system is flagged based on the I/O type.
Definition ST_AudioProcessingFunctionLibrary.cpp:139
static int32 GetNumIOs()
Retrieves the total number of audio I/O systems.
Definition ST_AudioProcessingFunctionLibrary.cpp:203
static class UST_AudioIOBase * GetST_AudioIO(EAudioIOType Type)
Retrieves a specific audio I/O instance based on the provided I/O type.
Definition ST_AudioProcessingFunctionLibrary.cpp:32
static class UST_AudioPlaybackEnginePlayer * GetST_AudioPlaybackEnginePlayer()
Retrieves an audio playback engine player instance.
Definition ST_AudioProcessingFunctionLibrary.cpp:109
static int32 CountIOEnum()
Retrieves the total count of audio I/O types.
Definition ST_AudioProcessingFunctionLibrary.cpp:198
static FString GetAudioFilePathFromLocation(EST_AudioFileLocation AudioFileLocation)
Retrieves the path from the given audio file location.
Definition ST_AudioProcessingFunctionLibrary.cpp:300
static class UST_AudioCaptureMicrophone * GetST_AudioCaptureMicrophone()
Retrieves an audio capture microphone instance.
Definition ST_AudioProcessingFunctionLibrary.cpp:89
static class UST_AudioPlaybackPlayer * GetST_AudioPlaybackPlayer()
Retrieves an audio playback player instance.
Definition ST_AudioProcessingFunctionLibrary.cpp:119
static void GetPeriodsData(const ma_device_config *pConfig, uint32 &periodsOut, uint32 &periodSizeInFramesOut, uint32 &periodDurationInMicrosecondsOut)
Retrieves data related to audio periods for a given device configuration.
Definition ST_AudioProcessingFunctionLibrary.cpp:209
static TArray< class UST_AudioIOBase * > GetAudioIOs()
Retrieves all audio I/O systems.
Definition ST_AudioProcessingFunctionLibrary.cpp:145
static TArray< FName > GetCaptureDeviceNames()
Retrieves the names of all capture devices.
Definition ST_AudioProcessingFunctionLibrary.cpp:269
static class UST_AudioIOBase * GetST_AudioIOFromId(FIntPoint IOId)
Retrieves a specific audio I/O instance based on the provided I/O identifier.
Definition ST_AudioProcessingFunctionLibrary.cpp:58
static TArray< FName > GetPlaybackDeviceNames()
Retrieves the names of all playback devices.
Definition ST_AudioProcessingFunctionLibrary.cpp:231
Definition miniaudio.h:7039