#pragma once

#include "ArriCameraTypes.generated.h"

USTRUCT(BlueprintType)
struct FArriSensorDimensions
{
	GENERATED_BODY()

	float sensorWidth;
	float sensorHeight;
};

UENUM(BlueprintType)
enum class Alexa65 : uint8
{
	NONE UMETA(DisplayName = "None"),
	ARRIRAW_OG_65K UMETA(DisplayName = "ARRIRAW OpenGate 6.5K"),
	ARRIRAW_169_51K UMETA(DisplayName = "ARRIRAW 16:9 5.1K"),
	ARRIRAW_32_43K UMETA(DisplayName = "ARRIRAW 3:2 4.3K"),
	ARRIRAW_169_4K_UHD UMETA(DisplayName = "ARRIRAW 16:9 4K UHD"),
	ARRIRAW_LF_OG_45K UMETA(DisplayName = "ARRIRAW LF OpenGate 4.5K")
};

UENUM(BlueprintType)
enum class AlexaLF : uint8
{
	NONE UMETA(DisplayName = "None"),
	ARRIRAW_LF_169_4K_UHD UMETA(DisplayName = "ARRIRAW LF 16:9 4K UHD"),
	ARRIRAW_LF_2391_Scope_45K UMETA(DisplayNAme = "ARRIRAW LF 2.39:1 Scope 4.5K"),
	ARRIRAW_LF_OG_45K UMETA(DisplayName = "ARRIRAW LF OpenGate 4.5K"),
	PRORES_LF_169_HD UMETA(DisplayName = "ProRes LF 16:9 HD"),
	PRORES_LF_169_2K UMETA(DisplayName = "ProRes LF 16:9 2K"),
	PRORES_LF_169_4K_UHD UMETA(DisplayName = "ProRes LF 16:9 4K UHD"),
	PRORES_LF_2391_Scope_45K UMETA(DisplayName = "ProRes LF 2.39:1 Scope 4.5K"),
	PRORES_LF_OG_45K UMETA(DisplayName = "ProRes LF OpenGate 4.5K")
};

UENUM(BlueprintType)
enum class Amira : uint8
{
	NONE UMETA(DisplayName = "None"),
	ARRIRAW_169_28K UMETA(DisplayName = "ARRIRAW 16:9 2.8K"),
	PRORES_169_HD UMETA(DisplayName = "ProRes 16:9 HD"),
	PRORES_169_S16_HD UMETA(DisplayName = "ProRes 16:9 S16 HD"),
	PRORES_169_2K UMETA(DisplayName = "ProRes 16:9 2K"),
	PRORES_169_32K UMETA(DisplayName = "ProRes 16:9 3.2 K"),
	PRORES_169_4K_UHD UMETA(DisplayName = "ProRes 16:9 4K UHD")
};

UENUM(BlueprintType)
enum class AlexaMiniLF : uint8
{
	NONE UMETA(DisplayName = "None"),
	ARRIRAW_45K_LF_32_OG_45K UMETA(DisplayName = "ARRIRAW 4.5K LF 3:2 OpenGate - 4.5K"),
	ARRIRAW_45K_LF_2391_45K UMETA(DisplayName = "ARRIRAW 4.5K LF 2.39:1 - 4.5K"),
	ARRIRAW_38K_LF_169_UHD UMETA(DisplayName = "ARRIRAW 3.8K LF 16:9 - UHD"),
	ARRIRAW_28K_LF_11_28K UMETA(DisplayName = "ARRIRAW 2.8K LF 1:1 - 2.8K"),
	ARRIRAW_34K_S35_32_34K UMETA(DisplayName = "ARRIRAW 3.4K S35 3:2 - 3.4K"),
	PRORES_45K_LF_32_OG_45K UMETA(DisplayName = "ProRes 4.5 K LF 3:2 OpenGate - 4.5K"),
	PRORES_45K_LF_2391_45K UMETA(DisplayName = "ProRes 4.5K LF 2.39:1 - 4.5K"),
	PRORES_43K_LF_169_UHD UMETA(DisplayName = "ProRes 4.3K LF 16:9 - UHD"),
	PRORES_43K_LF_169_HD UMETA(DisplayNAme = "ProRes 4.3K LF 16:9 - HD"),
	PRORES_38K_LF_169_UHD UMETA(DisplayName = "ProRes 3.8K LF 16:9 - UHD"),
	PRORES_38K_LF_169_2K UMETA(DisplayName = "ProRes 3.8K LF 16:9 - 2K"),
	PRORES_38K_LF_169_HD UMETA(DisplayName = "ProRes 3.8K LF 16:9 - HD"),
	PRORES_28K_LF_11_28K UMETA(DisplayName = "ProRes 2.8K LF 1:1 - 2.8K"),
	PRORES_32K_S35_169_32K UMETA(DisplayName = "ProRes 3.2K S35 16:9 - 3.2K"),
	PRORES_28K_S35_43_28K UMETA(DisplayName = "ProRes 2.8K S35 4:3 - 2.8K"),
	PRORES_28K_S35_169_HD UMETA(DisplayName = "ProRes 2.8K S35 16:9 - HD")
};

UENUM(BlueprintType)
enum class AlexaMini : uint8
{
	NONE UMETA(DisplayName = "None"),
	ARRIRAW_28K_169 UMETA(DisplayName = "ARRIRAW 16:9 - 2.8K"),
	ARRIRAW_OG_34K UMETA(DisplayName = "ARRIRAW OpenGate - 3.4K"),
	ARRIRAW_28K_43 UMETA(DisplayName = "ARRIRAW 4:3 - 2.8K"),
	ARRIRAW_169_HD_ANA UMETA(DisplayNAme = "ARRIRAW 16:9 HD Ana."),
	ARRIRAW_2391_2K_Ana UMETA(DisplayName = "ARRIRAW 2.39:1 2K Ana."),
	PRORES_169_HD UMETA(DisplayName = "ProRes 16:9 HD"),
	PRORES_169_S16_HD UMETA(DisplayName = "ProRes 16:9 S16 HD"),
	PRORES_169_HD_ANA UMETA(DisplayName = "ProRes 16:9 HD Ana."),
	PRORES_169_2K UMETA(DisplayName = "ProRes 16:9 2K"),
	PRORES_2391_2K_ANA UMETA(DisplayName = "ProRes 2.39:1 2K Ana."),
	PRORES_169_32K UMETA(DisplayName = "ProRes 16:9 3.2K"),
	PRORES_169_4K_UHD UMETA(DisplayName = "ProRes 16:9 4K UHD"),
	PRORES_43_28K UMETA(DisplayName = "ProRes 4:3 2.8K")
};

UENUM(BlueprintType)
enum class ArriCameraType : uint8
{
	NONE UMETA(DisplayName = "None"),
	ALEXALF UMETA(DisplayName = "Alexa LF"),
	ALEXA65 UMETA(DisplayName = "Alexa 65"),
	ALEXAMINILF UMETA(DisplayName = "Alexa Mini LF"),
	ALEXAMINI UMETA(DisplayName = "Alexa Mini"),
	AMIRA UMETA(DisplayName = "Amira")
};