45 lines
1017 B
Markdown
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
|