Enumerations
ELCKAudioChannel
Audio channel types for routing and mixing.
enum ELCKAudioChannel : uint64
{
None = 0, // No audio channel
Game = 1, // Game audio output
Microphone = 1 << 1, // Microphone input
VoiceChat = 1 << 2, // Voice chat audio (reserved)
Max = 1 << 3 // Maximum value marker
};
| Value | Bit | Description | Sources |
|---|
None | 0 | No audio | - |
Game | 1 | Game audio output | UnrealAudio, FMOD, Wwise, Vivox (incoming) |
Microphone | 2 | Microphone input | UnrealAudio, Oboe, Vivox (outgoing) |
VoiceChat | 4 | Reserved | Not currently used |
LCKVivox maps incoming voice chat to Game channel and outgoing microphone to Microphone channel for unified handling.
Button shape types for UI components.
UENUM(BlueprintType)
enum class ELCKButtonType : uint8
{
Square UMETA(DisplayName = "Square"),
Rectangle UMETA(DisplayName = "Rectangle"),
Tab UMETA(DisplayName = "Tab"),
Selector UMETA(DisplayName = "Selector")
};
| Value | Box Extent | UV Step |
|---|
Square | (0.4, 2.4, 2.4) | (0.1, 0.1) |
Rectangle | (0.4, 6.0, 2.4) | (0.25, 0.1) |
Tab | (0.4, 4.4, 2.4) | (0.183, 0.1) |
Selector | (2.4, 4.4, 0.8) | (0.183, 0.033) |
ELCKRecordingState
Recording state machine states.
UENUM(BlueprintType)
enum class ELCKRecordingState : uint8
{
Idle UMETA(DisplayName = "Idle"),
Recording UMETA(DisplayName = "Recording"),
Saving UMETA(DisplayName = "Saving"),
Processing UMETA(DisplayName = "Processing"),
Error UMETA(DisplayName = "Error"),
Paused UMETA(DisplayName = "Paused")
};
| Value | Description |
|---|
Idle | No recording in progress |
Recording | Actively recording |
Saving | Finalizing and saving file |
Processing | Post-processing video |
Error | Error occurred |
Paused | Recording paused |
ELCKVideoQuality
Video quality presets.
UENUM(BlueprintType)
enum class ELCKVideoQuality : uint8
{
SD UMETA(DisplayName = "SD"),
HD UMETA(DisplayName = "HD"),
TWO_K UMETA(DisplayName = "2K"),
FOUR_K UMETA(DisplayName = "4K"),
MAX UMETA(Hidden)
};
| Value | Resolution | Typical Bitrate |
|---|
SD | 1280 x 720 | 2 Mbps |
HD | 1920 x 1080 | 4 Mbps |
TWO_K | 2560 x 1440 | 8 Mbps |
FOUR_K | 3840 x 2160 | 16 Mbps |
ELCKScreenOrientation
Display orientation.
UENUM(BlueprintType)
enum class ELCKScreenOrientation : uint8
{
Landscape UMETA(DisplayName = "Landscape"),
Portrait UMETA(DisplayName = "Portrait")
};
ELCKCameraFacing
Camera facing direction.
UENUM(BlueprintType)
enum class ELCKCameraFacing : uint8
{
Front UMETA(DisplayName = "Front"),
Rear UMETA(DisplayName = "Rear")
};
Touch validation direction.
UENUM(BlueprintType)
enum class ELCKButtonInteractionDirection : uint8
{
Forward UMETA(DisplayName = "Forward"),
Up UMETA(DisplayName = "Up")
};
Structures
FLCKTapData
Touch/interaction event data.
USTRUCT()
struct LCKUI_API FLCKTapData
{
GENERATED_BODY()
UPROPERTY()
FVector ButtonLocation = FVector::ZeroVector;
UPROPERTY()
FVector ButtonRightVector = FVector::ZeroVector;
UPROPERTY()
FVector ButtonForwardVector = FVector::ZeroVector;
UPROPERTY()
FVector TapLocation = FVector::ZeroVector;
UPROPERTY()
bool IsPressed = false;
};
| Field | Type | Description |
|---|
ButtonLocation | FVector | World position of the button |
ButtonRightVector | FVector | Button’s local right vector |
ButtonForwardVector | FVector | Button’s local forward vector |
TapLocation | FVector | World position of the tap event |
IsPressed | bool | Whether button is currently pressed |
FLCKColor
Color palette for UI styling.
USTRUCT()
struct LCKUI_API FLCKColor
{
static constexpr FColor Primary {8, 8, 8};
static constexpr FColor PrimaryText {220, 220, 220};
static constexpr FColor Secondary {16, 16, 16};
static constexpr FColor Disabled {96, 96, 96};
static constexpr FColor ButtonDefault {40, 40, 40};
static constexpr FColor ButtonIconDefault {220, 220, 220};
static constexpr FColor ButtonActive {94, 69, 255};
static constexpr FColor Debug {255, 0, 255};
static constexpr FColor Alert {255, 42, 42};
static constexpr FColor Success {32, 196, 64};
static constexpr FColor White {255, 255, 255};
static constexpr FColor Black {0, 0, 0};
};
| Color | RGB | Hex | Usage |
|---|
Primary | (8, 8, 8) | #080808 | Main background |
PrimaryText | (220, 220, 220) | #DCDCDC | Primary text |
ButtonActive | (94, 69, 255) | #5E45FF | Active/pressed |
Alert | (255, 42, 42) | #FF2A2A | Recording indicator |
Success | (32, 196, 64) | #20C440 | Success state |
ELCKTelemetryEventType
Telemetry event types for analytics.
UENUM()
enum class ELCKTelemetryEventType : uint8
{
GameInitialized UMETA(DisplayName = "Game Initialized"),
ServiceCreated UMETA(DisplayName = "Service Created"),
ServiceDisposed UMETA(DisplayName = "Service Disposed"),
CameraEnabled UMETA(DisplayName = "Camera Enabled"),
CameraDisabled UMETA(DisplayName = "Camera Disabled"),
RecordingStarted UMETA(DisplayName = "Recording Started"),
RecordingStopped UMETA(DisplayName = "Recording Stopped"),
PhotoCaptured UMETA(DisplayName = "Photo Captured"),
PhotoCaptureError UMETA(DisplayName = "Photo Capture Error"),
RecorderError UMETA(DisplayName = "Recorder Error"),
SdkError UMETA(DisplayName = "SDK Error"),
Performance UMETA(DisplayName = "Performance")
};
ELCKGameAudioType
Game audio middleware type for configuration.
UENUM(BlueprintType)
enum class ELCKGameAudioType : uint8
{
None UMETA(DisplayName = "None"),
FMOD UMETA(DisplayName = "FMOD"),
Wwise UMETA(DisplayName = "Wwise"),
UnrealAudio UMETA(DisplayName = "Unreal Audio")
};
Priority order when multiple middlewares are enabled: FMOD > Wwise > UnrealAudio
Structures
FLCKRecorderParams
Recording configuration parameters.
USTRUCT(BlueprintType)
struct FLCKRecorderParams
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 Width = 1920;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 Height = 1080;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 Framerate = 30;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 VideoBitrate = 2000000; // 2 Mbps
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 Samplerate = 48000;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 AudioBitrate = 256000; // 256 Kbps
};
| Field | Type | Default | Description |
|---|
Width | int32 | 1920 | Video width in pixels |
Height | int32 | 1080 | Video height in pixels |
Framerate | int32 | 30 | Target frames per second (15-120) |
VideoBitrate | int32 | 2000000 | Video bitrate in bps |
Samplerate | int32 | 48000 | Audio sample rate in Hz |
AudioBitrate | int32 | 256000 | Audio bitrate in bps |
FLCKRecordingProfileSettings
Recording profile settings structure (configured in Project Settings).
USTRUCT(BlueprintType)
struct FLCKRecordingProfileSettings
{
GENERATED_BODY()
UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
int32 Width = 1280;
UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
int32 Height = 720;
UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (ClampMin = "15", ClampMax = "120"))
int32 Framerate = 30;
UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (ClampMin = "500000", ClampMax = "100000000"))
int32 VideoBitrate = 4000000; // 4 Mbps
UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (ClampMin = "64000", ClampMax = "512000"))
int32 AudioBitrate = 128000; // 128 Kbps
UPROPERTY(BlueprintReadOnly)
int32 Samplerate = 48000;
};
FLCKSelfieModeDefaults
Default settings for Selfie camera mode.
USTRUCT(BlueprintType)
struct FLCKSelfieModeDefaults
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, meta = (ClampMin = "20.0", ClampMax = "120.0"))
float FOV = 80.0f;
UPROPERTY(EditAnywhere, meta = (ClampMin = "0.0", ClampMax = "100.0"))
float Smoothness = 50.0f;
UPROPERTY(EditAnywhere, meta = (ClampMin = "0.5", ClampMax = "10.0"))
float FollowDistance = 2.0f;
UPROPERTY(EditAnywhere)
bool bFollowEnabled = false;
};
FLCKFirstPersonModeDefaults
Default settings for First Person camera mode.
USTRUCT(BlueprintType)
struct FLCKFirstPersonModeDefaults
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, meta = (ClampMin = "20.0", ClampMax = "120.0"))
float FOV = 90.0f;
UPROPERTY(EditAnywhere, meta = (ClampMin = "0.0", ClampMax = "100.0"))
float Smoothness = 75.0f;
};
FLCKThirdPersonModeDefaults
Default settings for Third Person camera mode.
USTRUCT(BlueprintType)
struct FLCKThirdPersonModeDefaults
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, meta = (ClampMin = "20.0", ClampMax = "120.0"))
float FOV = 90.0f;
UPROPERTY(EditAnywhere, meta = (ClampMin = "0.0", ClampMax = "100.0"))
float Smoothness = 100.0f;
UPROPERTY(EditAnywhere, meta = (ClampMin = "0.5", ClampMax = "10.0"))
float Distance = 2.0f;
UPROPERTY(EditAnywhere, meta = (ClampMin = "-90.0", ClampMax = "90.0"))
float PitchAngle = -30.0f;
};
Type Definitions
TLCKAudioChannelsMask
Bitmask type for combining multiple audio channels.
typedef uint64 TLCKAudioChannelsMask;
Usage
// Create mask with game audio and microphone
TLCKAudioChannelsMask Channels = ELCKAudioChannel::Game | ELCKAudioChannel::Microphone;
// Check if mask contains a channel
bool HasMicrophone = (Channels & ELCKAudioChannel::Microphone) != 0;
// Start capture with specific channels
AudioSource->StartCapture(Channels);