Audio engine (Rust): - Android Oboe: WebRTC APM (AEC/NS/AGC/HPF) + TEN/Silero ONNX VAD - Hardware effects (JNI) with software fallback per-effect - Render reference buffer for AEC between output/capture callbacks - Voice activity gate: suppress transmission when speaker muted (all platforms) - Audio focus (SDD-109) + Bluetooth SCO (SDD-110) via JNI - ONNX Runtime 1.26 via ort 2.0.0-rc.12 (down from rc.10, ndarray 0.17) - VAD worker channel capacity 8→32, initial seq u64::MAX (warm-up fix) - TEN VAD default backend (was Silero) - Platform→WebrtcApm resolution after hardware binding - oboe-rs edisonjwa fork with get_raw_session_id() Android Kotlin: - AndroidAudioFocusController + AndroidBluetoothScoController - AndroidAudioLifecycleController (route changes to Flutter) - ProGuard rules for new controllers Flutter UI: - VoiceSettings: Android HW/SW toggle (Platform auto / WebRTC APM) - VoiceStatusChip: mute warning border + Speaker muted label - BBCode welcome message parser (BbCodeText, case-insensitive) - Welcome message foldable (expanded by default) - Link trust dialog (domain wildcards, SharedPreferences) - HapticFeedback on voice sheet opener - Server name in AppBar, version v0.1.0 - Default channel (id=1) visible, serverquery clients hidden - flutter_foreground_task integration Config: - ort load-dynamic on all non-iOS (Android/Linux/Windows) - ONNX Runtime AAR 1.26.0 - ndarray moved to common deps (was Apple-only)
35 lines
1.5 KiB
TOML
35 lines
1.5 KiB
TOML
# Environment variables set for all cargo invocations in this workspace.
|
|
# CMAKE_POLICY_VERSION_MINIMUM is required for audiopus_sys's bundled
|
|
# Opus CMake build to succeed on CMake 4.x (which removed compatibility
|
|
# with cmake_minimum_required < 3.5). audiopus_sys v0.2.2 bundles
|
|
# Opus 1.3.1 whose CMakeLists.txt uses a very old minimum version.
|
|
[env]
|
|
CMAKE_POLICY_VERSION_MINIMUM = "3.5"
|
|
|
|
# iOS builds must set IPHONEOS_DEPLOYMENT_TARGET in the invoking script
|
|
# or Xcode build phase. Do not set it globally here: native macOS cargo
|
|
# checks also compile bundled C/C++ dependencies, and a global iOS
|
|
# deployment target makes clang try to link iPhone objects against the
|
|
# macOS SDK.
|
|
|
|
# iOS target linker flags (DEC-003: minimum deployment target iOS 13.0).
|
|
#
|
|
# These rustflags pass -miphoneos-version-min=13.0 to the linker, ensuring
|
|
# the final binary targets iOS 13.0+. This is defense-in-depth alongside
|
|
# the IPHONEOS_DEPLOYMENT_TARGET env var above — the env var affects C
|
|
# compilation (cc crate, CMake), while these rustflags affect the final
|
|
# link step.
|
|
#
|
|
# NOTE: The canonical iOS build is done via tools/build-ios.sh, which
|
|
# sets LIBOPUS_STATIC=1, LIBOPUS_NO_PKG=1, and LIBOPUS_LIB_DIR to
|
|
# bypass audiopus_sys's CMake build entirely.
|
|
|
|
[target.aarch64-apple-ios]
|
|
rustflags = ["-C", "link-arg=-miphoneos-version-min=13.0"]
|
|
|
|
[target.aarch64-apple-ios-sim]
|
|
rustflags = ["-C", "link-arg=-miphonesimulator-version-min=13.0"]
|
|
|
|
[target.x86_64-apple-ios]
|
|
rustflags = ["-C", "link-arg=-miphonesimulator-version-min=13.0"]
|