SignalManager (NEW): - Dedicated Rust struct with its own QUIC connection to _signal - Separate JNI handle (nativeSignalConnect/GetState/PlaceCall/etc) - Kotlin wrapper polls state every 500ms via getState() JSON - Lives independently of WzpEngine — survives across calls - connect() blocks briefly on 8MB thread, then recv loop runs on dedicated thread WzpEngine (CLEANED): - Back to pure media-only role (audio, codec, FEC, jitter) - Removed start_signaling/place_call/answer_call methods - Removed signal_transport/signal_fingerprint from EngineState CallViewModel: - Two separate managers: signalManager (persistent) + engine (per-call) - Two separate polling loops: signalPollJob + statsJob - Auto-connect to media room when signal polling detects "setup" state - hangupDirectCall() ends media but keeps signal alive Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
20 lines
547 B
Rust
20 lines
547 B
Rust
//! WarzonePhone Android native VoIP engine.
|
|
//!
|
|
//! Provides:
|
|
//! - Oboe audio backend with lock-free SPSC ring buffers
|
|
//! - Engine orchestrator managing call lifecycle
|
|
//! - Codec pipeline thread (encode/decode/FEC/jitter)
|
|
//! - Call statistics and command interface
|
|
//!
|
|
//! On non-Android targets, the Oboe C++ layer compiles as a stub,
|
|
//! allowing `cargo check` and unit tests on the host.
|
|
|
|
pub mod audio_android;
|
|
pub mod audio_ring;
|
|
pub mod commands;
|
|
pub mod engine;
|
|
pub mod pipeline;
|
|
pub mod signal_mgr;
|
|
pub mod stats;
|
|
pub mod jni_bridge;
|