All timers moved to GUI
This commit is contained in:
@@ -158,21 +158,45 @@ class Photobooth:
|
|||||||
|
|
||||||
tic, toc = time(), 0
|
tic, toc = time(), 0
|
||||||
|
|
||||||
while toc < self.countdownTime:
|
self._send.send(gui.CountdownState())
|
||||||
|
|
||||||
|
while not self._recv.poll():
|
||||||
|
toc = time() - tic
|
||||||
self._send.send( gui.PreviewState(
|
self._send.send( gui.PreviewState(
|
||||||
message = str(self.countdownTime - int(toc)),
|
message = str(self.countdownTime - int(toc)),
|
||||||
picture = ImageOps.mirror(self._cap.getPreview()) ) )
|
picture = ImageOps.mirror(self._cap.getPreview()) ) )
|
||||||
toc = time() - tic
|
|
||||||
|
event = self._recv.recv()
|
||||||
|
if str(event) == 'cancel':
|
||||||
|
self.teardown()
|
||||||
|
return 1
|
||||||
|
elif str(event) == 'ack':
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
print('Unknown event received: ' + str(event))
|
||||||
|
raise RuntimeError('Unknown event received', str(event))
|
||||||
|
|
||||||
|
|
||||||
def showCounterNoPreview(self):
|
def showCounterNoPreview(self):
|
||||||
|
|
||||||
|
self._send.send(gui.CountdownState())
|
||||||
|
|
||||||
for i in range(self.countdownTime):
|
for i in range(self.countdownTime):
|
||||||
self._send.send( gui.PreviewState(
|
self._send.send( gui.PreviewState(
|
||||||
message = str(i),
|
message = str(self.countdownTime - i),
|
||||||
picture = Image.new('RGB', (1,1), 'white') ) )
|
picture = Image.new('RGB', (1,1), 'white') ) )
|
||||||
sleep(1)
|
sleep(1)
|
||||||
|
|
||||||
|
event = self._recv.recv()
|
||||||
|
if str(event) == 'cancel':
|
||||||
|
self.teardown()
|
||||||
|
return 1
|
||||||
|
elif str(event) == 'ack':
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
print('Unknown event received: ' + str(event))
|
||||||
|
raise RuntimeError('Unknown event received', str(event))
|
||||||
|
|
||||||
|
|
||||||
def showPose(self):
|
def showPose(self):
|
||||||
|
|
||||||
@@ -227,7 +251,15 @@ class Photobooth:
|
|||||||
|
|
||||||
self.setCameraIdle()
|
self.setCameraIdle()
|
||||||
|
|
||||||
sleep(self.displayTime)
|
event = self._recv.recv()
|
||||||
|
if str(event) == 'cancel':
|
||||||
|
self.teardown()
|
||||||
|
return 1
|
||||||
|
elif str(event) == 'ack':
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
print('Unknown event received: ' + str(event))
|
||||||
|
raise RuntimeError('Unknown event received', str(event))
|
||||||
|
|
||||||
self._send.send(gui.IdleState())
|
self._send.send(gui.IdleState())
|
||||||
self._lampOn()
|
self._lampOn()
|
||||||
|
|||||||
@@ -89,9 +89,13 @@ class PyQt5Gui(Gui):
|
|||||||
PyQt5PictureMessage('Will capture {} pictures!'.format(num_pictures)))
|
PyQt5PictureMessage('Will capture {} pictures!'.format(num_pictures)))
|
||||||
QTimer.singleShot(cfg.getInt('Photobooth', 'greeter_time') * 1000, lambda : self._transport.send('ack'))
|
QTimer.singleShot(cfg.getInt('Photobooth', 'greeter_time') * 1000, lambda : self._transport.send('ack'))
|
||||||
|
|
||||||
|
elif isinstance(state, CountdownState):
|
||||||
|
QTimer.singleShot(cfg.getInt('Photobooth', 'countdown_time') * 1000, lambda : self._transport.send('ack'))
|
||||||
|
|
||||||
elif isinstance(state, PreviewState):
|
elif isinstance(state, PreviewState):
|
||||||
img = ImageQt.ImageQt(state.picture)
|
img = ImageQt.ImageQt(state.picture)
|
||||||
self._p.setCentralWidget(PyQt5PictureMessage(state.message, img))
|
self._p.setCentralWidget(PyQt5PictureMessage(state.message, img))
|
||||||
|
|
||||||
elif isinstance(state, PoseState):
|
elif isinstance(state, PoseState):
|
||||||
self._p.setCentralWidget(PyQt5PictureMessage('Pose!'))
|
self._p.setCentralWidget(PyQt5PictureMessage('Pose!'))
|
||||||
elif isinstance(state, AssembleState):
|
elif isinstance(state, AssembleState):
|
||||||
@@ -99,6 +103,7 @@ class PyQt5Gui(Gui):
|
|||||||
elif isinstance(state, PictureState):
|
elif isinstance(state, PictureState):
|
||||||
img = ImageQt.ImageQt(state.picture)
|
img = ImageQt.ImageQt(state.picture)
|
||||||
self._p.setCentralWidget(PyQt5PictureMessage('', img))
|
self._p.setCentralWidget(PyQt5PictureMessage('', img))
|
||||||
|
QTimer.singleShot(cfg.getInt('Photobooth', 'display_time') * 1000, lambda : self._transport.send('ack'))
|
||||||
|
|
||||||
self._printer.print(state.picture)
|
self._printer.print(state.picture)
|
||||||
elif isinstance(state, ErrorState):
|
elif isinstance(state, ErrorState):
|
||||||
|
|||||||
@@ -136,6 +136,13 @@ class AssembleState(GuiState):
|
|||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class CountdownState(GuiState):
|
||||||
|
|
||||||
|
def __init__(self, **kwargs):
|
||||||
|
|
||||||
|
super().__init__(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
class PreviewState(MessageState, PictureState):
|
class PreviewState(MessageState, PictureState):
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
|
|||||||
Reference in New Issue
Block a user