Flash Canon configurable, choix de cadre a l'impression, fixes capture/reconnexion DSLR
- Flash integre Canon activable/desactivable depuis l'admin (configurer_flash) - Popup de choix de cadre juste avant impression, layout sans defilement (flex nowrap + aspect-ratio) - Capture : ignore camera_erreur pendant une capture en cours (laisse l'API trancher) - surveiller_dslr : grace period preview augmentee a 2s, reapplique la config camera apres reconnexion - start.sh simplifie (Chromium gere par kiosk-session.sh), remote debugging port 9222 active
This commit is contained in:
@@ -212,6 +212,33 @@ class Camera:
|
||||
else:
|
||||
return None # Pas de simulation ni webcam en dehors du mode dedie
|
||||
|
||||
def configurer_flash(self, actif: bool):
|
||||
"""Active ou désactive le flash intégré Canon.
|
||||
Essaie plusieurs noms de widgets selon le modèle."""
|
||||
if not self.camera or self.mode != "gphoto2":
|
||||
return
|
||||
# strobofiring : "0"=inhibé(off), "2"=auto — Canon EOS 60D (widget radio, valeurs string)
|
||||
# flashmode : "On"/"Off" — autres Canon
|
||||
candidats = [
|
||||
("strobofiring", "2", "0"), # (widget, valeur_on, valeur_off)
|
||||
("flashmode", "On", "Off"),
|
||||
]
|
||||
try:
|
||||
with self._gp_lock:
|
||||
cfg = self.camera.get_config()
|
||||
for nom, val_on, val_off in candidats:
|
||||
try:
|
||||
widget = cfg.get_child_by_name(nom)
|
||||
widget.set_value(val_on if actif else val_off)
|
||||
self.camera.set_config(cfg)
|
||||
log.info(f"Flash intégré ({nom}) : {'On' if actif else 'Off'}")
|
||||
return
|
||||
except Exception:
|
||||
pass
|
||||
log.debug("Aucun widget flash trouvé sur ce modèle Canon")
|
||||
except Exception as e:
|
||||
log.debug(f"configurer_flash : {e}")
|
||||
|
||||
def _activer_viewfinder_init(self):
|
||||
"""Active le LiveView pendant l'init (pas de lock, appelé avant que le thread démarre)."""
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user