From dfd0a4086be03b7d59e4bfe7894937550c66929b Mon Sep 17 00:00:00 2001 From: YoursFunny Date: Mon, 6 Jul 2026 11:15:35 +0800 Subject: [PATCH] fix: share screenshot_method_override across tasks --- module/device/device.py | 6 ------ module/device/screenshot.py | 19 +++++++++++++++---- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/module/device/device.py b/module/device/device.py index 2ca2d36..686cbc3 100644 --- a/module/device/device.py +++ b/module/device/device.py @@ -95,12 +95,6 @@ class Device(Screenshot, Control, AppControl): self.screenshot_interval_set() self.method_check() - # AAS only, use nemu_ipc if available - available = self.nemu_ipc_available() - logger.attr('nemu_ipc_available', available) - if available: - self.config.override(Emulator_ScreenshotMethod='nemu_ipc') - # Auto-select the fastest screenshot method if not self.config.is_template_config and self.config.Emulator_ScreenshotMethod == 'auto': self.run_simple_screenshot_benchmark() diff --git a/module/device/screenshot.py b/module/device/screenshot.py index 93bc612..5495f94 100644 --- a/module/device/screenshot.py +++ b/module/device/screenshot.py @@ -42,6 +42,15 @@ class Screenshot(Adb, WSA, DroidCast, AScreenCap, Scrcpy, NemuIpc): 'nemu_ipc': self.screenshot_nemu_ipc, } + @cached_property + def screenshot_method_override(self) -> str: + # AAS only, use nemu_ipc if available + available = self.nemu_ipc_available() + logger.attr('nemu_ipc_available', available) + if available: + return 'nemu_ipc' + return '' + def screenshot(self): """ Returns: @@ -51,10 +60,12 @@ class Screenshot(Adb, WSA, DroidCast, AScreenCap, Scrcpy, NemuIpc): self._screenshot_interval.reset() for _ in range(2): - method = self.screenshot_methods.get( - self.config.Emulator_ScreenshotMethod, - self.screenshot_adb - ) + if self.screenshot_method_override: + method = self.screenshot_method_override + else: + method = self.config.Emulator_ScreenshotMethod + method = self.screenshot_methods.get(method, self.screenshot_adb) + self.image = method() # if self.config.Emulator_ScreenshotDedithering: