Skip to main content

What Problem Does This Solve?

Enums define fixed sets of values used throughout LCK:
  • Recording states (Idle, Recording, Saving)
  • Video quality presets (SD, HD, 2K, 4K)
  • Audio channel types (Game, Microphone, VoiceChat)
  • Screen orientation (Landscape, Portrait)
  • UI states (Default, Hovered, Pressed)
Understanding these enums helps you check states, configure settings, and handle events correctly.

When to Use This

Reference this when:
  • Checking recording state
  • Setting video quality
  • Configuring audio channels
  • Setting screen orientation
  • Handling UI interactions
  • Debugging enum-related issues

Recording & Capture

ELCKRecordingState

What it’s for: Current state of the recording system
State machine flow:
Common usage:

ELCKVideoQuality

What it’s for: Predefined quality profile selection
Quest recommendations:
  • Quest 2: Use HD (1080p) for best balance
  • Quest 3/Pro: Can handle 2K if performance allows
  • Avoid 4K on Quest devices
Usage:

ELCKScreenOrientation

What it’s for: Video output orientation
Usage:

Camera Modes

UClass-Based Camera Mode System

Camera modes are not selected via an enum. The LCK SDK uses a UClass*-based system where each camera mode is a subclass of ULCKBaseCameraMode.
The three built-in camera mode classes are: Usage:

ELCKCameraFacing

What it’s for: Selfie camera direction
Only applies to Selfie mode. Usage:

Audio System

ELCKAudioChannel

What it’s for: Audio source types for capture and mixing
LCKVivox mapping:
  • Incoming voice chat -> Game channel
  • Outgoing microphone -> Microphone channel
Bitwise operations:

ELCKMicState

What it’s for: Microphone state for recording
On Android, No_Access means the user denied microphone permission. You must guide them to device settings to grant the permission.
Usage:

ELCKGameAudioType

What it’s for: Detected game audio middleware
Priority order: FMOD > Wwise > UnrealAudio Only ONE game audio source is active at a time.
Usage:

UI Components

ELCKButtonType

What it’s for: Button shape and size for 3D UI

Button States

Button interaction states are managed via method calls and material parameters rather than a centralized enum. The key mechanisms are:
  • bIsEnabled (bool) — Controls whether the button accepts interaction
  • ButtonPressed(const FLCKTapData&) — Called on overlap begin (press)
  • ButtonReleased(const FLCKTapData&) — Called on overlap end (release)
  • UpdateVisualsOnPressed() / UpdateVisualsOnReleased() — Virtual methods for visual state transitions
Visual feedback is applied via dynamic material parameters (BackColor, FrontColor, IndicatorValue) and mesh position offsets.

ELCKButtonInteractionDirection

What it’s for: Touch validation direction for buttons

Telemetry

ELCKTelemetryEventType

What it’s for: Analytics events sent to LCK Dashboard
Telemetry is automatic. You don’t need to manually send these events unless building custom analytics.

Enum Usage Examples

Quality Selection UI


Recording State Handler


Key Takeaways

ELCKRecordingState — Track recording lifecycle (Idle -> Recording -> Saving)
ELCKVideoQuality — Predefined quality presets (SD, HD, 2K, 4K)
ELCKAudioChannel — Bitwise flags for audio sources (Game, Mic, VoiceChat)
Camera modes use UClass* — ULCKSelfieCameraMode, ULCKFirstPersonCameraMode, ULCKThirdPersonCameraMode
ELCKMicState — Handle microphone on/off/no access
Settings live on ULCKTabletDataModel — Quality, orientation, mic state, and camera mode are managed through DataModel, not ULCKService