diff --git a/src/veyoff/capture.py b/src/veyoff/capture.py index 00f4564..87275aa 100644 --- a/src/veyoff/capture.py +++ b/src/veyoff/capture.py @@ -1,6 +1,5 @@ from __future__ import annotations -import time from dataclasses import dataclass from typing import Optional @@ -13,7 +12,6 @@ @dataclass class CachedFrame: frame: Image.Image - timestamp: float class ScreenCapture: @@ -38,7 +36,7 @@ def capture_screen(self) -> Image.Image: return frame def save_frame_to_buffer(self, frame: Image.Image) -> None: - self._cached_frame = CachedFrame(frame=frame.copy(), timestamp=time.time()) + self._cached_frame = CachedFrame(frame=frame.copy()) def get_cached_frame(self) -> Optional[Image.Image]: if self._cached_frame is None: @@ -51,22 +49,3 @@ def get_output_frame(self, frozen: bool) -> Image.Image: if cached is not None: return cached return self.capture_screen() - - -_default_capture = ScreenCapture() - - -def capture_screen() -> Image.Image: - return _default_capture.capture_screen() - - -def save_frame_to_buffer(frame: Image.Image) -> None: - _default_capture.save_frame_to_buffer(frame) - - -def get_cached_frame() -> Optional[Image.Image]: - return _default_capture.get_cached_frame() - - -def get_output_frame(frozen: bool) -> Image.Image: - return _default_capture.get_output_frame(frozen) diff --git a/src/veyoff/filter.py b/src/veyoff/filter.py index eb4723f..7ad086d 100644 --- a/src/veyoff/filter.py +++ b/src/veyoff/filter.py @@ -1,11 +1,14 @@ from __future__ import annotations +import logging from dataclasses import dataclass from pathlib import Path from typing import Iterable, Sequence from PIL import Image, ImageDraw +logger = logging.getLogger(__name__) + try: from Xlib import X, display except Exception: # pragma: no cover - optional dependency in headless env @@ -39,6 +42,7 @@ def _walk_windows(node, items: list[WindowInfo]) -> None: try: children = node.query_tree().children except Exception: + logger.warning("Failed to query window tree", exc_info=True) return for child in children: