Files
UnrealEngine/Engine/Source/Runtime/Media/Public/IMediaCaptureSupport.h
2025-05-18 13:04:45 +08:00

101 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreTypes.h"
#include "Containers/Array.h"
#include "Containers/UnrealString.h"
#include "Internationalization/Text.h"
/**
* Known capture device types.
*/
enum class EMediaCaptureDeviceType : uint32
{
/** Unknown capture device type. */
Unknown,
/** Unspecified audio capture device. */
Audio,
/** Audio capture card. */
AudioCard,
/** Software audio capture device. */
AudioSoftware,
/** Depth sensors. */
DepthSensor,
/** Microphone. */
Microphone,
/** Unspecified video capture device. */
Video,
/** Video capture card. */
VideoCard,
/** Software video capture device. */
VideoSoftware,
/** Unspecified web cam. */
Webcam,
/** Front facing web cams. */
WebcamFront,
/** Rear facing web cams. */
WebcamRear
};
/**
* Information about a capture device.
*/
struct FMediaCaptureDeviceInfo
{
/** Human readable display name. */
FText DisplayName;
/** Device specific debug information. */
FString Info;
/** The type of capture device. */
EMediaCaptureDeviceType Type;
/** Media URL string for use with media players. */
FString Url;
};
/**
* Interface for media capture support classes.
*/
class IMediaCaptureSupport
{
public:
/**
* Enumerate available audio capture devices.
*
* @param OutDeviceInfos Will contain information about the devices.
* @see EnumerateVideoCaptureDevices
*/
virtual void EnumerateAudioCaptureDevices(TArray<FMediaCaptureDeviceInfo>& OutDeviceInfos) = 0;
/**
* Enumerate available video capture devices.
*
* @param OutDeviceInfos Will contain information about the devices.
* @see EnumerateAudioCaptureDevices
*/
virtual void EnumerateVideoCaptureDevices(TArray<FMediaCaptureDeviceInfo>& OutDeviceInfos) = 0;
public:
/** Virtual destructor. */
virtual ~IMediaCaptureSupport() { }
};