diff --git a/backend/api/leds_api.py b/backend/api/leds_api.py index e6cee72..e4cd072 100644 --- a/backend/api/leds_api.py +++ b/backend/api/leds_api.py @@ -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 (0–3s).""" + 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, diff --git a/frontend/templates/admin/settings.html b/frontend/templates/admin/settings.html index 4838197..7b96e1e 100644 --- a/frontend/templates/admin/settings.html +++ b/frontend/templates/admin/settings.html @@ -466,6 +466,19 @@ select.field { + +