Пример #1
0
    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())
Пример #2
0
    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
Пример #3
0
    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)
Пример #4
0
    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())
Пример #5
0
    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())
Пример #6
0
    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())
Пример #7
0
    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())
Пример #8
0
 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)