def preview_countdown(self, timeout, alpha=80): """Show a countdown of `timeout` seconds on the preview. Returns when the countdown is finished. """ timeout = int(timeout) if timeout < 1: raise ValueError("Start time shall be greater than 0") shown = False timer = PoolingTimer(timeout) while not timer.is_timeout(): remaining = int(timer.remaining() + 1) if not self._overlay or remaining != timeout: # Rebluid overlay only if remaining number has changed self._show_overlay(str(remaining), alpha) timeout = remaining shown = False if self._preview_compatible: self._window.show_image(self._get_preview_image()) elif not shown: self._window.show_image(self._get_preview_image()) shown = True # Do not update dummy preview until next overlay update pygame.event.pump() pygame.display.update() self._show_overlay( LANGUAGES.get(PiConfigParser.language, LANGUAGES['en']).get('smile_message'), alpha) self._window.show_image(self._get_preview_image())
def preview_countdown(self, timeout, alpha=60): """Show a countdown of `timeout` seconds on the preview. Returns when the countdown is finished. """ timeout = int(timeout) if timeout < 1: raise ValueError("Start time shall be greater than 0") overlay = None timer = PoolingTimer(timeout) while not timer.is_timeout(): self.preview(self._window) remaining = int(timer.remaining() + 1) if not overlay or remaining != timeout: # Rebluid overlay only if remaining number has changed # overlay = self.get_overlay(image.size, str(remaining), alpha) timeout = remaining
def preview_countdown(self, timeout, alpha=60): """Show a countdown of `timeout` seconds on the preview. Returns when the countdown is finished. """ timeout = int(timeout) if timeout < 1: raise ValueError("Start time shall be greater than 0") timer = PoolingTimer(timeout) while not timer.is_timeout(): self.preview(self._window) remaining = int(timer.remaining() + 1) if not self._overlay or remaining != timeout: # Rebluid overlay only if remaining number has changed self._show_overlay(str(remaining), alpha) timeout = remaining self._show_overlay(get_translated_text('smile'), alpha)
def preview_wait(self, timeout, alpha=80): """Wait the given time. """ timeout = int(timeout) if timeout < 1: raise ValueError("Start time shall be greater than 0") timer = PoolingTimer(timeout) if self._preview_compatible: while not timer.is_timeout(): updated_rect = self._window.show_image(self._get_preview_image()) pygame.event.pump() if updated_rect: pygame.display.update(updated_rect) else: time.sleep(timer.remaining()) self._show_overlay(get_translated_text('smile'), alpha) self._window.show_image(self._get_preview_image())
def preview_wait(self, timeout, alpha=80): """Wait the given time. """ timeout = int(timeout) if timeout < 1: raise ValueError("Start time shall be greater than 0") timer = PoolingTimer(timeout) if self._preview_compatible: while not timer.is_timeout(): self._window.show_image(self._get_preview_image()) pygame.event.pump() pygame.display.update() else: time.sleep(timer.remaining()) self._show_overlay( LANGUAGES.get(PiConfigParser.language, LANGUAGES['en']).get('smile_message'), alpha) self._window.show_image(self._get_preview_image())
def preview_countdown(self, timeout, alpha=80): """Show a countdown of `timeout` seconds on the preview. Returns when the countdown is finished. """ timeout = int(timeout) if timeout < 1: raise ValueError("Start time shall be greater than 0") shown = False first_loop = True timer = PoolingTimer(timeout) while not timer.is_timeout(): remaining = int(timer.remaining() + 1) if not self._overlay or remaining != timeout: # Rebluid overlay only if remaining number has changed self._show_overlay(str(remaining), alpha) timeout = remaining shown = False updated_rect = None if self._preview_compatible: updated_rect = self._window.show_image( self._get_preview_image()) elif not shown: updated_rect = self._window.show_image( self._get_preview_image()) shown = True # Do not update dummy preview until next overlay update if first_loop: timer.start( ) # Because first preview capture is longer than others first_loop = False pygame.event.pump() if updated_rect: pygame.display.update(updated_rect) self._show_overlay(get_translated_text('smile'), alpha) self._window.show_image(self._get_preview_image())
def preview_countdown(self, timeout, alpha=80): """Show a countdown of `timeout` seconds on the preview. Returns when the countdown is finished. """ timeout = int(timeout) if timeout < 1: raise ValueError("Start time shall be greater than 0") timer = PoolingTimer(timeout) while not timer.is_timeout(): remaining = int(timer.remaining() + 1) if self._overlay is None or remaining != timeout: # Rebluid overlay only if remaining number has changed self._show_overlay(str(remaining), alpha) timeout = remaining updated_rect = self._window.show_image(self._get_preview_image()) pygame.event.pump() if updated_rect: pygame.display.update(updated_rect) self._show_overlay(get_translated_text('smile'), alpha) self._window.show_image(self._get_preview_image())
def preview_countdown(self, timeout, alpha=60): """Show a countdown of `timeout` seconds on the preview. Returns when the countdown is finished. """ timeout = int(timeout) if timeout < 1: raise ValueError("Start time shall be greater than 0") rect = self._window.get_rect() size = (((rect.width + 31) // 32) * 32, ((rect.height + 15) // 16) * 16) image = Image.new('RGB', size, color=(0, 0, 0)) overlay = None timer = PoolingTimer(timeout) while not timer.is_timeout(): self.preview(self._window) remaining = int(timer.remaining() + 1) if not overlay or remaining != timeout: # Rebluid overlay only if remaining number has changed image = Image.new('RGB', size, color=(0, 0, 0)) overlay = self.get_overlay(image.size, str(remaining), alpha) timeout = remaining image.paste(overlay, (0, 0), overlay) self._window.show_image(image)