trcc-linux 9.8.4__tar.gz → 9.8.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/PKG-INFO +1 -1
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/pyproject.toml +1 -1
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/__version__.py +1 -1
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/device/bulk_lcd.py +15 -9
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/diagnostics/debug_report.py +129 -7
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/infra/sysinfo_config.py +18 -6
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/app.py +39 -1
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/commands/__init__.py +4 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/commands/device.py +74 -4
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/protocol.py +32 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/registry.py +5 -2
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/_dc.py +14 -13
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/display.py +3 -21
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/api/display.py +14 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/cli/_ctx.py +41 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/cli/display.py +62 -81
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/cli/led.py +31 -105
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/lcd_handler.py +7 -8
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/trcc_app.py +2 -1
- trcc_linux-9.8.6/tests/adapters/infra/__init__.py +0 -0
- trcc_linux-9.8.6/tests/adapters/infra/test_sysinfo_config_fan_map.py +85 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_bulk_lcd_geometry.py +13 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_dc_reader.py +27 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_diagnostics.py +39 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_overlay_element_id.py +20 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_send_color.py +88 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/.gitignore +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/LICENSE +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/README.md +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/__main__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/_boot.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/_entry.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/device/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/device/_pyusb_find.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/device/hid_lcd.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/device/led.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/device/ly_lcd.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/device/scsi_lcd.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/device/transport.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/device/usb_bot_scsi.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/diagnostics/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/diagnostics/adapter.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/diagnostics/doctor.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/diagnostics/health.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/infra/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/infra/logging.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/infra/network.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/infra/send_scheduler.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/render/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/render/qt.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/repo/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/repo/data_install.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/repo/github_releases.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/repo/http.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/screencast/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/screencast/qt.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/_hwinfo.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/_lhm.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/_macos_hid.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/_msacpi.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/_powermetrics.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/_smc.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/_sysctl.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/_wmi_gpu.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/aggregator.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/bsd.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/chain.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/gpu_detect.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/hwmon.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/macos.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/nvml.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/psutil_sources.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/sensors/windows.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/_autostart.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/_devd.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/_elevate.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/_hotplug.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/_imc_timings.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/_macos_setup.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/_selinux.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/_udev.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/_windows_wmi.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/_winusb.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/bsd.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/linux.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/macos.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/spd.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/system/windows.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/theme/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/adapters/theme/cloud.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/LibreHardwareMonitor.config +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/com.github.lexonight1.trcc.policy +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/fonts/MSYH.TTC +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/fonts/MSYHBD.TTC +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/fonts/README.md +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/icons/app.ico +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/icons/trcc.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/icons/trcc_128x128.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/icons/trcc_16x16.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/icons/trcc_24x24.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/icons/trcc_256x256.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/icons/trcc_32x32.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/icons/trcc_48x48.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/icons/trcc_64x64.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/trcc-imc +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/trcc-linux.desktop +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/assets/trcc-quirk-fix.service +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/_colors.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/_safe.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/_version.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/commands/_base.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/commands/_helpers.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/commands/led.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/commands/system.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/commands/theme.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/device_recovery.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/diagnostics.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/errors.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/events.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/geometry.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/i18n.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/led_models.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/led_protocol.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/models.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/ports.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/results.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/core/variants.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/daemon.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/data/trcc_usb.te +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ipc.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/proxy.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/_ansi.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/_clock.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/audio.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/cloud_theme.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/data_install.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/device_sender.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/first_run.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/led_animation_loop.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/led_effects.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/led_segment.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/media.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/metrics_loop.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/metrics_personalize.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/migration.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/overlay.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/quickstart.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/settings.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/slideshow.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/theme.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/video_cache.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/services/video_export.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/_errors.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/api/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/api/_shared.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/api/config.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/api/devices.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/api/led.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/api/main.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/api/schemas.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/api/system.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/api/theme.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/api/trcc.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/cli/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/cli/config.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/cli/device.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/cli/main.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/cli/shell.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/cli/system.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/cli/theme.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/_ui_state.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/240240.gif +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/240320.gif +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/320240.gif +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/320320.gif +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1AK120 Digital.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1AK120 Digitala.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1AK120_Digital.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1AK120_Digitala.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1AS120 VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1AS120 VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1AS120_VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1AS120_VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1AX120 DIGITAL.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1AX120 DIGITALa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1AX120_DIGITAL.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1AX120_DIGITALa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1BA120 VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1BA120 VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1BA120_VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1BA120_VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1CORE VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1CORE VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1CORE_VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1CORE_VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1CZ1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1CZ1a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1CZ2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1CZ2a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1CZTV.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1CZTVa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1ELITE VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1ELITE VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1ELITE_VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1ELITE_VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PRO.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PROa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PRO.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PROa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN VISION V2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN VISION V2a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PRO.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PROa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SE.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SEa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN WARFRAMEa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PRO.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PROa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PRO.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PROa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PRO.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PROa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SE.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SEa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAMEa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1GRAND VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1GRAND VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1GRAND_VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1GRAND_VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITAL.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITALa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1HYPER VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1HYPER VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1HYPER_VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1HYPER_VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1KVMALEDC6.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1KVMALEDC6a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC10.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC10a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC13.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC13a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC15.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC15a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC1a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC2JD.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC2JDa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC2a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC3.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC3a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC5.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC5a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC7.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC7a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC8.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC8a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC9.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LC9a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LD10.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LD10a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LD11.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LD11a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LD6.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LD6a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LD7.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LD7a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LD8.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LD8a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LD9.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LD9a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF014.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF014a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF10.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF10V.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF10Va.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF10a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF11.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF11a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF12.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF12a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF13.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF13a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF14.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF14a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF15.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF15a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF16.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF167.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF16a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF17a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF18.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF18a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF19.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF19a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF20.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF20a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF21.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF21a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF22.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF22a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF25.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF25a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF8.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LF8a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LM16SE.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LM16SEa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LM19SE.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LM19SEa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LM22.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LM22a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LM24.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LM24a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LM26.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LM26a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LM27.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LM27a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LM30.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1LM30a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1Mjolnir VISION PRO.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1Mjolnir VISION PROa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1Mjolnir VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1Mjolnir VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1Mjolnir_VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PRO.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PROa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1Mjolnir_VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1PA120 DIGITAL.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1PA120 DIGITALa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1PA120_DIGITAL.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1PA120_DIGITALa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1PC1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1PC1a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1RK120 DIGITAL.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1RK120 DIGITALa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1RK120_DIGITAL.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1RK120_DIGITALa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1RP130 VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1RP130 VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1RP130_VISION.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1RP130_VISIONa.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1RX1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1RX1a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1Stream Vision.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1Stream Visiona.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1Stream_Vision.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/A1Stream_Visiona.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/about_dropdown.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/about_dropdown_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/about_dropdown_select.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/about_update.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/about_update_overlay.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_about_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_brightness_0.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_brightness_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_brightness_2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_brightness_3.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_export.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_form_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_help.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_import.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_main_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_power.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_power_hover.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_save.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_sysinfo_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_tab_cloud.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_tab_cloud_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_tab_local.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_tab_local_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_tab_mask.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_tab_mask_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_tab_mask_lower.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_tab_settings.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_tab_settings_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_theme_base_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_theme_gallery_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/app_theme_settings_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/carousel_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/carousel_2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/carousel_3.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/carousel_4.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/carousel_5.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/carousel_6.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/carousel_btn.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/carousel_btn_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/carousel_select_frame.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/color_panel_eyedropper.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/color_panel_picker.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/color_panel_selector_ring.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/color_panel_slider_thumb.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/color_wheel_knob.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/color_wheel_knob_0.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/color_wheel_toggle_hover.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/color_wheel_toggle_off.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/color_wheel_toggle_on.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_12h.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_24h.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_border.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_border_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_crop.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_date_dm.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_date_dmy.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_date_md.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_date_ymd.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_digit_font.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_fit_height.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_fit_width.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_function.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_function_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_icon.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_icon_gif.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_icon_image.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_icon_livestream.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_icon_mask.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_icon_network.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_icon_video.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_m1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_m1_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_m2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_m2_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_m3.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_m3_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_m4.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_m4_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_m5.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_m5_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_m6.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_m6_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_minus.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_network_btn.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_plus.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_rotate.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_slider_thumb.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_text_font.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_unit_c.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/display_mode_unit_f.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/frozen_warframe_ultra.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/frozen_warframe_ultra_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_110x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_116x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_1280x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_160x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_180x400.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_180x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_240x240.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_240x320.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_240x400.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_240x427.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_270x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_320x240.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_320x320.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_320x86.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_360x360.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_400x180.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_400x240.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_427x240.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_480x110.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_480x116.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_480x160.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_480x180.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_480x270.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_480x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/image_cut_86x320.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_aggregate.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_aggregate_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_bg_cz1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_bg_kvma.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_bg_lc1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_bg_lc2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_bg_lf10.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_bg_lf11.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_bg_lf12.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_bg_lf13.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_bg_lf15.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_bg_lf8.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_bg_rgb_lf13.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_bg_segment.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_bg_segment_4zone.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_dropdown.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_dropdown_2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_dropdown_highlight.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_dropdown_highlight_2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_dropdown_menu.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_dropdown_menu_2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_external.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_external_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_helmet_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_helmet_2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_helmet_3.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_helmet_4.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_helmet_5.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_meter_bar_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_meter_bar_2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_meter_bar_3.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_meter_bar_4.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_meter_bar_5.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_meter_bar_6.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_meter_bg_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_meter_bg_2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_meter_bg_3.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_meter_bg_4.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_meter_bg_5.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_meter_bg_5_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_meter_bg_6.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_10.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_10_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_11.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_11_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_12.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_12_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_1_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_2_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_3.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_3_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_4.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_4_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_5.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_5_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_6.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_6_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_7.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_7_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_8.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_8_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_9.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_mode_9_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_power.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_power_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preset_blue.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preset_cyan.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preset_green.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preset_orange.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preset_purple.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preset_red.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preset_white.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preset_yellow.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preview_ak120.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preview_ax120.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preview_cz1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preview_frozen_horizon_pro.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preview_frozen_magic_pro.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preview_lc1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preview_lc2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preview_lf10.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preview_lf11.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preview_lf12.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preview_lf13.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preview_lf15.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preview_lf8.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preview_pa120.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_preview_pa120_space.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_show_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_show_1_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_show_2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_show_2_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_show_3.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_show_3_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_slider_thumb.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_btn_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_btn_1_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_btn_2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_btn_2_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_btn_3.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_btn_3_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_btn_4.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_btn_4_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_mode_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_mode_1_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_mode_2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_mode_2_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_mode_3.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_mode_3_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_mode_4.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_mode_4_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_mode_5.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_mode_5_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_mode_6.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/led_zone_mode_6_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_label_sysinfo.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_en.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_tc.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_label_sysinfo_en.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_label_sysinfo_tc.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_label_text.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_label_text_en.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_label_text_tc.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_label_time.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_label_time_en.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_label_time_tc.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_mode_date.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_mode_hardware.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_mode_text.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_mode_time.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_mode_weekday.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/overlay_select.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_110x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_116x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_160x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_180x400.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_180x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_240x240.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_240x320.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_240x400.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_240x427.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_270x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_320x240.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_320x320.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_320x320_round.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_320x86.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_360x360_round.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_400x180.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_400x240.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_427x240.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_480x110.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_480x116.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_480x160.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_480x180.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_480x270.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_480x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_480x480_round.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_86x320.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_animation.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_btn.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_btn_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_pause.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_play.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_player_control_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_1280x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_1920x440.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_1920x462.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_320x960.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_360x800.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_440x1920.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_462x1920.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_480x1280.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_480x800.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_480x854.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_540x960.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_800x360.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_800x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_854x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_960x320.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_popup_960x540.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_res_240x240.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_res_240x320.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_res_320x240.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_res_320x320.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_round_mask_320x320.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_round_mask_360x360.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_round_mask_480x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_video_controls_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/preview_video_controls_bg_alt.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/screen_led_deco_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/screen_led_deco_2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/screen_led_deco_3.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/screen_led_deco_4.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/screen_led_deco_cz1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/secondary_screen_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/secondary_screen_bg_d.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/secondary_screen_bg_e.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/secondary_screen_bg_en.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/secondary_screen_bg_f.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/secondary_screen_bg_h.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/secondary_screen_bg_p.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/secondary_screen_bg_r.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/secondary_screen_bg_tc.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/secondary_screen_bg_x.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_add_content.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_add_content_btn.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_add_content_mask.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_add_date.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_add_date_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_add_icon.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_add_link_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_add_text.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_add_text_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_add_time.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_add_time_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_add_weekday.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_add_weekday_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_anim_sync.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_background.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_brightness.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_keyboard_sync_1.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_keyboard_sync_2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_keyboard_sync_3.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_module.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_overlay.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_overlay_add_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_overlay_color_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_overlay_grid_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_overlay_table_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/settings_params.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_brightness_bar.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_checkbox_off.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_checkbox_on.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_clip_a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_clip_b.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_close.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_close_2.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_dropdown.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_dropdown_bg_2x.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_dropdown_bg_4x.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_dropdown_highlight.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_loading_animation.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_progress_bar.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_round_close.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_round_confirm.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_scrollbar_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_scrollbar_thumb.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_shortcut_size_slider.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_thread_multi.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_thread_single.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_toggle_off.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shared_toggle_on.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shortcuts_panel.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shortcuts_panel_d.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shortcuts_panel_e.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shortcuts_panel_en.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shortcuts_panel_f.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shortcuts_panel_p.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shortcuts_panel_r.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shortcuts_panel_tc.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/shortcuts_panel_x.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sidebar_about.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sidebar_about_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sidebar_about_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sidebar_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sidebar_no_device.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sidebar_sensor.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sidebar_sensor_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sidebar_splash.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sidebar_sysinfo_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/split_overlay_a.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/split_overlay_a_180.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/split_overlay_a_270.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/split_overlay_a_90.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/split_overlay_b.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/split_overlay_b_180.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/split_overlay_b_270.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/split_overlay_b_90.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/split_overlay_c.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/split_overlay_c_180.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/split_overlay_c_270.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/split_overlay_c_90.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sysinfo_add_group.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sysinfo_cpu.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sysinfo_custom.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sysinfo_dram.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sysinfo_fan.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sysinfo_gpu.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sysinfo_hdd.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sysinfo_net.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sysinfo_next_page.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sysinfo_prev_page.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sysinfo_scrollbar.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/sysinfo_select.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_browser_filter.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_browser_filter_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_cloud_label.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_cloud_label_d.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_cloud_label_e.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_cloud_label_en.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_cloud_label_f.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_cloud_label_h.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_cloud_label_p.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_cloud_label_r.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_cloud_label_tc.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_cloud_label_x.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_local_carousel.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_local_carousel_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_local_export_all.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_local_multi_select.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_local_multi_select_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_local_select_frame.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_local_select_frame_active.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/theme_mask_label.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_110x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_116x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_1280x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_160x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_180x400.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_180x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_240x240.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_240x320.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_240x400.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_240x427.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_270x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_320x240.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_320x320.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_320x86.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_360x360.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_400x180.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_400x240.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_427x240.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_480x110.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_480x116.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_480x160.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_480x180.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_480x270.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_480x480.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_86x320.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_bg.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets/video_cut_bg_alt.png +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/assets.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/base.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/base_handler.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/bus_bridge.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/color_and_add_panels.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/constants.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/display_mode_panels.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/eyedropper.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/led_handler.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/overlay_element.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/overlay_grid.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/pipewire_capture.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/screen_capture.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/splash.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_about.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_activity_sidebar.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_color_wheel.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_device.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_image_cut.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_info_module.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_led_control.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_preview.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_screen_led.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_sensor_picker.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_system_info.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_theme_local.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_theme_mask.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_theme_setting.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_theme_web.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/gui/uc_video_cut.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/presentation/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/presentation/device_presentation.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/presentation/lcd_panel.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/presentation/lcd_presentation_model.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/presentation/led_display.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/presentation/led_metrics_format.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/presentation/led_panel.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/presentation/led_zone_model.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/presentation/overlay_model.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/presentation/overlay_serialization.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/presentation/preview_geometry.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/presentation/sensor_display.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/presentation/slideshow_model.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/presentation/theme_directories.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qapp.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/app.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/assets.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/base.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/bus_bridge.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/color_wheel.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/device_picker.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/eyedropper.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/image_crop.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/about_panel.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/cloud_theme_browser.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/configuration_panel.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/device_panel.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/display_panel.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/led/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/led/_base.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/led/advanced_tab.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/led/color_tab.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/led/mode_tab.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/led/segment_tab.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/led/zone_tab.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/led_panel.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/local_theme_browser.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/mask_browser.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/overlay_editor.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/preview_panel.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/screencast_panel.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/sidebar.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/status_panel.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/panels/system_panel.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/region_overlay.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/screen_overlay.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/sensor_picker.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/splash.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/src/trcc/ui/qtgui/video_crop.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/__init__.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/adapters/system/test_elevate.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/adapters/system/test_imc_timings.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/adapters/system/test_linux_imc.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/adapters/system/test_spd.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/adapters/system/test_windows_mem_disk.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/adapters/system/test_windows_permissions.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/adapters/system/test_windows_wmi_seam.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/conftest.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/mock_platform.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_api_routes.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_app_senders.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_architecture_boundaries.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_autostart.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_autostart_macos.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_autostart_windows.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_backend_finish.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_boot_animation_command.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_boot_animation_device.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_cli_commands.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_clock.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_cloud_themes.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_commands.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_connect_failure_hints.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_connection_issues.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_control_center.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_daemon.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_data_install.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_dc_codec.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_device_catalog_smoke.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_device_recovery.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_device_sender.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_device_surface_matrix.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_diagnose_parse_report.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_display_rotation.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_display_tweaks.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_first_run_and_migration.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_geometry.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_gpu_extras_install.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_gpu_preference.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_gui_empty_state.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_gui_entry_exit.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_gui_panels.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_gui_raise_existing.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_hid_lcd_geometry.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_hotplug.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_hotplug_bsd.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_hotplug_polling.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_hotplug_windows.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_i18n.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_integration_pipeline.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_ipc_server.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_ipc_windows_fallback.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_ipc_wire.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_lcd_panel_model.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_led_animation_loop.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_led_assets.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_led_display_model.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_led_effects.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_led_handler_requires_app.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_led_panel_model.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_led_pm_registry.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_led_remap.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_led_send.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_led_settings_commands.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_library_migration.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_ly_lcd_geometry.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_manpages.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_mask_commands.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_mask_rendering.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_metrics_personalize.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_mock_reply_override.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_models.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_orientation_cloud_background.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_orientation_reload.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_overlay_clock.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_overlay_grid_adapter.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_overlay_metric_unit.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_overlay_resolve.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_overlay_show_unit.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_packaging_entrypoints.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_platform_hw_probes.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_pyusb_find_seam.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_quickstart.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_render_led.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_run_setup_order.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_scsi_lcd_geometry.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_selinux_install.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_sensor_chain.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_sensors.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_sensors_bsd.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_sensors_lhm_subprocess.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_sensors_macos.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_sensors_nvml.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_sensors_windows.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_settings_migration.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_shell.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_system_commands.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_system_resume.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_theme_persistence.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_theme_service.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_transports.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_udev.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_ui_surfaces_smoke.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_variant_presentation_audit.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_video_cache.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_video_playback.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_wire_rotation.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/test_wmi_gpu_fallback.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/ui/presentation/test_device_presentation.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/ui/presentation/test_lcd_presentation_model.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/ui/presentation/test_led_metrics_format.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/ui/presentation/test_led_zone_model.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/ui/presentation/test_overlay_model.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/ui/presentation/test_overlay_view_binding.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/ui/presentation/test_preview_geometry.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/ui/presentation/test_sensor_display.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/ui/presentation/test_slideshow_model.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/ui/presentation/test_theme_directories.py +0 -0
- {trcc_linux-9.8.4 → trcc_linux-9.8.6}/tests/ui/presentation/test_theme_local_binding.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: trcc-linux
|
|
3
|
-
Version: 9.8.
|
|
3
|
+
Version: 9.8.6
|
|
4
4
|
Summary: Linux implementation of Thermalright LCD Control Center
|
|
5
5
|
Project-URL: Homepage, https://github.com/Lexonight1/thermalright-trcc-linux
|
|
6
6
|
Project-URL: Documentation, https://github.com/Lexonight1/thermalright-trcc-linux#readme
|
|
@@ -55,16 +55,22 @@ _WRITE_CHUNK_SIZE = 16 * 1024
|
|
|
55
55
|
# PM values that use raw RGB565 (cmd=3); everything else uses JPEG (cmd=2).
|
|
56
56
|
_RGB565_PMS: set[int] = {32}
|
|
57
57
|
|
|
58
|
-
# Bulk base FBL is 72 (480x480, hardcoded by USBLCDNew.exe). C#
|
|
59
|
-
#
|
|
60
|
-
# (
|
|
61
|
-
#
|
|
62
|
-
#
|
|
63
|
-
#
|
|
58
|
+
# Bulk base FBL is 72 (480x480, hardcoded by USBLCDNew.exe). The C# resolves
|
|
59
|
+
# every bulk panel through ``FormCZTVInit(fbl=72, m=2, pm, pmSub)``
|
|
60
|
+
# (TRCC.decompiled.cs:742) — base 480x480, overridden ONLY for the PM values
|
|
61
|
+
# its ``switch(pm)`` handles. This set is exactly those values:
|
|
62
|
+
# case 5 → 50 (320x240) case 7 → 64 (640x480)
|
|
63
|
+
# m==2 default: pm==32 → 100 (320x320); pm==64 → 114 (1600x720);
|
|
64
|
+
# pm==65 → 192 (1920x462); pm∈{9,11} → 224 (854x480);
|
|
65
|
+
# pm==10 → 224 (960x540); pm==12 → 224 (800x480)
|
|
66
|
+
# (PM=1 with SUB 48/49 is handled by the separate SUB guard in ``connect()``.)
|
|
67
|
+
# EVERY other PM stays 480x480 — including PM=50 (a poll-byte "SPI mode 2"
|
|
68
|
+
# value the GrandVision 360 reports, #176) and the 224/192-by-PM poll-byte
|
|
69
|
+
# values (13-17, 63, 66, 68, 69) that HID/LY resolve via ``pm_to_fbl`` but
|
|
70
|
+
# ``FormCZTVInit`` never maps on the bulk path. Keep this set == FormCZTVInit's
|
|
71
|
+
# branches; do not re-add poll-byte PMs, or bulk panels misread again. (#176/#169)
|
|
64
72
|
_BULK_BASE_FBL = 72
|
|
65
|
-
_BULK_KNOWN_PMS: frozenset[int] = frozenset(
|
|
66
|
-
{5, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 32, 50, 63, 64, 65, 66, 68, 69}
|
|
67
|
-
)
|
|
73
|
+
_BULK_KNOWN_PMS: frozenset[int] = frozenset({5, 7, 9, 10, 11, 12, 32, 64, 65})
|
|
68
74
|
|
|
69
75
|
|
|
70
76
|
@DeviceFactory.register(Wire.BULK)
|
|
@@ -17,22 +17,32 @@ whole report. Reporters always get *something* useful to attach.
|
|
|
17
17
|
"""
|
|
18
18
|
from __future__ import annotations
|
|
19
19
|
|
|
20
|
+
import contextlib
|
|
20
21
|
import json
|
|
21
22
|
import logging
|
|
22
23
|
import os
|
|
23
24
|
import platform as py_platform
|
|
24
25
|
import sys
|
|
26
|
+
from collections import deque
|
|
25
27
|
from dataclasses import dataclass, field
|
|
26
28
|
from datetime import datetime, timezone
|
|
27
29
|
from pathlib import Path
|
|
28
30
|
|
|
31
|
+
from ...core.errors import HandshakeError, TransportError
|
|
32
|
+
from ...core.models import Kind, ProductInfo, Wire
|
|
29
33
|
from ...core.ports import Platform
|
|
30
34
|
from ...core.registry import find_product
|
|
35
|
+
from ..device import DeviceFactory
|
|
31
36
|
from ..infra.logging import tail_log
|
|
32
37
|
from .health import HealthReport, run_health_checks
|
|
33
38
|
|
|
34
39
|
log = logging.getLogger(__name__)
|
|
35
40
|
|
|
41
|
+
# Marker for the connect-time handshake line ("BulkLcd handshake OK: PM=…",
|
|
42
|
+
# "HidLcd handshake OK: …", etc.). Scraped from the FULL log as a fallback
|
|
43
|
+
# when a live probe can't run.
|
|
44
|
+
_HANDSHAKE_LOG_MARKER = "handshake OK"
|
|
45
|
+
|
|
36
46
|
|
|
37
47
|
@dataclass(frozen=True, slots=True)
|
|
38
48
|
class DebugReport:
|
|
@@ -49,6 +59,7 @@ class DebugReport:
|
|
|
49
59
|
settings_error: str = ""
|
|
50
60
|
health: HealthReport = field(default_factory=HealthReport)
|
|
51
61
|
log_tail: list[str] = field(default_factory=list)
|
|
62
|
+
handshake_log: list[str] = field(default_factory=list)
|
|
52
63
|
|
|
53
64
|
def render_text(self) -> str:
|
|
54
65
|
"""Render the report as a single string for clipboard/file output."""
|
|
@@ -58,6 +69,9 @@ class DebugReport:
|
|
|
58
69
|
sections.append(_render_kv("Platform", self.platform_info))
|
|
59
70
|
sections.append(_render_kv("Paths", self.paths))
|
|
60
71
|
sections.append(_render_devices(self.devices, self.devices_error))
|
|
72
|
+
handshake = _render_handshake_log(self.handshake_log)
|
|
73
|
+
if handshake:
|
|
74
|
+
sections.append(handshake)
|
|
61
75
|
sections.append(_render_sensors(self.sensors, self.sensors_error))
|
|
62
76
|
sections.append(_render_powercap(self.powercap))
|
|
63
77
|
sections.append(_render_settings(self.settings_json, self.settings_error))
|
|
@@ -93,6 +107,7 @@ def build_debug_report(
|
|
|
93
107
|
health = run_health_checks(platform)
|
|
94
108
|
log_path = platform.paths().log_file()
|
|
95
109
|
log_lines = tail_log(log_path, n_lines=log_tail_lines)
|
|
110
|
+
handshake_log = _scrape_handshake_lines(log_path)
|
|
96
111
|
|
|
97
112
|
return DebugReport(
|
|
98
113
|
timestamp=timestamp,
|
|
@@ -107,6 +122,7 @@ def build_debug_report(
|
|
|
107
122
|
settings_error=settings_err,
|
|
108
123
|
health=health,
|
|
109
124
|
log_tail=log_lines,
|
|
125
|
+
handshake_log=handshake_log,
|
|
110
126
|
)
|
|
111
127
|
|
|
112
128
|
|
|
@@ -160,17 +176,105 @@ def _collect_devices(
|
|
|
160
176
|
rows: list[dict[str, str]] = []
|
|
161
177
|
for info in infos:
|
|
162
178
|
product = find_product(info.vid, info.pid)
|
|
163
|
-
|
|
179
|
+
row = {
|
|
164
180
|
"key": info.key,
|
|
165
181
|
"vid": f"{info.vid:04x}",
|
|
166
182
|
"pid": f"{info.pid:04x}",
|
|
167
183
|
"product": product.product if product else "(unregistered)",
|
|
168
184
|
"vendor": product.vendor if product else "(unregistered)",
|
|
169
185
|
"wire": product.wire.value if product else "(unknown)",
|
|
170
|
-
}
|
|
186
|
+
}
|
|
187
|
+
# Capture the live handshake so the report always carries the exact
|
|
188
|
+
# PM / SUB / fbl / resolution — the bytes that decide a panel's
|
|
189
|
+
# geometry. Without this the report only has them if the connect-time
|
|
190
|
+
# log line survived in the tail, which on a long session it never does.
|
|
191
|
+
if product is not None:
|
|
192
|
+
handshake = _probe_handshake(platform, product)
|
|
193
|
+
if handshake is not None:
|
|
194
|
+
row.update({f"hs_{k}": v for k, v in handshake.items()})
|
|
195
|
+
rows.append(row)
|
|
171
196
|
return rows, ""
|
|
172
197
|
|
|
173
198
|
|
|
199
|
+
def _probe_handshake(
|
|
200
|
+
platform: Platform, product: ProductInfo,
|
|
201
|
+
) -> dict[str, str] | None:
|
|
202
|
+
"""Connect the device, capture its handshake bytes, then disconnect.
|
|
203
|
+
|
|
204
|
+
The device's PM / SUB / fbl / resolution decide its whole geometry, yet the
|
|
205
|
+
report otherwise loses them: the handshake fires once at connect (startup)
|
|
206
|
+
and its log line scrolls out of the tail on any real session. A fresh live
|
|
207
|
+
probe captures the exact bytes every time — this is what lets us map a new
|
|
208
|
+
panel (e.g. the shared ``87ad:70db`` controller) without asking the reporter
|
|
209
|
+
for a byte their report can't produce.
|
|
210
|
+
|
|
211
|
+
Returns None — the caller falls back to the log scrape — when the device
|
|
212
|
+
can't be probed: an LED segment display (no frame handshake), the GUI /
|
|
213
|
+
daemon already holds the device (busy), a permission error, or a handshake
|
|
214
|
+
failure. A diagnostic must never abort the report, so every failure is
|
|
215
|
+
swallowed into the fallback.
|
|
216
|
+
"""
|
|
217
|
+
key = f"{product.vid:04x}:{product.pid:04x}"
|
|
218
|
+
log.info("_probe_handshake: %s wire=%s", key, product.wire.value)
|
|
219
|
+
if product.kind is not Kind.LCD:
|
|
220
|
+
log.info("_probe_handshake: %s is %s, not LCD — no frame handshake",
|
|
221
|
+
key, product.kind.value)
|
|
222
|
+
return None
|
|
223
|
+
device = None
|
|
224
|
+
try:
|
|
225
|
+
cls = DeviceFactory.for_wire(product.wire)
|
|
226
|
+
if product.wire is Wire.SCSI:
|
|
227
|
+
transport = platform.open_scsi(product.vid, product.pid)
|
|
228
|
+
else:
|
|
229
|
+
transport = platform.open_bulk(product.vid, product.pid)
|
|
230
|
+
device = cls(product, transport)
|
|
231
|
+
result = device.connect()
|
|
232
|
+
except (OSError, HandshakeError, TransportError, RuntimeError) as e:
|
|
233
|
+
log.info("_probe_handshake: %s probe failed (%s: %s) — scraping log",
|
|
234
|
+
key, type(e).__name__, e)
|
|
235
|
+
return None
|
|
236
|
+
finally:
|
|
237
|
+
if device is not None:
|
|
238
|
+
with contextlib.suppress(OSError, TransportError, RuntimeError):
|
|
239
|
+
device.disconnect()
|
|
240
|
+
handshake = {
|
|
241
|
+
"pm": str(result.pm_byte),
|
|
242
|
+
"sub": str(result.sub_byte),
|
|
243
|
+
"fbl": str(result.fbl) if result.fbl is not None else "?",
|
|
244
|
+
"resolution": f"{result.resolution[0]}x{result.resolution[1]}",
|
|
245
|
+
"raw": result.raw_response[:64].hex(),
|
|
246
|
+
}
|
|
247
|
+
log.info("_probe_handshake: %s → PM=%s SUB=%s fbl=%s resolution=%s",
|
|
248
|
+
key, handshake["pm"], handshake["sub"], handshake["fbl"],
|
|
249
|
+
handshake["resolution"])
|
|
250
|
+
return handshake
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
def _scrape_handshake_lines(log_path: Path, keep: int = 6) -> list[str]:
|
|
254
|
+
"""The most recent ``handshake OK`` lines from the FULL log (not the tail).
|
|
255
|
+
|
|
256
|
+
The fallback for :func:`_probe_handshake`: when a live probe can't run
|
|
257
|
+
(the GUI holds the device), the connect-time handshake line may still be
|
|
258
|
+
somewhere in the log — but earlier than the tail window. Scans the whole
|
|
259
|
+
file keeping only the last *keep* matches, so it stays memory-bounded even
|
|
260
|
+
on a large log.
|
|
261
|
+
"""
|
|
262
|
+
log.debug("_scrape_handshake_lines: %s (keep=%d)", log_path, keep)
|
|
263
|
+
if not log_path.is_file():
|
|
264
|
+
return []
|
|
265
|
+
recent: deque[str] = deque(maxlen=keep)
|
|
266
|
+
try:
|
|
267
|
+
with log_path.open("r", encoding="utf-8", errors="replace") as fh:
|
|
268
|
+
for line in fh:
|
|
269
|
+
if _HANDSHAKE_LOG_MARKER in line:
|
|
270
|
+
recent.append(line.rstrip("\n"))
|
|
271
|
+
except OSError as e:
|
|
272
|
+
log.debug("_scrape_handshake_lines: read failed: %s", e)
|
|
273
|
+
return []
|
|
274
|
+
log.debug("_scrape_handshake_lines: found %d line(s)", len(recent))
|
|
275
|
+
return list(recent)
|
|
276
|
+
|
|
277
|
+
|
|
174
278
|
def _collect_sensors(
|
|
175
279
|
platform: Platform,
|
|
176
280
|
) -> tuple[list[dict[str, str]], str]:
|
|
@@ -276,11 +380,29 @@ def _render_devices(rows: list[dict[str, str]], error: str) -> str:
|
|
|
276
380
|
return f"## Devices\n Scan failed: {error}"
|
|
277
381
|
if not rows:
|
|
278
382
|
return "## Devices\n No supported devices detected on USB"
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
383
|
+
lines: list[str] = []
|
|
384
|
+
for r in rows:
|
|
385
|
+
lines.append(f" {r['key']:14} {r['product']:30} wire={r['wire']}")
|
|
386
|
+
if "hs_resolution" in r:
|
|
387
|
+
lines.append(
|
|
388
|
+
f" handshake: PM={r['hs_pm']} SUB={r['hs_sub']} "
|
|
389
|
+
f"fbl={r['hs_fbl']} resolution={r['hs_resolution']}"
|
|
390
|
+
)
|
|
391
|
+
lines.append(f" raw[0:64]: {r['hs_raw']}")
|
|
392
|
+
else:
|
|
393
|
+
lines.append(
|
|
394
|
+
" handshake: (live probe unavailable — device busy or LED; "
|
|
395
|
+
"see Handshake-from-log below)"
|
|
396
|
+
)
|
|
397
|
+
return f"## Devices ({len(rows)})\n" + "\n".join(lines)
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
def _render_handshake_log(lines: list[str]) -> str:
|
|
401
|
+
"""The scraped-from-log handshake fallback section (omitted when empty)."""
|
|
402
|
+
if not lines:
|
|
403
|
+
return ""
|
|
404
|
+
body = "\n".join(f" {line}" for line in lines)
|
|
405
|
+
return f"## Handshake (from log — fallback)\n{body}"
|
|
284
406
|
|
|
285
407
|
|
|
286
408
|
def _render_sensors(rows: list[dict[str, str]], error: str) -> str:
|
|
@@ -291,12 +291,24 @@ class SysInfoConfig:
|
|
|
291
291
|
(i, b) for i, b in enumerate(fan_panel.sensors)
|
|
292
292
|
if not b.sensor_id
|
|
293
293
|
]
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
294
|
+
# Spinning fans first, dead headers last. A super-I/O chip
|
|
295
|
+
# exposes every fan header (fan1..fan6) whether or not a fan is
|
|
296
|
+
# plugged in, and label-less boards (nct6xxx etc.) give no way to
|
|
297
|
+
# tell which is the CPU/pump. Binding in raw id order lands the
|
|
298
|
+
# CPU/GPU slots on disconnected headers reading 0 RPM while the
|
|
299
|
+
# real fans (a water pump + radiator fans sit on arbitrary
|
|
300
|
+
# headers, always spinning) fall off the end — the "fans not
|
|
301
|
+
# reporting" bug (#145). Order by (is-idle, id) so live readings
|
|
302
|
+
# claim the visible slots; idle headers only backfill leftovers.
|
|
303
|
+
leftover_fan_ids = [
|
|
304
|
+
r.sensor_id for r in sorted(
|
|
305
|
+
(r for r in readings
|
|
306
|
+
if r.sensor_id.startswith("fan:")
|
|
307
|
+
and r.sensor_id.endswith(":rpm")
|
|
308
|
+
and r.sensor_id not in bound_fan_ids),
|
|
309
|
+
key=lambda r: ((r.value or 0.0) <= 0.0, r.sensor_id),
|
|
310
|
+
)
|
|
311
|
+
]
|
|
300
312
|
for (slot_idx, binding), fan_id in zip(
|
|
301
313
|
unbound_slots, leftover_fan_ids, strict=False,
|
|
302
314
|
):
|
|
@@ -54,7 +54,7 @@ from .services.led_effects import LEDEffectEngine
|
|
|
54
54
|
from .services.media import MediaService
|
|
55
55
|
from .services.metrics_loop import MetricsLoop
|
|
56
56
|
from .services.migration import LibraryMigration
|
|
57
|
-
from .services.overlay import OverlayService
|
|
57
|
+
from .services.overlay import OverlayService, resolve_overlay_elements
|
|
58
58
|
from .services.quickstart import QuickstartService
|
|
59
59
|
from .services.settings import Settings
|
|
60
60
|
from .services.slideshow import SlideshowService
|
|
@@ -413,6 +413,34 @@ class App:
|
|
|
413
413
|
)
|
|
414
414
|
return self._renderer
|
|
415
415
|
|
|
416
|
+
def effective_overlay_elements(self, key: str) -> list[dict]:
|
|
417
|
+
"""The ONE overlay layout actually on screen for ``key``.
|
|
418
|
+
|
|
419
|
+
The single source every per-element operation (flash, select, edit)
|
|
420
|
+
must address — resolved by the same precedence the renderer uses
|
|
421
|
+
(user > mask > theme, each REPLACES; see
|
|
422
|
+
``resolve_overlay_elements``). Addressing only the user layer was
|
|
423
|
+
the ``FlashOverlayElement 'N' not found`` bug: when a mask or theme
|
|
424
|
+
supplies the live layout the user layer is empty, so an id/index
|
|
425
|
+
resolved against it matched nothing on screen.
|
|
426
|
+
"""
|
|
427
|
+
s = self.settings.for_device(key)
|
|
428
|
+
theme = self.active_themes.get(key)
|
|
429
|
+
theme_config = theme.config if theme is not None else {}
|
|
430
|
+
elements = resolve_overlay_elements(
|
|
431
|
+
theme_config, s.mask_overlay_elements, s.user_overlay_elements,
|
|
432
|
+
)
|
|
433
|
+
log.debug(
|
|
434
|
+
"effective_overlay_elements: key=%s → %d element(s) "
|
|
435
|
+
"[theme=%d mask=%s user=%d]",
|
|
436
|
+
key, len(elements),
|
|
437
|
+
len(theme_config.get("elements") or []),
|
|
438
|
+
None if s.mask_overlay_elements is None
|
|
439
|
+
else len(s.mask_overlay_elements),
|
|
440
|
+
len(s.user_overlay_elements),
|
|
441
|
+
)
|
|
442
|
+
return elements
|
|
443
|
+
|
|
416
444
|
# ── Device lifecycle ──────────────────────────────────────────────
|
|
417
445
|
|
|
418
446
|
def attach(self, vid: int, pid: int) -> Device:
|
|
@@ -498,6 +526,16 @@ class App:
|
|
|
498
526
|
self.metrics_loop.stop()
|
|
499
527
|
self.led_animation_loop.stop()
|
|
500
528
|
self.stop_hotplug()
|
|
529
|
+
# Blank every panel before releasing it so it goes dark on shutdown
|
|
530
|
+
# instead of holding its last frame lit (#143). Best-effort: the
|
|
531
|
+
# Command swallows a mid-unplug send, and any unexpected error here
|
|
532
|
+
# must not block device release below.
|
|
533
|
+
from .core.commands import SleepDevice
|
|
534
|
+
for key in list(self.devices):
|
|
535
|
+
try:
|
|
536
|
+
self.dispatch(SleepDevice(key=key))
|
|
537
|
+
except Exception:
|
|
538
|
+
log.exception("close: SleepDevice raised for %s", key)
|
|
501
539
|
for key in list(self.devices):
|
|
502
540
|
self.detach(key)
|
|
503
541
|
self._send_scheduler.shutdown()
|
|
@@ -19,6 +19,7 @@ from .device import (
|
|
|
19
19
|
DisconnectDevice,
|
|
20
20
|
DiscoverDevices,
|
|
21
21
|
EnableOverlay,
|
|
22
|
+
EnsureConnected,
|
|
22
23
|
FlashOverlayElement,
|
|
23
24
|
LcdSnapshot,
|
|
24
25
|
LoopVideo,
|
|
@@ -42,6 +43,7 @@ from .device import (
|
|
|
42
43
|
SetOverlayBackground,
|
|
43
44
|
SetOverlayConfig,
|
|
44
45
|
SetSplitMode,
|
|
46
|
+
SleepDevice,
|
|
45
47
|
StartScreencast,
|
|
46
48
|
StopScreencast,
|
|
47
49
|
StopVideo,
|
|
@@ -147,6 +149,7 @@ __all__ = [
|
|
|
147
149
|
"EnableAutostart",
|
|
148
150
|
"EnableLedTestMode",
|
|
149
151
|
"EnableOverlay",
|
|
152
|
+
"EnsureConnected",
|
|
150
153
|
"EnsureDataDownload",
|
|
151
154
|
"ExportConfig",
|
|
152
155
|
"ExportDcTheme",
|
|
@@ -234,6 +237,7 @@ __all__ = [
|
|
|
234
237
|
"SetTempUnit",
|
|
235
238
|
"SetTimeFormat",
|
|
236
239
|
"SetWeekStart",
|
|
240
|
+
"SleepDevice",
|
|
237
241
|
"StartScreencast",
|
|
238
242
|
"StopScreencast",
|
|
239
243
|
"StopVideo",
|
|
@@ -236,6 +236,34 @@ class ConnectDevice(Command[ConnectResult]):
|
|
|
236
236
|
)
|
|
237
237
|
|
|
238
238
|
|
|
239
|
+
@dataclass(frozen=True, slots=True)
|
|
240
|
+
class EnsureConnected(Command[ConnectResult]):
|
|
241
|
+
"""Bring *key* up for a wire command only if it isn't already connected.
|
|
242
|
+
|
|
243
|
+
The idempotent counterpart to :class:`ConnectDevice`. A stateless CLI
|
|
244
|
+
process holds no attached devices, so a wire command (``color``, ``play``,
|
|
245
|
+
``load-theme`` …) dispatched from a fresh process would fail with "not
|
|
246
|
+
connected". This attaches + handshakes once; when a daemon/GUI already
|
|
247
|
+
holds the device it is a pure no-op — unlike ``ConnectDevice`` it never
|
|
248
|
+
rebuilds the transport or re-handshakes a live device, so it is safe to
|
|
249
|
+
call before every wire command and once before a render/play loop without
|
|
250
|
+
disrupting an active stream. (``ConnectDevice`` keeps its always-handshake
|
|
251
|
+
contract for the reconnect / dev-console inject-reply paths.)
|
|
252
|
+
"""
|
|
253
|
+
key: str
|
|
254
|
+
|
|
255
|
+
def execute(self, app: App) -> ConnectResult:
|
|
256
|
+
existing = app.devices.get(self.key)
|
|
257
|
+
if existing is not None and existing.is_connected:
|
|
258
|
+
log.debug("EnsureConnected %s: already connected — no-op", self.key)
|
|
259
|
+
return ConnectResult(
|
|
260
|
+
ok=True, key=self.key,
|
|
261
|
+
message=f"{self.key} already connected",
|
|
262
|
+
)
|
|
263
|
+
log.info("EnsureConnected %s: not connected — attaching", self.key)
|
|
264
|
+
return app.dispatch(ConnectDevice(key=self.key))
|
|
265
|
+
|
|
266
|
+
|
|
239
267
|
@dataclass(frozen=True, slots=True)
|
|
240
268
|
class DeviceConnectionIssues(Command[ConnectionIssuesResult]):
|
|
241
269
|
"""Query devices that were found but failed to connect (with per-OS hints).
|
|
@@ -357,6 +385,44 @@ class SendColor(Command[SendResult]):
|
|
|
357
385
|
if ok else "Send returned False"),
|
|
358
386
|
)
|
|
359
387
|
|
|
388
|
+
@dataclass(frozen=True, slots=True)
|
|
389
|
+
class SleepDevice(Command[SendResult]):
|
|
390
|
+
"""Blank a connected panel so it goes dark on shutdown / quit (#143).
|
|
391
|
+
|
|
392
|
+
The unified "turn the screen off" action every surface dispatches — the
|
|
393
|
+
GUI/daemon shutdown hook (``App.close``), ``trcc display sleep`` (CLI),
|
|
394
|
+
and the ``/sleep`` API route all send this one Command. Mirrors the C#
|
|
395
|
+
exit path (stop streaming + close the device) but adds an explicit dark
|
|
396
|
+
frame first, so the panel visibly clears instead of holding its last
|
|
397
|
+
image until the firmware idle-sleeps.
|
|
398
|
+
|
|
399
|
+
Composes the existing wire paths rather than duplicating them: LCD →
|
|
400
|
+
:class:`SendColor` (a solid-black frame via
|
|
401
|
+
``DisplayService.build_solid_color_frame``); LED → :class:`SetLedColors`
|
|
402
|
+
with ``global_on=False`` (an all-off payload). Best-effort by design —
|
|
403
|
+
a device mid-unplug returns ``ok=False`` instead of raising, so it can
|
|
404
|
+
never abort ``App.close`` mid-shutdown.
|
|
405
|
+
"""
|
|
406
|
+
key: str
|
|
407
|
+
|
|
408
|
+
def execute(self, app: App) -> SendResult:
|
|
409
|
+
log.info("SleepDevice: key=%s", self.key)
|
|
410
|
+
device = app.devices.get(self.key)
|
|
411
|
+
if device is None or not device.is_connected:
|
|
412
|
+
log.info("SleepDevice %s: not connected — nothing to blank",
|
|
413
|
+
self.key)
|
|
414
|
+
return SendResult(ok=False, key=self.key, bytes_sent=0,
|
|
415
|
+
message=f"{self.key} not connected")
|
|
416
|
+
if device.is_led:
|
|
417
|
+
from .led import SetLedColors
|
|
418
|
+
result = SetLedColors(
|
|
419
|
+
key=self.key, colors=[(0, 0, 0)], global_on=False,
|
|
420
|
+
).execute(app)
|
|
421
|
+
return SendResult(ok=result.ok, key=self.key, bytes_sent=0,
|
|
422
|
+
message=result.message)
|
|
423
|
+
return SendColor(key=self.key, r=0, g=0, b=0).execute(app)
|
|
424
|
+
|
|
425
|
+
|
|
360
426
|
@dataclass(frozen=True, slots=True)
|
|
361
427
|
class SendImage(Command[SendResult]):
|
|
362
428
|
"""Push an image file to the LCD without staging it as a theme.
|
|
@@ -1535,16 +1601,20 @@ class FlashOverlayElement(Command[OverlayElementResult]):
|
|
|
1535
1601
|
duration_ms: int = 1500
|
|
1536
1602
|
|
|
1537
1603
|
def execute(self, app: App) -> OverlayElementResult:
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1604
|
+
# Resolve against the EFFECTIVE layout on screen (user > mask >
|
|
1605
|
+
# theme), not just the user layer — a mask/theme supplies the live
|
|
1606
|
+
# elements while the user layer is empty, so a user-only lookup
|
|
1607
|
+
# never matched them (the "element 'N' not found" flash bug).
|
|
1608
|
+
for e in app.effective_overlay_elements(self.key):
|
|
1609
|
+
if e.get("id") == self.element_id:
|
|
1541
1610
|
app.events.publish(OverlayChanged(
|
|
1542
1611
|
key=self.key, enabled=True,
|
|
1543
1612
|
flash_element_id=self.element_id,
|
|
1544
1613
|
flash_duration_ms=self.duration_ms,
|
|
1545
1614
|
))
|
|
1546
1615
|
return OverlayElementResult(
|
|
1547
|
-
ok=True, key=self.key,
|
|
1616
|
+
ok=True, key=self.key,
|
|
1617
|
+
element=_element_to_entry(OverlayElement.from_dict(e)),
|
|
1548
1618
|
message=f"Flashing overlay element {self.element_id} "
|
|
1549
1619
|
f"for {self.duration_ms}ms",
|
|
1550
1620
|
)
|
|
@@ -322,3 +322,35 @@ def wire_rotation(profile: DeviceProfile, orientation: int, pm: int = 0) -> int:
|
|
|
322
322
|
log.debug("wire_rotation: %dx%d jpeg=%s pm=%d base=%d orient=%d → %d°",
|
|
323
323
|
w, h, profile.jpeg, pm, base, orientation, angle)
|
|
324
324
|
return angle
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
def wire_angle(
|
|
328
|
+
profile: DeviceProfile, orientation: int, portrait_content: bool,
|
|
329
|
+
) -> int:
|
|
330
|
+
"""The single wire-frame rotation a device gets at a user *orientation*.
|
|
331
|
+
|
|
332
|
+
Collapses ``DisplayService.build_frame``'s three-way selection into one
|
|
333
|
+
pure decision so the render path and any auditor share it (DRY):
|
|
334
|
+
|
|
335
|
+
* non-widescreen rotate panels → :func:`wire_rotation` (``base − orient``)
|
|
336
|
+
* widescreen JPEG rotate panels → :func:`resolve_encode_angle` (the
|
|
337
|
+
hardware-verified #169 per-resolution encode table)
|
|
338
|
+
* squares / non-rotate panels → user orientation only (``360 − orient``)
|
|
339
|
+
|
|
340
|
+
A portrait-content theme on a rotate panel is pre-rotated at compose time
|
|
341
|
+
(``post_rotate``) and opts out by passing ``portrait_content=True``.
|
|
342
|
+
"""
|
|
343
|
+
wire_rotate_panel = (
|
|
344
|
+
profile.rotate and not portrait_content and not profile.widescreen
|
|
345
|
+
)
|
|
346
|
+
fold_into_encode = (
|
|
347
|
+
profile.rotate and not portrait_content
|
|
348
|
+
and profile.widescreen and profile.jpeg
|
|
349
|
+
)
|
|
350
|
+
if wire_rotate_panel:
|
|
351
|
+
return wire_rotation(profile, orientation)
|
|
352
|
+
if fold_into_encode:
|
|
353
|
+
return resolve_encode_angle(profile, orientation)
|
|
354
|
+
if orientation and not portrait_content:
|
|
355
|
+
return (360 - orientation) % 360
|
|
356
|
+
return 0
|
|
@@ -51,8 +51,11 @@ ALL_DEVICES: dict[tuple[int, int], ProductInfo] = {
|
|
|
51
51
|
vid=0x0416, pid=0x5406,
|
|
52
52
|
vendor="Winbond",
|
|
53
53
|
product="LCD Display",
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
# Elite Vision 360 ARGB (#212): enumerates vendor-specific with two BULK
|
|
55
|
+
# endpoints, never a /dev/sg* node — it is a BULK device, not SCSI. Its
|
|
56
|
+
# PM/resolution table already lives in _BULK_VARIANTS (variants.py).
|
|
57
|
+
wire=Wire.BULK, kind=Kind.LCD,
|
|
58
|
+
device_type=4, fbl=100,
|
|
56
59
|
native_resolution=(320, 320),
|
|
57
60
|
orientations=(0, 90, 180, 270),
|
|
58
61
|
),
|
|
@@ -44,26 +44,27 @@ _MODE_DATE = 3
|
|
|
44
44
|
_MODE_CUSTOM = 4
|
|
45
45
|
|
|
46
46
|
|
|
47
|
-
# Metric VALUE slots
|
|
48
|
-
#
|
|
49
|
-
#
|
|
50
|
-
#
|
|
51
|
-
#
|
|
52
|
-
#
|
|
53
|
-
#
|
|
47
|
+
# Metric VALUE slots carry their unit in the format so it renders DYNAMICALLY —
|
|
48
|
+
# matching the C# flag-template reader (case 220), which sets every value
|
|
49
|
+
# element's ``myModeSub = 1`` → ``UCXiTongXianShiSubTimer`` draws number + unit.
|
|
50
|
+
# The unit is our decorator (``_draw_metric`` swaps °C→°F on the global toggle
|
|
51
|
+
# and button0 can hide it), NOT a baked glyph: a baked "°C" is static and reads
|
|
52
|
+
# wrong the moment the user picks Fahrenheit, so the unit must be drawn. (The
|
|
53
|
+
# earlier #150/#203 "render bare" was wrong for these masks — the art's unit
|
|
54
|
+
# glyph is decoration; the functional unit is drawn, per the C#.)
|
|
54
55
|
_SLOT_MAP: list[tuple[str, str | None, str, str]] = [
|
|
55
56
|
("custom_text", None, "", ""),
|
|
56
|
-
("cpu_temp", "cpu:temp", "CPU", "{value:.0f}"),
|
|
57
|
+
("cpu_temp", "cpu:temp", "CPU", "{value:.0f}°C"),
|
|
57
58
|
("cpu_temp_label", None, "CPU", ""),
|
|
58
|
-
("cpu_freq", "cpu:freq", "CPU", "{value:.0f}"),
|
|
59
|
+
("cpu_freq", "cpu:freq", "CPU", "{value:.0f} MHz"),
|
|
59
60
|
("cpu_freq_label", None, "CPU", ""),
|
|
60
|
-
("cpu_usage", "cpu:usage", "CPU", "{value:.0f}"),
|
|
61
|
+
("cpu_usage", "cpu:usage", "CPU", "{value:.0f}%"),
|
|
61
62
|
("cpu_usage_label", None, "CPU", ""),
|
|
62
|
-
("gpu_temp", "gpu:primary:temp", "GPU", "{value:.0f}"),
|
|
63
|
+
("gpu_temp", "gpu:primary:temp", "GPU", "{value:.0f}°C"),
|
|
63
64
|
("gpu_temp_label", None, "GPU", ""),
|
|
64
|
-
("gpu_clock", "gpu:primary:clock","GPU", "{value:.0f}"),
|
|
65
|
+
("gpu_clock", "gpu:primary:clock","GPU", "{value:.0f} MHz"),
|
|
65
66
|
("gpu_clock_label", None, "GPU", ""),
|
|
66
|
-
("gpu_usage", "gpu:primary:usage","GPU", "{value:.0f}"),
|
|
67
|
+
("gpu_usage", "gpu:primary:usage","GPU", "{value:.0f}%"),
|
|
67
68
|
("gpu_usage_label", None, "GPU", ""),
|
|
68
69
|
]
|
|
69
70
|
|
|
@@ -37,8 +37,7 @@ from ..core.ports import Renderer
|
|
|
37
37
|
from ..core.protocol import (
|
|
38
38
|
DeviceProfile,
|
|
39
39
|
get_profile,
|
|
40
|
-
|
|
41
|
-
wire_rotation,
|
|
40
|
+
wire_angle,
|
|
42
41
|
)
|
|
43
42
|
from ._clock import compute_clock
|
|
44
43
|
from .media import MediaService
|
|
@@ -382,26 +381,9 @@ class DisplayService:
|
|
|
382
381
|
# the per-resolution encode TABLE (resolve_encode_angle) — the
|
|
383
382
|
# hardware-verified #169 path, unchanged.
|
|
384
383
|
# * Squares + non-rotate panels: user orientation only.
|
|
385
|
-
|
|
386
|
-
resolved_profile.rotate and not portrait
|
|
387
|
-
and not resolved_profile.widescreen
|
|
388
|
-
)
|
|
389
|
-
fold_into_encode = (
|
|
390
|
-
resolved_profile.rotate and not portrait
|
|
391
|
-
and resolved_profile.widescreen and resolved_profile.jpeg
|
|
392
|
-
)
|
|
393
|
-
if wire_rotate_panel:
|
|
394
|
-
angle = wire_rotation(resolved_profile, s.orientation)
|
|
395
|
-
elif fold_into_encode:
|
|
396
|
-
angle = resolve_encode_angle(resolved_profile, s.orientation)
|
|
397
|
-
elif s.orientation and not portrait:
|
|
398
|
-
angle = 360 - s.orientation
|
|
399
|
-
else:
|
|
400
|
-
angle = 0
|
|
384
|
+
angle = wire_angle(resolved_profile, s.orientation, portrait)
|
|
401
385
|
if angle % 360:
|
|
402
|
-
log.debug("build_frame %s: wire rotate %d°
|
|
403
|
-
"(wire_panel=%s widescreen=%s)",
|
|
404
|
-
info.key, angle, wire_rotate_panel, fold_into_encode)
|
|
386
|
+
log.debug("build_frame %s: wire rotate %d°", info.key, angle)
|
|
405
387
|
surface = self._r.rotate(composite, angle)
|
|
406
388
|
else:
|
|
407
389
|
surface = composite
|
|
@@ -49,6 +49,7 @@ from ...core.commands import (
|
|
|
49
49
|
SetOverlayConfig,
|
|
50
50
|
SetSlideshow,
|
|
51
51
|
SetSplitMode,
|
|
52
|
+
SleepDevice,
|
|
52
53
|
StartScreencast,
|
|
53
54
|
StopScreencast,
|
|
54
55
|
StopVideo,
|
|
@@ -768,6 +769,19 @@ def send_color(key: str, body: ColorRequest, request: Request) -> SendResponse:
|
|
|
768
769
|
return to_send_response(result)
|
|
769
770
|
|
|
770
771
|
|
|
772
|
+
@router.post("/sleep", response_model=SendResponse)
|
|
773
|
+
def sleep(key: str, request: Request) -> SendResponse:
|
|
774
|
+
"""Blank the panel so it goes dark — the shutdown / turn-off action.
|
|
775
|
+
|
|
776
|
+
Sends a solid-black frame (LCD) or an all-off payload (LED), the same
|
|
777
|
+
Command the GUI + daemon fire at PC shutdown.
|
|
778
|
+
"""
|
|
779
|
+
log.info("api POST /devices/{key}/display/sleep: key=%s", key)
|
|
780
|
+
result = request.app.state.trcc.dispatch(SleepDevice(key=key))
|
|
781
|
+
http_error_if_failed(result)
|
|
782
|
+
return to_send_response(result)
|
|
783
|
+
|
|
784
|
+
|
|
771
785
|
@router.post("/reset", response_model=SendResponse)
|
|
772
786
|
def reset(key: str, request: Request) -> SendResponse:
|
|
773
787
|
"""Reset the display — stop any active video, then send a solid red frame.
|