feat: slider pre-flash advance (0-3s) dans settings UI
🚀 Deploy — JH Photomaton / 🔍 Vérification (push) Has been cancelled
🚀 Deploy — JH Photomaton / 🍓 Deploy sur le Pi (push) Has been cancelled

This commit is contained in:
2026-07-21 00:02:12 +02:00
parent 1419600969
commit 35233c0a43
2 changed files with 62 additions and 0 deletions
+30
View File
@@ -158,6 +158,36 @@ async def measure_ambient_lux(request: Request):
return JSONResponse({"ok": False, "error": str(e)}, status_code=500)
@router.get("/leds/flash-timing")
async def get_flash_timing(request: Request):
"""Retourne les paramètres de timing du flash."""
cfg = request.app.state.config.leds
return {
"pre_flash_advance": cfg.pre_flash_advance,
"countdown_duration": cfg.countdown_duration,
}
@router.put("/leds/flash-timing")
async def set_flash_timing(
request: Request,
pre_flash_advance: float = Query(..., ge=0.0, le=3.0, description="Secondes avant fin countdown pour démarrer le flash"),
save: bool = Query(default=True),
):
"""Règle combien de secondes avant la fin du countdown le flash démarre (03s)."""
cfg = request.app.state.config.leds
cfg.pre_flash_advance = pre_flash_advance
if save:
config_svc = request.app.state.config_service
with open(config_svc.path, encoding="utf-8") as f:
import yaml
raw = yaml.safe_load(f) or {}
raw.setdefault("leds", {})["pre_flash_advance"] = pre_flash_advance
with open(config_svc.path, "w", encoding="utf-8") as f:
yaml.dump(raw, f, allow_unicode=True, default_flow_style=False)
return {"ok": True, "pre_flash_advance": pre_flash_advance}
@router.put("/leds/effect/{effect_name}")
async def update_effect(
request: Request,