- draw_galerie() : rendu pellicule (bande film avec perforations) quand le
mode est actif
- _load_gal() : charge les surfs à la taille des cadres pellicule si actif
- S_PREV : 1.5s → 2.5s pour laisser le DSLR revenir en live view
- _usb_reset_done() : utilise unbind/bind sysfs au lieu de usbreset
(unbind/bind = seule méthode qui libère réellement le claim USB)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- _usb_reset_done() : reset USB via usbreset pour libérer tout claim
obsolète avant d'initialiser libgphoto2 (fix erreur -53)
- Appelé au démarrage et dans _cam_loop() toutes les 10s en simulation
- _cam_loop() : log les erreurs d'auto-detect pour diagnostic
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- draw_compte() pellicule : suppression de l'overlay global qui masquait la
bande film pendant le compte à rebours
- _cam_loop() : ne quitte plus en mode simulation, tente une reconnexion
automatique toutes les 8s si le DSLR est branché après démarrage
- _reconnect_cam() : fonctionne aussi depuis le mode simulation (bouton admin)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Le handler utilisait True comme défaut pour tous les toggles, ce qui faisait
que not f.get("pellicule_mode", True) = False au premier clic (toggle semblait
bloqué). Ajout d'un ensemble _false_defs pour les features à défaut False.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Nouveau toggle "Mode pellicule" dans l'onglet Fonctions de l'admin
- _draw_pellicule() : bande noire cinéma avec perforations haut/bas,
cadres numérotés (01A, 02A...) ; le live view est rendu dans le cadre
courant, les photos prises occupent leur case, les futures sont en gris
- draw_preview() / draw_compte() : utilisent _draw_pellicule() quand activé
- _make_composite() : génère une bande simple (non doublée) en mode pellicule
- Thumbnails chargés à _PELL_FH (748px) pour la qualité native en pellicule
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- _make_composite(): crée une image bande (2 rangées) ou grille 2x2 à partir
des photos prises, sauvée en /tmp/photobooth_composite.jpg
- _upload_booth(): upload le composite unique en mode multi au lieu des photos
individuelles
- _draw_multi_strip(): overlay bas avec les cases numérotées — thumbnails pour
les prises faites, cadre pulsant pour la case courante, placeholder gris pour
les suivantes
- draw_preview() / draw_compte(): utilisent _draw_multi_strip() en mode multi
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Ajoute deux routes FastAPI :
- GET /s/{code} → galerie HTML mobile avec auto-refresh 15s
- POST /api/sessions/{code}/upload → stockage photo dans session_{code}/
Corrige layout admin : titre sm au lieu de lg, compteur sans chevauchement.
Wizard step 2 : code affiché en lg (96px) au lieu de xxl (300px).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>