#1524·OpenLogi

Camera controls panel reads the device synchronously inside render

Author: AprilNEACreated Sep 19, 2026Updated Sep 19, 2026
Labelstype: enhancementarea: guiplatform: all

crates/openlogi-desktop/src/features/camera/controls.rs: render calls ensure_built, which calls openlogi_camera::read_camera_state(uid) — a series of UVC control transfers — on the UI thread, on the frame the panel first appears for a camera (and again after a rejected batch). The panel also has no tests.

The read belongs in a background task that publishes a CameraState the panel renders from, like the device inventory does; the panel then becomes testable with a fake state.

Deferred from the September refactor survey: verifying it needs a Logitech webcam (Brio-class with exposure/white-balance controls) to confirm the sliders still seed from the device, auto toggles still take over, and a rejected batch still re-reads. Related, the ordered-range clamp fix landed in #1506.