You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#jira UE-91858 #rb Ethan.Geller #ROBOMERGE-SOURCE: CL 12926579 in //UE4/Release-4.25/... via CL 12926596 via CL 12926657 #ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288) [CL 12926695 by maxwell hayes in Main branch]
43 lines
1.6 KiB
C++
43 lines
1.6 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
#pragma once
|
|
|
|
#include "AudioCaptureCore.h"
|
|
#include <AudioToolbox/AudioToolbox.h>
|
|
#include <AudioUnit/AudioUnit.h>
|
|
|
|
namespace Audio
|
|
{
|
|
class FAudioCaptureAudioUnitStream : public IAudioCaptureStream
|
|
{
|
|
public:
|
|
FAudioCaptureAudioUnitStream();
|
|
|
|
virtual bool GetCaptureDeviceInfo(FCaptureDeviceInfo& OutInfo, int32 DeviceIndex) override;
|
|
virtual bool OpenCaptureStream(const FAudioCaptureDeviceParams& InParams, FOnCaptureFunction InOnCapture, uint32 NumFramesDesired) override;
|
|
virtual bool CloseStream() override;
|
|
virtual bool StartStream() override;
|
|
virtual bool StopStream() override;
|
|
virtual bool AbortStream() override;
|
|
virtual bool GetStreamTime(double& OutStreamTime) override;
|
|
virtual int32 GetSampleRate() const override { return SampleRate; }
|
|
virtual bool IsStreamOpen() const override;
|
|
virtual bool IsCapturing() const override;
|
|
virtual void OnAudioCapture(void* InBuffer, uint32 InBufferFrames, double StreamTime, bool bOverflow) override;
|
|
virtual bool GetInputDevicesAvailable(TArray<FCaptureDeviceInfo>& OutDevices) override;
|
|
virtual void SetHardwareFeatureEnabled(EHardwareInputFeature FeatureType, bool bEnabled);
|
|
|
|
OSStatus OnCaptureCallback( AudioUnitRenderActionFlags* ioActionFlags, const AudioTimeStamp* inTimeStamp, UInt32 inBusNumber, UInt32 inNumberFrames, AudioBufferList* ioData );
|
|
|
|
private:
|
|
void AllocateBuffer(int SizeInBytes);
|
|
|
|
AudioComponentInstance IOUnit;
|
|
|
|
FOnCaptureFunction OnCapture;
|
|
int32 NumChannels;
|
|
int32 SampleRate;
|
|
TArray<uint8> CaptureBuffer;
|
|
int BufferSize = 0;
|
|
};
|
|
}
|