fix: share screenshot_method_override across tasks

This commit is contained in:
2026-07-06 22:40:40 +08:00
parent dda8e6b992
commit dfd0a4086b
2 changed files with 15 additions and 10 deletions
-6
View File
@@ -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()
+15 -4
View File
@@ -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: