Canon LiveView : activer viewfinder gphoto2 avant capture_preview
This commit is contained in:
@@ -199,6 +199,32 @@ class Camera:
|
||||
else:
|
||||
return None # Pas de simulation ni webcam en dehors du mode dedie
|
||||
|
||||
def activer_viewfinder(self):
|
||||
"""Active le LiveView sur les Canon (nécessaire avant capture_preview)."""
|
||||
if self.mode != "gphoto2" or not self.connectee:
|
||||
return
|
||||
try:
|
||||
cfg = self.camera.get_config()
|
||||
vf = cfg.get_child_by_name("viewfinder")
|
||||
vf.set_value(1)
|
||||
self.camera.set_config(cfg)
|
||||
log.info("Viewfinder activé")
|
||||
except Exception as e:
|
||||
log.warning(f"Viewfinder non supporté : {e}")
|
||||
|
||||
def desactiver_viewfinder(self):
|
||||
"""Désactive le LiveView."""
|
||||
if self.mode != "gphoto2" or not self.connectee:
|
||||
return
|
||||
try:
|
||||
cfg = self.camera.get_config()
|
||||
vf = cfg.get_child_by_name("viewfinder")
|
||||
vf.set_value(0)
|
||||
self.camera.set_config(cfg)
|
||||
log.info("Viewfinder désactivé")
|
||||
except Exception as e:
|
||||
log.warning(f"Viewfinder non supporté : {e}")
|
||||
|
||||
def _preview_gphoto2(self) -> bytes | None:
|
||||
try:
|
||||
fichier = self.camera.capture_preview()
|
||||
|
||||
@@ -686,9 +686,11 @@ async def traiter_message_ws(msg: dict, ws: WebSocket):
|
||||
await ws.send_json({"type": "pong"})
|
||||
elif type_msg == "preview_start":
|
||||
global _preview_actif
|
||||
camera.activer_viewfinder()
|
||||
_preview_actif = True
|
||||
elif type_msg == "preview_stop":
|
||||
_preview_actif = False
|
||||
camera.desactiver_viewfinder()
|
||||
|
||||
|
||||
async def diffuser_ws(message: dict):
|
||||
|
||||
Reference in New Issue
Block a user