VJ Master 1.0
Real-time audio analysis and visualisation.
Loading...
Searching...
No Matches
ST_AudioIOCaptureBase.h
1// Copyright (c) 2025 Aaron Trotter (ShaderTech). All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "IO/Base/ST_AudioIOBase.h"
7#include "Main/ST_AudioProcessingSettings.h"
8#include "ST_AudioIOCaptureBase.generated.h"
9
10struct ma_device;
11struct ma_encoder;
12using ma_uint32 = unsigned int;
13
19UCLASS(BlueprintType, Abstract)
20class ST_AUDIOPROCESSING_API UST_AudioIOCaptureBase : public UST_AudioIOBase
21{
22 GENERATED_BODY()
23
24public:
25
30 bool IsCapturing() const;
31
42 static void MA_CaptureCallBack(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount);
43
49
54 virtual EST_SampleFormat GetAudioFormat() const override;
55
56protected:
57
61 virtual void DeinitializeAudioIO() override;
62
67 virtual ma_encoder* GetCaptureEncoder() const override;
68
73 void SetIsCapturing(bool bValue);
74
77
80
81private:
82
84 bool bIsCapturing = false;
85};
86
88{
89 return bIsCapturing;
90}
91
96
98{
99 bIsCapturing = value;
100}
101
106
107inline EST_SampleFormat UST_AudioIOCaptureBase::GetAudioFormat() const
108{
109 if (CaptureDevice == nullptr)
110 {
111 return Super::GetAudioFormat();
112 }
113 return (EST_SampleFormat)CaptureDevice->capture.format;
114}
UST_AudioIOBase()
Definition ST_AudioIOBase.cpp:18
FAudioIOConfig CachedAudioIOConfig
Cached audio IO configuration.
Definition ST_AudioIOBase.h:226
Abstract base class for audio capture IO in ShaderTech Audio Processing.
Definition ST_AudioIOCaptureBase.h:21
static void MA_CaptureCallBack(ma_device *pDevice, void *pOutput, const void *pInput, ma_uint32 frameCount)
Static callback for Miniaudio capture device.
Definition ST_AudioIOCaptureBase.cpp:30
ma_device * CaptureDevice
Definition ST_AudioIOCaptureBase.h:76
bool IsCapturing() const
Checks if audio capture is currently active.
Definition ST_AudioIOCaptureBase.h:87
virtual ma_encoder * GetCaptureEncoder() const override
Provides access to the active capture encoder.
Definition ST_AudioIOCaptureBase.h:92
ma_encoder * CaptureEncoder
Definition ST_AudioIOCaptureBase.h:79
virtual void DeinitializeAudioIO() override
Deinitializes audio IO specific to capture.
Definition ST_AudioIOCaptureBase.cpp:6
virtual EST_SampleFormat GetAudioFormat() const override
Returns the current audio format.
Definition ST_AudioIOCaptureBase.h:107
FEncoderConfig GetEncoderConfig() const
Returns the current capture encoder configuration.
Definition ST_AudioIOCaptureBase.h:102
void SetIsCapturing(bool bValue)
Sets the internal capturing state.
Definition ST_AudioIOCaptureBase.h:97
Structure that holds configuration for audio encoding.
Definition ST_AudioProcessingSettings.h:1008
Definition miniaudio.h:7710
Definition miniaudio.h:10059