Fixed autofocus issue when using preview

This commit is contained in:
Balthasar Reuter
2018-05-18 21:18:45 +02:00
parent 7bebcb54aa
commit 9273cae52e
4 changed files with 21 additions and 12 deletions

View File

@@ -184,8 +184,11 @@ class Photobooth:
def captureSinglePicture(self):
self.showCounter()
self.setCameraIdle()
self.showPose()
return self._cap.getPicture()
picture = self._cap.getPicture()
self.setCameraActive()
return picture
def capturePictures(self):
@@ -216,8 +219,8 @@ class Photobooth:
self._conn.send(gui.GreeterState())
self.triggerOff()
self.setCameraActive()
self.setCameraActive()
self.recvAck()
pics = self.capturePictures()
@@ -229,7 +232,6 @@ class Photobooth:
self.enqueueWorkerTasks(img)
self.setCameraIdle()
self.recvAck()
self._conn.send(gui.IdleState())

View File

@@ -47,14 +47,15 @@ class CameraGphoto2(Camera):
logging.info('Camera summary: %s', str(self._cap.get_summary(self._ctxt)))
# get configuration tree
self._config = self._cap.get_config()
self._oldconfig = self._config
# self._config = self._cap.get_config()
# self._oldconfig = self._config
config = self._cap.get_config()
# make sure camera format is not set to raw
if 'raw' in self._config.get_child_by_name('imageformat').get_value().lower():
if 'raw' in config.get_child_by_name('imageformat').get_value().lower():
raise RuntimeError('Camera file format is set to RAW')
self._printConfig(self._config)
self._printConfig(config)
@staticmethod
@@ -95,14 +96,18 @@ class CameraGphoto2(Camera):
def setActive(self):
self._config.get_child_by_name('viewfinder').set_value(True)
self._cap.set_config(self._config)
config = self._cap.get_config()
# self._config.get_child_by_name('viewfinder').set_value(True)
config.get_child_by_name('output').set_value('PC')
self._cap.set_config(config)
def setIdle(self):
self._config.get_child_by_name('viewfinder').set_value(False)
self._cap.set_config(self._config)
config = self._cap.get_config()
# self._config.get_child_by_name('viewfinder').set_value(False)
config.get_child_by_name('output').set_value('Off')
self._cap.set_config(config)
def getPreview(self):

View File

@@ -63,11 +63,13 @@ class CameraGphoto2Cffi(Camera):
def setActive(self):
self._cap._get_config()['actions']['viewfinder'].set(True)
self._cap._get_config()['settings']['output'].set('PC')
def setIdle(self):
self._cap._get_config()['actions']['viewfinder'].set(False)
self._cap._get_config()['settings']['output'].set('Off')
def getPreview(self):

View File

@@ -134,7 +134,7 @@ def run(argv):
gui_proc.join()
worker_queue.put('teardown')
worker_proc.join()
camera_proc.join(5)
camera_proc.join(1)
return gui_proc.exitcode