Files

45 lines
1017 B
Markdown

# Software Design Document
## iced-app
### `main.rs`
- Defines the full app state and message enum
- Uses `SyncConnection` / `SyncConnectionHandle` from `tsclientlib`
- Maintains local UI mirrors for:
- bookmarks
- server metadata
- channels
- clients
- chat messages
- device selection
- mute / AFK state
### `audio.rs`
- Output playback through `cpal`
- Input capture through `cpal`
- Opus encode for outgoing voice
- Simple VAD for continuous talk mode
### `noise_cancel.rs`
- Runtime-selected noise cancellation backend
- Current backends:
- `None`
- `nnnoiseless`
- `sonora`
### `identity.rs`
- Locates TeamSpeak config database in common Linux paths
- Extracts `identity_secret_key`
- Parses it into `tsclientlib::Identity`
## Known Design Limitations
- `main.rs` is still monolithic and should be split later
- Bookmarks are not persisted
- ServerQuery is not wired to a real backend yet
- Audio settings apply to runtime state, but broader config persistence is not implemented