Module: LCKVivox | Version: 1.0 | Platforms: All
Overview
LCKVivox integrates with the Vivox voice chat SDK to capture both outgoing microphone audio and incoming voice chat audio. It uses Vivox’s audio callbacks and thread-safe atomics for lock-free data handoff between the Vivox audio thread and the game thread.Supported Channels
| Channel | Supported | Description |
|---|---|---|
Game | Yes | Incoming voice chat audio (mapped from Vivox render callback) |
Microphone | Yes | Outgoing mic audio (mapped from Vivox capture callback) |
VoiceChat | No | Not used — Vivox audio mapped to Game/Microphone channels |
FLCKVivoxSource
Audio source class that captures microphone and voice chat audio through Vivox SDK callbacks. ImplementsILCKFeatureInstance with dual-channel support.
ILCKFeatureInstance Methods
| Method | Behavior |
|---|---|
StartCapture() | Registers Vivox capture and render callbacks for mic and voice chat |
StartCapture(Channels) | Registers callbacks for the specified channel mask only |
StopCapture() | Unregisters all Vivox callbacks and stops capture |
GetVolume() | Returns current RMS volume across active channels (0.0-1.0) |
GetSourceName() | Returns "LCKVivox" |
Thread Safety
FLCKVivoxSource uses atomic operations for lock-free data exchange between threads:
- Vivox audio callbacks run on a dedicated Vivox audio thread
- Audio data is written to an atomic buffer by the callback
- The game thread reads from the atomic buffer when
StereoMixis called - No mutex contention on the audio hot path
FLCKVivoxModule
Module that manages the lifecycle ofFLCKVivoxSource.
FLCKVivoxSource and registers it as a modular feature. On shutdown, it unregisters Vivox callbacks, unregisters the modular feature, and destroys the source.
Log Category
Related
Audio Overview
Audio system API overview
ILCKFeatureInstance
Full interface specification