What's changed
Internal
- Single render pipeline:
LCDDevice.tick()is now the sole render point — returns the rendered image whichTrccApproutes to the preview viaAppEvent.FRAME_RENDERED. Eliminates the race between background tick and GUI overlay tick that caused preview to show zero metrics after restart BaseHandlerABC:LCDHandlerandLEDHandlershare a common interface (view_name,device_info,cleanup,stop_timers). Handler management inTRCCAppcollapsed from two separate dicts to a single_handlers: dict[str, BaseHandler]LEDHandlerextracted: moved from inline class intrcc_app.pyto its ownqt_components/led_handler.pyPlatformAdaptercontract tests: all four platform factories now have tests that run on Linux —LinuxPlatform,WindowsPlatform,MacOSPlatform,BSDPlatform- Windows SCSI test fix: Python 3.14 compatibility —
ctypes.wintypesmock kept alive for runtime calls
If this project helps you, consider buying me a beer 🍺 or Ko-fi ☕