- Icône discrète coin bas-gauche, visible seulement si photostation installée
- Popup PIN (4 chiffres) avant lancement
- Backend : /api/photostation/disponible + /api/photostation/lancer
- kiosk-session.sh : Chromium attend le flag /tmp/photostation_running avant redémarrage
- Script install-photostation.sh pour déploiement sur la Surface
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Intégration selphy_print (backend CUPS dyesub Mitsubishi CP-K60DW-S)
- Formats impression : 15x20, 10x15, 10x15 2-strips avec cadre et orientation portrait/paysage
- Cadres d'impression par format (strip/10x15/15x20) : upload, sélection, aperçu live
- Cadres démo générés : pellicule noir/vintage/couleurs + bordures classique/doré/rose gold
- Écran de choix de cadre avant capture (clic direct, aperçu grand format)
- Filtres réduits à 3 (Couleur, N&B, Sépia) et appliqués sur tous les strips
- Port 80 via authbind, route /admin avec redirection auto depuis poste distant
- Autologin LightDM corrigé (pam-autologin-service)
- Bouton évacuer bourrage papier dans admin
- Fix : _gp_lock manquant dans Camera.__init__
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>
Avant : frontend poll WS toutes les 100ms -> gphoto2 bloquant -> lag
Apres : thread dedie capture en continu a 30fps, pusher asyncio
diffuse a 20fps a tous les clients, frontend dit juste
preview_start / preview_stop
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Preview gphoto2 echoue -> None direct, pas de webcam ni simulation
- Connexion sans DSLR -> mode erreur, camera non connectee
- Suppression _preview_webcam_fallback et _init_preview_fallback
- WS preview : appel direct camera.preview(), plus de logique speciale
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Endpoint /api/systeme/info : IPs par interface, hostname, uptime,
disque, RAM, temperature CPU, version Python, statut camera
- Onglet Infos dans le backoffice avec affichage visuel (barres, couleurs)
- Bouton Actualiser pour rafraichir les donnees en temps reel
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Backend: detecte quand le preview DSLR echoue (fallback silencieux)
et envoie camera_erreur au frontend (debounce 5s)
- Frontend: overlay d'erreur avec message si preview DSLR indisponible
- Frontend: si capture echoue, affiche le motif 3s avant retour accueil
au lieu de retourner silencieusement
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Teste get_summary() pour verifier que le DSLR repond
- Reconnecte apres 2 echecs consecutifs
- Fallback webcam si DSLR plus disponible
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Preview relancee avant chaque countdown (l'utilisateur se voit)
- Countdown 3-2-1 entre chaque photo de la serie
- Apercu precedent vide au debut d'une nouvelle session
- Surveillance DSLR pausee pendant les captures
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Verification toutes les 5s si un DSLR est disponible
- Bascule auto de webcam/simulation vers DSLR
- Reconnexion auto si le DSLR est deconnecte
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- booth/: serveur Node.js galerie photo live avec auth par code 4 chiffres
- Backend: envoi auto des photos vers booth, endpoint QR dynamique
- Frontend: code + QR booth sur ecran accueil, icone pellicule pour multi-shot
- Icones mode agrandies (5rem)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Strip: 4 photos cote a cote style pellicule avec perforations
- Impression: 2 bandes identiques sur 10x15 paysage
- Apercu: montre une seule bande, imprime les 2
- Multi-shot: defaut 4 photos au lieu de 3
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Camera: support webcam v4l2 via OpenCV en plus de gphoto2
- API: selection de source camera (webcam:0, gphoto2, etc.)
- CSS: boutons agrandis pour usage tactile (min 48px)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Apres la capture, si chroma key active, une barre de fonds
s'affiche avec des miniatures cliquables
- L'utilisateur choisit son fond parmi la liste
- Remplacement du fond vert en temps reel (OpenCV backend)
- Onglet "Fonds verts" dans le backoffice pour importer/supprimer
des images de fond
- Miniatures visuelles dans l'admin et sur l'ecran de preview
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Upload de GIF/MP4/WebM comme animations de compte a rebours
- Checkboxes pour activer/desactiver chaque animation (CSS + custom)
- Si plusieurs actives, tirage aleatoire a chaque photo
- Preview dans le backoffice avec tirage aleatoire
- Suppression des animations custom importees
- Les animations custom se jouent en plein ecran avant la capture
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Boutons +/- pour choisir le nombre d'exemplaires (1 a copies_max)
- copies_max configurable dans le backoffice (defaut: 5)
- Backend limite les copies au max configure
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Suppression du mode GIF (gif_maker.py, routes, UI)
- Multi-shot (strip/collage) produit maintenant des images 10x15cm
(1200x1800px @ 300dpi) pret pour impression sublimation
- Recadrage intelligent (crop centre) pour remplir les cellules
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Backend FastAPI complet : camera gphoto2, filtres/overlays Pillow,
chroma key OpenCV, multi-shot/collage, GIF, impression CUPS, email SMTP,
QR code. Frontend web vanilla (HTML/CSS/JS) pour Chromium kiosk.
Menu admin cache (appui long coin ecran). Toutes les fonctionnalites
activables/desactivables. Scripts install + systemd pour RPi4.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>