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)
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:
ELCKVideoQuality
What it’s for: Predefined quality profile selectionQuest recommendations:
- Quest 2: Use HD (1080p) for best balance
- Quest 3/Pro: Can handle 2K if performance allows
- Avoid 4K on Quest devices
ELCKScreenOrientation
What it’s for: Video output orientation
Usage:
Camera Modes
UClass-Based Camera Mode System
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 mixingLCKVivox mapping:
- Incoming voice chat ->
Gamechannel - Outgoing microphone ->
Microphonechannel
ELCKMicState
What it’s for: Microphone state for recording
Usage:
ELCKGameAudioType
What it’s for: Detected game audio middlewarePriority order: FMOD > Wwise > UnrealAudio
Only ONE game audio source is active at a time.
UI Components
ELCKButtonType
What it’s for: Button shape and size for 3D UIButton 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 interactionButtonPressed(const FLCKTapData&)— Called on overlap begin (press)ButtonReleased(const FLCKTapData&)— Called on overlap end (release)UpdateVisualsOnPressed()/UpdateVisualsOnReleased()— Virtual methods for visual state transitions
BackColor, FrontColor, IndicatorValue) and mesh position offsets.
ELCKButtonInteractionDirection
What it’s for: Touch validation direction for buttonsTelemetry
ELCKTelemetryEventType
What it’s for: Analytics events sent to LCK DashboardTelemetry 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
Related
- Types & Structs — Struct definitions
- Error Codes — Error handling
- Architecture — How enums are used in the system