The pane reports `Volume: 85%`, or `Volume: 85% (muted)`. The display was the small half of this: the TUI was discarding the volume it was already being sent (`StreamUpdate::Volume(_)` was a FIXME), and `Init` dropped `volume` and `mute` as well — so the pane would have started out wrong and corrected itself only once the user touched either control. Both are wired now. Muting keeps the level on screen rather than replacing it: the server reports the level it would unmute to, which is the one the user is about to adjust. That retires the old `, Muted` suffix. The line now renders with no track loaded too — shuffle, repeat and volume describe the server, and an idle player is exactly when you reach for `K` blind. Formatting is a pure function so its edges are tested: the wire carries a float, so NaN and infinity read as `--` rather than `NaN%`. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.lock | ||
| Cargo.toml | ||
| build.rs | ||
| schema.graphql | ||