trcc-linux 9.10.2__tar.gz → 9.10.3__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.10.2 → trcc_linux-9.10.3}/PKG-INFO +3 -3
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/README.md +2 -2
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/pyproject.toml +1 -1
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/__version__.py +1 -1
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/_base.py +5 -4
- trcc_linux-9.10.3/src/trcc/adapters/device/_pyusb_find.py +113 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/bulk_lcd.py +10 -4
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/hid_lcd.py +11 -10
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/led.py +4 -2
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/ly_lcd.py +4 -3
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/scsi_lcd.py +3 -2
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/transport.py +97 -16
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_hwinfo.py +5 -5
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_smc.py +2 -2
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_base.py +74 -17
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_hotplug.py +91 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/bsd.py +5 -4
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/linux.py +34 -13
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/macos.py +5 -4
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/spd.py +3 -1
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/windows.py +21 -3
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/theme/filesystem.py +2 -2
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/app.py +19 -7
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/commands/__init__.py +2 -2
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/commands/_helpers.py +51 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/commands/device.py +75 -64
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/commands/theme.py +3 -40
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/led_protocol.py +2 -1
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/libraries.py +20 -8
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/logs.py +66 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/models.py +51 -5
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/ports.py +40 -4
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/protocol.py +51 -7
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/registry.py +1 -1
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/results.py +25 -16
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/variants.py +24 -6
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/_dc.py +2 -1
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/display.py +2 -2
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/media.py +4 -2
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/settings.py +37 -5
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/theme_directories.py +0 -32
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/video_export.py +1 -1
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/devices.py +18 -1
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/display.py +24 -4
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/schemas.py +18 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/theme.py +38 -5
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/device.py +25 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/display.py +50 -4
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/system.py +127 -3
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/theme.py +14 -2
- trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LC14.png +0 -0
- trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LC14a.png +0 -0
- trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LC18.png +0 -0
- trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LC18a.png +0 -0
- trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LCO1.png +0 -0
- trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LCO1a.png +0 -0
- trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LCO3.png +0 -0
- trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LCO3a.png +0 -0
- trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LCO7.png +0 -0
- trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LCO7a.png +0 -0
- trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LM32.png +0 -0
- trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LM32a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/lcd_handler.py +45 -41
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_system_info.py +3 -10
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qapp.py +21 -1
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/_browser_base.py +17 -37
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/display_panel.py +6 -32
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/overlay_editor.py +18 -1
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/screencast_panel.py +47 -2
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/dashboard_box.py +103 -7
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/video_crop.py +118 -9
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/conftest.py +41 -1
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/mock_platform.py +9 -2
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_architecture_boundaries.py +16 -4
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_audit_release_state.py +48 -6
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_bulk_lcd_geometry.py +11 -0
- trcc_linux-9.10.3/tests/test_cli_dashboard_authoring.py +264 -0
- trcc_linux-9.10.3/tests/test_command_field_reach.py +287 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_csharp_conformance.py +1 -7
- trcc_linux-9.10.3/tests/test_dev_mock_platform.py +87 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_device_quirks.py +2 -2
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_panels.py +265 -10
- trcc_linux-9.10.3/tests/test_hidpi_frame_is_dpi_immune.py +171 -0
- trcc_linux-9.10.3/tests/test_log_records_are_bounded.py +257 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_oracle_version.py +61 -7
- trcc_linux-9.10.3/tests/test_overlay_vocabulary_reaches_every_face.py +205 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_resolve_overlay.py +68 -0
- trcc_linux-9.10.3/tests/test_rotation_is_one_reload.py +256 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_screencast_driver.py +105 -1
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_theme_directories.py +0 -68
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ui_parity.py +9 -3
- trcc_linux-9.10.3/tests/test_usb_unit_path.py +424 -0
- trcc_linux-9.10.3/tests/test_variant_archives_shipped.py +119 -0
- trcc_linux-9.10.3/tests/test_variant_assets_exist.py +67 -0
- trcc_linux-9.10.3/tests/test_wake_from_sleep.py +239 -0
- trcc_linux-9.10.2/src/trcc/adapters/device/_pyusb_find.py +0 -44
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/.gitignore +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/LICENSE +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/__main__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/_boot.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/_entry.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/_f5.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/usb_bot_scsi.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/diagnostics/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/diagnostics/adapter.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/diagnostics/debug_report.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/diagnostics/doctor.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/diagnostics/health.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/diagnostics/install.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/_worker.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/data_install_runner.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/logging.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/network.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/send_scheduler.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/sysinfo_config.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/video_export_runner.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/render/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/render/qt.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/repo/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/repo/data_install.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/repo/github_releases.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/repo/http.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/screencast/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/screencast/pipewire.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/screencast/qt.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_lhm.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_macos_hid.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_msacpi.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_powermetrics.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_sysctl.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_wmi_gpu.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/aggregator.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/bsd.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/chain.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/gpu_detect.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/hwmon.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/macos.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/nvml.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/psutil_sources.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/windows.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_autostart.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_desktop_entry.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_devd.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_elevate.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_imc_timings.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_macos_setup.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_packages.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_selinux.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_udev.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_windows_wmi.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_winusb.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/theme/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/theme/cloud.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/LibreHardwareMonitor.config +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/com.github.lexonight1.trcc.policy +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/fonts/MSYH.TTC +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/fonts/MSYHBD.TTC +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/fonts/README.md +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/app.ico +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc_128x128.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc_16x16.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc_24x24.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc_256x256.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc_32x32.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc_48x48.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc_64x64.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/trcc-imc +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/trcc-linux.desktop +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/trcc-quirk-fix.service +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/_colors.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/_frames.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/_safe.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/_version.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/commands/_base.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/commands/led.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/commands/system.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/device_recovery.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/diagnostics.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/errors.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/events.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/factory.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/geometry.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/i18n.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/led_models.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/toolchain.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/daemon.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/data/trcc_usb.te +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ipc.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/proxy.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/_clock.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/_send_task.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/audio.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/background.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/bg_cache.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/cloud_theme.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/data_install.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/device_sender.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/first_run.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/led_animation_loop.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/led_effects.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/led_segment.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/metrics_loop.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/metrics_personalize.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/migration.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/overlay.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/quickstart.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/screencast_driver.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/slideshow.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/slideshow_driver.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/_base.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/_errors.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/_uis.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/_shared.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/config.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/events.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/led.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/main.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/system.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/trcc.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/bus_bridge.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/_ansi.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/_ctx.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/config.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/led.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/main.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/shell.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/eyedropper.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/_ui_state.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/240240.gif +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/240320.gif +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/320240.gif +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/320320.gif +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AK120 Digital.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AK120 Digitala.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AK120_Digital.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AK120_Digitala.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AS120 VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AS120 VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AS120_VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AS120_VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AX120 DIGITAL.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AX120 DIGITALa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AX120_DIGITAL.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AX120_DIGITALa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1BA120 VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1BA120 VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1BA120_VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1BA120_VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CORE VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CORE VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CORE_VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CORE_VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CZ1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CZ1a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CZ2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CZ2a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CZTV.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CZTVa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1ELITE VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1ELITE VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1ELITE_VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1ELITE_VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PRO.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PROa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PRO.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PROa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN VISION V2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN VISION V2a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PRO.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PROa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SE.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SEa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN WARFRAMEa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PRO.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PROa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PRO.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PROa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PRO.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PROa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SE.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SEa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAMEa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1GRAND VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1GRAND VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1GRAND_VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1GRAND_VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITAL.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITALa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1HYPER VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1HYPER VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1HYPER_VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1HYPER_VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1KVMALEDC6.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1KVMALEDC6a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC10.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC10a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC13.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC13a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC15.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC15a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC1a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC2JD.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC2JDa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC2a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC3.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC3a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC5.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC5a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC7.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC7a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC8.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC8a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC9.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC9a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD10.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD10a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD11.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD11a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD6.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD6a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD7.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD7a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD8.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD8a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD9.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD9a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF014.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF014a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF10.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF10V.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF10Va.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF10a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF11.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF11a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF12.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF12a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF13.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF13a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF14.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF14a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF15.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF15a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF16.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF167.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF16a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF17a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF18.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF18a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF19.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF19a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF20.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF20a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF21.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF21a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF22.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF22a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF25.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF25a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF8.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF8a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM16SE.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM16SEa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM19SE.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM19SEa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM22.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM22a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM24.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM24a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM26.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM26a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM27.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM27a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM30.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM30a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir VISION PRO.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir VISION PROa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir_VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PRO.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PROa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir_VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1PA120 DIGITAL.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1PA120 DIGITALa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1PA120_DIGITAL.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1PA120_DIGITALa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1PC1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1PC1a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RK120 DIGITAL.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RK120 DIGITALa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RK120_DIGITAL.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RK120_DIGITALa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RP130 VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RP130 VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RP130_VISION.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RP130_VISIONa.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RX1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RX1a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Stream Vision.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Stream Visiona.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Stream_Vision.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Stream_Visiona.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/about_dropdown.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/about_dropdown_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/about_dropdown_select.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/about_update.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/about_update_overlay.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_about_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_brightness_0.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_brightness_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_brightness_2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_brightness_3.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_export.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_form_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_help.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_import.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_main_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_power.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_power_hover.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_save.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_sysinfo_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_cloud.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_cloud_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_local.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_local_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_mask.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_mask_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_mask_lower.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_settings.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_settings_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_theme_base_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_theme_gallery_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_theme_settings_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_3.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_4.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_5.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_6.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_btn.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_btn_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_select_frame.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_panel_eyedropper.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_panel_picker.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_panel_selector_ring.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_panel_slider_thumb.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_wheel_knob.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_wheel_knob_0.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_wheel_toggle_hover.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_wheel_toggle_off.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_wheel_toggle_on.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_12h.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_24h.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_border.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_border_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_crop.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_date_dm.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_date_dmy.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_date_md.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_date_ymd.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_digit_font.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_fit_height.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_fit_width.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_function.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_function_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_icon.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_icon_gif.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_icon_image.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_icon_livestream.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_icon_mask.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_icon_network.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_icon_video.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m1_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m2_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m3.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m3_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m4.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m4_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m5.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m5_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m6.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m6_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_minus.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_network_btn.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_plus.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_rotate.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_slider_thumb.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_text_font.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_unit_c.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_unit_f.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/frozen_warframe_ultra.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/frozen_warframe_ultra_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_110x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_116x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_1280x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_160x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_180x400.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_180x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_240x240.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_240x320.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_240x400.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_240x427.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_270x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_320x240.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_320x320.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_320x86.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_360x360.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_400x180.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_400x240.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_427x240.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_480x110.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_480x116.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_480x160.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_480x180.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_480x270.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_480x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_86x320.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_aggregate.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_aggregate_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_cz1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_kvma.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lc1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lc2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lf10.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lf11.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lf12.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lf13.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lf15.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lf8.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_rgb_lf13.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_segment.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_segment_4zone.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_dropdown.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_dropdown_2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_dropdown_highlight.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_dropdown_highlight_2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_dropdown_menu.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_dropdown_menu_2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_external.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_external_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_helmet_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_helmet_2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_helmet_3.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_helmet_4.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_helmet_5.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bar_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bar_2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bar_3.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bar_4.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bar_5.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bar_6.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bg_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bg_2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bg_3.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bg_4.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bg_5.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bg_5_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bg_6.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_10.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_10_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_11.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_11_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_12.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_12_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_1_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_2_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_3.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_3_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_4.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_4_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_5.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_5_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_6.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_6_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_7.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_7_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_8.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_8_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_9.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_9_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_power.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_power_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_blue.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_cyan.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_green.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_orange.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_purple.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_red.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_white.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_yellow.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_ak120.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_ax120.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_cz1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_frozen_horizon_pro.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_frozen_magic_pro.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lc1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lc2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lf10.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lf11.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lf12.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lf13.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lf15.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lf8.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_pa120.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_pa120_space.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_show_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_show_1_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_show_2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_show_2_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_show_3.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_show_3_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_slider_thumb.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_1_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_2_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_3.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_3_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_4.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_4_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_1_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_2_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_3.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_3_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_4.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_4_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_5.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_5_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_6.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_6_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_sysinfo.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_en.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_tc.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_sysinfo_en.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_sysinfo_tc.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_text.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_text_en.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_text_tc.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_time.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_time_en.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_time_tc.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_mode_date.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_mode_hardware.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_mode_text.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_mode_time.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_mode_weekday.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_select.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_110x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_116x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_160x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_180x400.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_180x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_240x240.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_240x320.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_240x400.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_240x427.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_270x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_320x240.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_320x320.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_320x320_round.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_320x86.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_360x360_round.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_400x180.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_400x240.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_427x240.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_480x110.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_480x116.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_480x160.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_480x180.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_480x270.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_480x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_480x480_round.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_86x320.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_animation.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_btn.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_btn_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_pause.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_play.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_player_control_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_1280x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_1920x440.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_1920x462.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_320x960.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_360x800.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_440x1920.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_462x1920.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_480x1280.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_480x800.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_480x854.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_540x960.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_800x360.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_800x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_854x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_960x320.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_960x540.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_res_240x240.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_res_240x320.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_res_320x240.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_res_320x320.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_round_mask_320x320.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_round_mask_360x360.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_round_mask_480x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_video_controls_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_video_controls_bg_alt.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/screen_led_deco_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/screen_led_deco_2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/screen_led_deco_3.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/screen_led_deco_4.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/screen_led_deco_cz1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_d.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_e.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_en.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_f.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_h.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_p.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_r.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_tc.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_x.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_content.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_content_btn.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_content_mask.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_date.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_date_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_icon.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_link_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_text.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_text_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_time.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_time_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_weekday.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_weekday_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_anim_sync.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_background.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_brightness.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_keyboard_sync_1.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_keyboard_sync_2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_keyboard_sync_3.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_module.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_overlay.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_overlay_add_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_overlay_color_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_overlay_grid_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_overlay_table_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_params.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_brightness_bar.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_checkbox_off.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_checkbox_on.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_clip_a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_clip_b.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_close.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_close_2.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_dropdown.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_dropdown_bg_2x.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_dropdown_bg_4x.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_dropdown_highlight.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_loading_animation.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_progress_bar.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_round_close.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_round_confirm.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_scrollbar_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_scrollbar_thumb.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_shortcut_size_slider.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_thread_multi.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_thread_single.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_toggle_off.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_toggle_on.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_d.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_e.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_en.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_f.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_p.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_r.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_tc.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_x.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_about.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_about_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_about_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_no_device.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_sensor.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_sensor_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_splash.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_sysinfo_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_a.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_a_180.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_a_270.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_a_90.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_b.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_b_180.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_b_270.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_b_90.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_c.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_c_180.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_c_270.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_c_90.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_add_group.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_cpu.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_custom.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_dram.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_fan.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_gpu.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_hdd.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_net.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_next_page.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_prev_page.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_scrollbar.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_select.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_browser_filter.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_browser_filter_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_d.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_e.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_en.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_f.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_h.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_p.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_r.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_tc.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_x.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_local_carousel.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_local_carousel_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_local_export_all.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_local_multi_select.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_local_multi_select_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_local_select_frame.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_local_select_frame_active.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_mask_label.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_110x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_116x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_1280x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_160x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_180x400.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_180x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_240x240.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_240x320.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_240x400.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_240x427.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_270x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_320x240.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_320x320.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_320x86.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_360x360.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_400x180.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_400x240.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_427x240.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_480x110.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_480x116.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_480x160.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_480x180.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_480x270.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_480x480.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_86x320.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_bg.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_bg_alt.png +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/base.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/base_handler.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/color_and_add_panels.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/constants.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/display_mode_panels.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/led_handler.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/overlay_element.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/overlay_grid.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/panel_renderer.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/screen_capture.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/splash.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/trcc_app.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_about.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_activity_sidebar.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_color_wheel.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_device.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_image_cut.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_info_module.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_led_control.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_preview.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_screen_led.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_sensor_picker.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_theme_local.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_theme_mask.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_theme_setting.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_theme_web.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_video_cut.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/device_presentation.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/lcd_panel.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/lcd_presentation_model.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/led_display.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/led_metrics_format.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/led_panel.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/led_zone_model.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/overlay_model.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/overlay_serialization.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/panel_spec.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/preview_geometry.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/sensor_display.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/slideshow_model.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qt_periodic.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qt_tray.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/app.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/assets.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/base.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/color_wheel.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/device_picker.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/device_selection.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/image_crop.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/about_panel.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/cloud_theme_browser.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/configuration_panel.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/device_panel.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led/_base.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led/advanced_tab.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led/color_tab.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led/mode_tab.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led/segment_tab.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led/zone_tab.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led_panel.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/local_theme_browser.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/mask_browser.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/preview_panel.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/sidebar.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/status_panel.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/_base.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/gpu_box.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/health_box.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/maintenance_box.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/platform_box.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/sensors_box.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system_panel.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/preview_surface.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/region_overlay.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/sensor_picker.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/splash.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/screen_overlay.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/infra/__init__.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/infra/test_data_install_runner.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/infra/test_sysinfo_config_fan_map.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_elevate.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_imc_timings.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_linux_imc.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_scsi_single_owner.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_spd.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_windows_mem_disk.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_windows_permissions.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_windows_wmi_seam.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_api_events.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_api_preview.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_api_routes.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_app_senders.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_app_start_session.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_autostart.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_autostart_macos.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_autostart_windows.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_backend_finish.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_background_origin.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_background_slot.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_bg_cache_health.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_bg_mask_cache.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_boot_animation_command.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_boot_animation_device.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_build_preview.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_cli_commands.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_cli_test_lcd.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_clock.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_cloud_themes.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_commands.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_connect_failure_hints.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_connection_issues.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_control_center.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_csharp_oracle_parity.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_daemon.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_daemon_commands.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_data_install.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_dc_codec.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_dc_reader.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_decompiler_artifacts_current.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_desktop_entry.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_device_catalog_smoke.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_device_recovery.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_device_sender.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_device_state_contract.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_device_surface_matrix.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_diagnose_parse_report.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_diagnostics.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_display_rotation.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_display_tweaks.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_docs_api_consistency.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_docs_cli_consistency.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_docs_commands_consistency.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_docs_ports_consistency.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_encode_rotation.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_f5_protocol.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_first_run_and_migration.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_frame_shape_guard.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_function_weight.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_geometry.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_god_classes.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gpu_extras_install.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gpu_preference.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_connect_restore.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_empty_state.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_entry_exit.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_overlay_restore.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_preview_dispatch.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_raise_existing.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_video_cut_persistence.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_video_tick_multidevice.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_handshake_requests.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_health_udev_paths.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_hid_lcd_geometry.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_hotplug.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_hotplug_bsd.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_hotplug_polling.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_hotplug_windows.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_i18n.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_install_hint_shape.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_install_info.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_integration_pipeline.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ipc_events.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ipc_server.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ipc_windows_fallback.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ipc_wire.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_jpeg_frame_cap.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_lcd_panel_model.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_animation_loop.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_assets.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_display_model.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_effects.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_handler_requires_app.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_panel_model.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_pm_registry.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_remap.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_segment.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_segment_oracle.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_send.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_settings_commands.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_library_migration.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_list_devices.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_list_fans.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_logging_coverage.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ly_lcd_geometry.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_manpages.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_mask_commands.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_mask_rendering.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_media_catalog.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_metrics_personalize.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_mock_reply_override.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_models.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_mount_orientation_seed.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_oracle_transcription_complete.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_orientation_cloud_background.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_orientation_reload.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_os_families.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_overlay_clock.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_overlay_element_id.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_overlay_font_family.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_overlay_grid_adapter.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_overlay_metric_unit.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_overlay_resolve.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_overlay_show_unit.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_packaging_entrypoints.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_path_containment.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_pipewire_capture.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_platform_hw_probes.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_portrait_mounted.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_preview_is_not_rotated.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_preview_size.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_proxy_error_contract.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_proxy_events.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_pyusb_find_seam.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_qtgui_browser_data_ready.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_qtgui_led_tabs_snapshot.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_qtgui_panel_visibility.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_qtgui_sensors_on_the_bus.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_qtgui_video_ticker.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_quickstart.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_render_led.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_render_template.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_replug_sender_recovery.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_restore_device_state.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_run_setup_order.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_screencast_audio_spectrum.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_screencast_capture_chain.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_scsi_lcd_geometry.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_selinux_install.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_send_color.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensor_chain.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensor_dashboard.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensors.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensors_board_temps.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensors_bsd.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensors_lhm_subprocess.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensors_macos.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensors_nvml.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensors_windows.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_settings_migration.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_settings_schema_migration.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_shell.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_single_instance_socket.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_slideshow_driver.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_snapshot_reads_the_cache.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_system_commands.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_system_resume.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_theme_persistence.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_theme_service.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_theme_stage.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_tool_gates.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_toolchain.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_transports.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_udev.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ui_bus.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ui_surfaces_smoke.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_usb_power_state.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_variant_display_name.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_variant_presentation_audit.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_video_export_command.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_video_playback.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_wire_frame_shape.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_wmi_gpu_fallback.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_device_presentation.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_lcd_presentation_model.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_led_metrics_format.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_led_zone_model.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_overlay_model.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_overlay_view_binding.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_preview_geometry.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_sensor_display.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_slideshow_model.py +0 -0
- {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_theme_local_binding.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: trcc-linux
|
|
3
|
-
Version: 9.10.
|
|
3
|
+
Version: 9.10.3
|
|
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
|
|
@@ -90,8 +90,8 @@ Description-Content-Type: text/markdown
|
|
|
90
90
|
[](https://github.com/Lexonight1/thermalright-trcc-linux)
|
|
91
91
|
|
|
92
92
|
[](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
|
|
93
|
-
[](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
|
|
94
|
+
[](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
|
|
95
95
|
[](https://python.org)
|
|
96
96
|
[](https://docs.astral.sh/ruff/)
|
|
97
97
|
[](https://microsoft.github.io/pyright/)
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
[](https://github.com/Lexonight1/thermalright-trcc-linux)
|
|
18
18
|
|
|
19
19
|
[](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
|
|
20
|
-
[](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
|
|
21
|
+
[](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
|
|
22
22
|
[](https://python.org)
|
|
23
23
|
[](https://docs.astral.sh/ruff/)
|
|
24
24
|
[](https://microsoft.github.io/pyright/)
|
|
@@ -29,7 +29,7 @@ from typing import Any, ClassVar
|
|
|
29
29
|
|
|
30
30
|
from ...core.errors import DeviceNotFoundError, HandshakeError, TransportError
|
|
31
31
|
from ...core.factory import Registry, Reject
|
|
32
|
-
from ...core.logs import per_frame, trace
|
|
32
|
+
from ...core.logs import Blob, per_frame, trace
|
|
33
33
|
from ...core.models import HandshakeResult, ProductInfo, Wire
|
|
34
34
|
from ...core.ports import BulkTransport, Device, T
|
|
35
35
|
from ...core.protocol import DeviceProfile
|
|
@@ -149,7 +149,7 @@ class BaseDevice(Device[T]):
|
|
|
149
149
|
there, and the logger is the SUBCLASS's module so a report still says
|
|
150
150
|
which wire spoke.
|
|
151
151
|
"""
|
|
152
|
-
log.debug("_trace_reply: resp=%s", resp)
|
|
152
|
+
log.debug("_trace_reply: resp=%s", Blob(resp))
|
|
153
153
|
trace(logging.getLogger(type(self).__module__),
|
|
154
154
|
"%s raw handshake reply (%d bytes, first %d): %s",
|
|
155
155
|
self.info.key, len(resp), min(len(resp), _TRACE_REPLY_BYTES),
|
|
@@ -171,7 +171,8 @@ class BaseDevice(Device[T]):
|
|
|
171
171
|
encoding it picked, the PID variant, the LED style. Returns a string
|
|
172
172
|
that already carries its own leading space, or empty.
|
|
173
173
|
"""
|
|
174
|
-
log.debug("_handshake_detail: result=%s",
|
|
174
|
+
log.debug("_handshake_detail: result=%s raw=%s",
|
|
175
|
+
result, Blob(result.raw_response))
|
|
175
176
|
return ""
|
|
176
177
|
|
|
177
178
|
def _open_transport(self) -> None:
|
|
@@ -200,7 +201,7 @@ class BaseDevice(Device[T]):
|
|
|
200
201
|
reconnect-and-retry / consecutive-failure escalation every wire
|
|
201
202
|
shares (``core.ports.Device``).
|
|
202
203
|
"""
|
|
203
|
-
frame_log.debug("send: payload=%s", payload)
|
|
204
|
+
frame_log.debug("send: payload=%s", Blob(payload))
|
|
204
205
|
self._require_connected()
|
|
205
206
|
frame = self._prepare_frame(payload)
|
|
206
207
|
return self._send_with_recovery(partial(self._write_frame, frame))
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"""PyUSB ``find()`` seam — uses libusb_package's bundled backend on Windows.
|
|
2
|
+
|
|
3
|
+
PyUSB needs ``libusb-1.0`` userspace to talk to USB devices. Linux/macOS/BSD
|
|
4
|
+
ship it via the system package manager; **Windows has no system libusb**, so
|
|
5
|
+
pip-installed *and* PyInstaller-frozen users hit
|
|
6
|
+
``usb.core.NoBackendError: No backend available`` (#131, and again #187/#188 once
|
|
7
|
+
the GUI launch crash was fixed and discovery actually ran).
|
|
8
|
+
|
|
9
|
+
The canonical fix is `libusb-package <https://github.com/pyocd/libusb-package>`_
|
|
10
|
+
(pyocd's project): a Windows wheel that bundles ``libusb-1.0.dll`` and exposes a
|
|
11
|
+
``find()`` that loads that bundled DLL **explicitly by path** — not via the
|
|
12
|
+
flaky ``ctypes``/PATH search that bare ``usb.core.find`` relies on. It's a
|
|
13
|
+
Windows-only dependency in ``pyproject.toml``.
|
|
14
|
+
|
|
15
|
+
This module is the ONE seam every ``usb.core.find`` call goes through, so there
|
|
16
|
+
is exactly one place that knows about the Windows backend quirk (the cutover
|
|
17
|
+
dropped this seam and reverted every call site to bare ``usb.core.find``, which
|
|
18
|
+
is what reintroduced the crash). Importing ``libusb_package`` here is also what
|
|
19
|
+
makes PyInstaller bundle the module + its DLL into the frozen Windows build.
|
|
20
|
+
"""
|
|
21
|
+
from __future__ import annotations
|
|
22
|
+
|
|
23
|
+
import logging
|
|
24
|
+
from typing import Any
|
|
25
|
+
|
|
26
|
+
log = logging.getLogger(__name__)
|
|
27
|
+
|
|
28
|
+
try:
|
|
29
|
+
from libusb_package import find as _find # pyright: ignore[reportMissingImports]
|
|
30
|
+
log.debug("pyusb backend: libusb-package (bundled libusb-1.0)")
|
|
31
|
+
except ImportError:
|
|
32
|
+
from usb.core import find as _find
|
|
33
|
+
log.debug("pyusb backend: system libusb via usb.core.find")
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def find(*args: Any, **kwargs: Any) -> Any:
|
|
37
|
+
"""Drop-in for ``usb.core.find()`` with a Windows-compatible backend.
|
|
38
|
+
|
|
39
|
+
Identical signature + return type. Routes through ``libusb_package.find``
|
|
40
|
+
where it's installed (Windows, via the bundled DLL) and falls back to
|
|
41
|
+
``usb.core.find`` everywhere else (Linux/macOS/BSD system libusb).
|
|
42
|
+
"""
|
|
43
|
+
log.debug("find")
|
|
44
|
+
return _find(*args, **kwargs)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def usb_path(dev: Any) -> str | None:
|
|
48
|
+
"""Where this unit is PLUGGED IN, as a stable string — or ``None``.
|
|
49
|
+
|
|
50
|
+
Two identical coolers share a VID/PID and ship no serial, so nothing in
|
|
51
|
+
the USB descriptor tells them apart (#287). What does is the topology:
|
|
52
|
+
they are in different ports. ``usb_find(find_all=True)`` already yields
|
|
53
|
+
one object per physical unit and that object carries the answer; this
|
|
54
|
+
tree read ``iSerialNumber`` and ``bcdDevice`` off it and dropped the rest.
|
|
55
|
+
|
|
56
|
+
Format is the kernel's own USB topology name — ``1-14``, ``1-2.3`` —
|
|
57
|
+
because it is the one a user can check against ``lsusb -t`` and ``dmesg``
|
|
58
|
+
when a report says which panel did what.
|
|
59
|
+
|
|
60
|
+
**Port chain first, address second, and the difference matters.** The
|
|
61
|
+
port chain is where the cable is: it survives a replug and a reboot, so it
|
|
62
|
+
can key persisted settings. ``address`` is handed out by the host
|
|
63
|
+
controller and is reassigned on every replug — usable to tell two units
|
|
64
|
+
apart *right now*, never to remember which was which. It is the fallback
|
|
65
|
+
only, spelled ``@`` so the two can never be confused on sight.
|
|
66
|
+
|
|
67
|
+
``None`` is a real answer. PyUSB sets ``bus`` / ``address`` /
|
|
68
|
+
``port_number`` to ``None`` whenever the backend does not supply them
|
|
69
|
+
(``usb.core.Device.__init__``), so this is guarded on EVERY platform, not
|
|
70
|
+
just the ones we cannot test on. A caller that gets ``None`` has learned
|
|
71
|
+
that this host cannot tell two identical units apart.
|
|
72
|
+
"""
|
|
73
|
+
bus = getattr(dev, "bus", None)
|
|
74
|
+
if bus is None:
|
|
75
|
+
log.debug("usb_path: backend supplied no bus — not addressable")
|
|
76
|
+
return None
|
|
77
|
+
ports = getattr(dev, "port_numbers", None) or ()
|
|
78
|
+
if ports:
|
|
79
|
+
path = f"{int(bus)}-{'.'.join(str(int(p)) for p in ports)}"
|
|
80
|
+
log.debug("usb_path: %s (port chain — stable across replug)", path)
|
|
81
|
+
return path
|
|
82
|
+
address = getattr(dev, "address", None)
|
|
83
|
+
if address is None:
|
|
84
|
+
log.debug("usb_path: bus %s but no ports and no address", bus)
|
|
85
|
+
return None
|
|
86
|
+
path = f"{int(bus)}@{int(address)}"
|
|
87
|
+
log.debug("usb_path: %s (ADDRESS — changes on replug)", path)
|
|
88
|
+
return path
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def find_unit(vid: int, pid: int, unit: str) -> Any:
|
|
92
|
+
"""The device of *vid:pid* plugged into *unit*, or ``None``.
|
|
93
|
+
|
|
94
|
+
``find(idVendor=, idProduct=)`` returns whichever unit libusb lists
|
|
95
|
+
first, which is why two identical coolers both opened the same panel and
|
|
96
|
+
the second ``claim_interface`` failed with "in use by another process"
|
|
97
|
+
(#287). This asks for a specific one instead.
|
|
98
|
+
|
|
99
|
+
An empty *unit* means "the only one of this model" and is NOT a match-all
|
|
100
|
+
here — callers that mean that call :func:`find` directly, so this function
|
|
101
|
+
can never silently hand back an arbitrary device when the caller asked for
|
|
102
|
+
a named one.
|
|
103
|
+
"""
|
|
104
|
+
if not unit:
|
|
105
|
+
log.debug("find_unit: no unit asked for")
|
|
106
|
+
return None
|
|
107
|
+
for dev in find(find_all=True, idVendor=vid, idProduct=pid) or []:
|
|
108
|
+
if usb_path(dev) == unit:
|
|
109
|
+
log.info("find_unit: %04x:%04x at %s", vid, pid, unit)
|
|
110
|
+
return dev
|
|
111
|
+
log.warning("find_unit: %04x:%04x has no unit at %s — it may have been "
|
|
112
|
+
"unplugged or moved to another port", vid, pid, unit)
|
|
113
|
+
return None
|
|
@@ -18,7 +18,7 @@ from ...core.errors import (
|
|
|
18
18
|
HandshakeError,
|
|
19
19
|
TransportError,
|
|
20
20
|
)
|
|
21
|
-
from ...core.logs import per_frame
|
|
21
|
+
from ...core.logs import Blob, per_frame
|
|
22
22
|
from ...core.models import HandshakeResult, ProductInfo, Wire
|
|
23
23
|
from ...core.ports import BulkTransport
|
|
24
24
|
from ...core.protocol import (
|
|
@@ -79,7 +79,12 @@ _RGB565_PMS: set[int] = {32}
|
|
|
79
79
|
# on the bulk path and told maintainers to keep it that way. That was read off
|
|
80
80
|
# the 2.0.3 decompile, and 2.1.6 falsifies it. (#176/#169)
|
|
81
81
|
_BULK_BASE_FBL = 72
|
|
82
|
-
|
|
82
|
+
# 20 joined in TRCC 2.1.8: FormCZTV.cs:947 extended the 854x480 branch from
|
|
83
|
+
# (pm 9 || 11) to (pm 9 || 11 || 20). Without it here the guard sends the panel
|
|
84
|
+
# to the 480x480 fallback -- `audit_devices --exhaustive-bulk` read
|
|
85
|
+
# `pm=20 sub=0: ours=480x480 C#=854x480` before this line.
|
|
86
|
+
_BULK_KNOWN_PMS: frozenset[int] = frozenset(
|
|
87
|
+
{5, 7, 9, 10, 11, 12, 18, 20, 32, 64, 65})
|
|
83
88
|
|
|
84
89
|
|
|
85
90
|
# JPEG start-of-frame markers carry the image's real dimensions. C4/C8/CC
|
|
@@ -244,7 +249,8 @@ class BulkLcd(BaseBulkDevice, wire=Wire.BULK):
|
|
|
244
249
|
report we had: #262 and #203 turned out to share ``PM=11 SUB=5`` and
|
|
245
250
|
nobody could see it, including me, until I read the C# catalog rule.
|
|
246
251
|
"""
|
|
247
|
-
log.debug("_handshake_detail: result=%s",
|
|
252
|
+
log.debug("_handshake_detail: result=%s raw=%s",
|
|
253
|
+
result, Blob(result.raw_response))
|
|
248
254
|
if self._profile is None:
|
|
249
255
|
return ""
|
|
250
256
|
encoder = " (JPEG)" if self._profile.jpeg else " (RGB565)"
|
|
@@ -354,7 +360,7 @@ class BulkLcd(BaseBulkDevice, wire=Wire.BULK):
|
|
|
354
360
|
The ZLP is exempt: it is a zero-length delimiter, so there is no
|
|
355
361
|
payload to come up short.
|
|
356
362
|
"""
|
|
357
|
-
log.debug("_write_frame: frame=%s", frame)
|
|
363
|
+
log.debug("_write_frame: frame=%s", Blob(frame))
|
|
358
364
|
for offset in range(0, len(frame), _WRITE_CHUNK_SIZE):
|
|
359
365
|
chunk = frame[offset:offset + _WRITE_CHUNK_SIZE]
|
|
360
366
|
if self._transport.write(
|
|
@@ -25,7 +25,7 @@ from ...core.errors import (
|
|
|
25
25
|
TransportError,
|
|
26
26
|
UnsupportedOperationError,
|
|
27
27
|
)
|
|
28
|
-
from ...core.logs import per_frame
|
|
28
|
+
from ...core.logs import Blob, per_frame
|
|
29
29
|
from ...core.models import HandshakeResult, ProductInfo, Wire
|
|
30
30
|
from ...core.ports import BulkTransport
|
|
31
31
|
from ...core.protocol import DeviceProfile, get_profile, pm_to_fbl
|
|
@@ -107,7 +107,8 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
|
|
|
107
107
|
|
|
108
108
|
def _handshake_detail(self, result: HandshakeResult) -> str:
|
|
109
109
|
"""Which firmware variant answered — the two speak different packets."""
|
|
110
|
-
log.debug("_handshake_detail: result=%s",
|
|
110
|
+
log.debug("_handshake_detail: result=%s raw=%s",
|
|
111
|
+
result, Blob(result.raw_response))
|
|
111
112
|
return f" (type {self.info.device_type})"
|
|
112
113
|
|
|
113
114
|
def _require_connected(self) -> None:
|
|
@@ -316,7 +317,7 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
|
|
|
316
317
|
#228) — the magic alone is enough to accept it; PM/SUB still parse from
|
|
317
318
|
[5]/[4].
|
|
318
319
|
"""
|
|
319
|
-
log.debug("_validate_response_type2: resp=%s", resp)
|
|
320
|
+
log.debug("_validate_response_type2: resp=%s", Blob(resp))
|
|
320
321
|
if not (len(resp) >= 6 and resp[0:4] == _TYPE2_MAGIC):
|
|
321
322
|
return False
|
|
322
323
|
if self._quirks.short_handshake:
|
|
@@ -338,7 +339,7 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
|
|
|
338
339
|
panels share: a 1280×480 Trofeo Vision answering PM=128 was transposed
|
|
339
340
|
to 480×1280 and never displayed (#244/#268).
|
|
340
341
|
"""
|
|
341
|
-
log.debug("_parse_response_type2: resp=%s", resp)
|
|
342
|
+
log.debug("_parse_response_type2: resp=%s", Blob(resp))
|
|
342
343
|
pm = resp[5]
|
|
343
344
|
sub = resp[4]
|
|
344
345
|
has_serial = len(resp) > 36 and resp[16] == 0x10
|
|
@@ -370,7 +371,7 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
|
|
|
370
371
|
fall back to ``info.native_resolution`` so smoke tests that build
|
|
371
372
|
frames before connect() still produce a valid header.
|
|
372
373
|
"""
|
|
373
|
-
log.debug("_build_frame_type2: image_data=%s", image_data)
|
|
374
|
+
log.debug("_build_frame_type2: image_data=%s", Blob(image_data))
|
|
374
375
|
is_jpeg = len(image_data) >= 2 and image_data[:2] == b'\xff\xd8'
|
|
375
376
|
w, h = (self._profile.resolution if self._profile is not None
|
|
376
377
|
else self.info.native_resolution)
|
|
@@ -406,7 +407,7 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
|
|
|
406
407
|
duplication ``_f5`` exists to prevent — so widening the set there did not
|
|
407
408
|
widen it here.
|
|
408
409
|
"""
|
|
409
|
-
log.debug("_validate_response_type3: resp=%s", resp)
|
|
410
|
+
log.debug("_validate_response_type3: resp=%s", Blob(resp))
|
|
410
411
|
return len(resp) >= 14 and resp[0] in _f5.VALID_IDENTITY
|
|
411
412
|
|
|
412
413
|
def _parse_response_type3(self, resp: bytes) -> HandshakeResult:
|
|
@@ -414,7 +415,7 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
|
|
|
414
415
|
|
|
415
416
|
Geometry comes from the FBL via ``get_profile`` (PM=FBL for Type 3).
|
|
416
417
|
"""
|
|
417
|
-
log.debug("_parse_response_type3: resp=%s", resp)
|
|
418
|
+
log.debug("_parse_response_type3: resp=%s", Blob(resp))
|
|
418
419
|
serial = resp[10:14].hex().upper()
|
|
419
420
|
fbl = resp[0] - 1
|
|
420
421
|
# Sized from the identity at handshake, as the vendor does — a panel
|
|
@@ -433,7 +434,7 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
|
|
|
433
434
|
|
|
434
435
|
def _build_frame_type3(self, image_data: bytes) -> bytes:
|
|
435
436
|
"""Type 3 frame: 16-byte prefix + exactly this panel's payload size."""
|
|
436
|
-
log.debug("_build_frame_type3: image_data=%s", image_data)
|
|
437
|
+
log.debug("_build_frame_type3: image_data=%s", Blob(image_data))
|
|
437
438
|
size = getattr(self, "_f5_payload", _f5.DATA_SIZE)
|
|
438
439
|
prefix = _f5.frame_header(size)
|
|
439
440
|
if len(image_data) < size:
|
|
@@ -457,13 +458,13 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
|
|
|
457
458
|
else _f5.RESPONSE_SIZE)
|
|
458
459
|
|
|
459
460
|
def _validate_response(self, resp: bytes) -> bool:
|
|
460
|
-
log.debug("_validate_response: resp=%s", resp)
|
|
461
|
+
log.debug("_validate_response: resp=%s", Blob(resp))
|
|
461
462
|
return (self._validate_response_type2(resp)
|
|
462
463
|
if self.info.device_type == 2
|
|
463
464
|
else self._validate_response_type3(resp))
|
|
464
465
|
|
|
465
466
|
def _parse_response(self, resp: bytes) -> HandshakeResult:
|
|
466
|
-
log.debug("_parse_response: resp=%s", resp)
|
|
467
|
+
log.debug("_parse_response: resp=%s", Blob(resp))
|
|
467
468
|
return (self._parse_response_type2(resp)
|
|
468
469
|
if self.info.device_type == 2
|
|
469
470
|
else self._parse_response_type3(resp))
|
|
@@ -31,6 +31,7 @@ from ...core.led_protocol import (
|
|
|
31
31
|
resolve_model_name,
|
|
32
32
|
resolve_pm,
|
|
33
33
|
)
|
|
34
|
+
from ...core.logs import Blob
|
|
34
35
|
from ...core.models import HandshakeResult, LedHandshakeResult, ProductInfo, Wire
|
|
35
36
|
from ...core.ports import BulkTransport
|
|
36
37
|
from ._base import BaseBulkDevice
|
|
@@ -211,7 +212,8 @@ class Led(BaseBulkDevice, wire=Wire.LED):
|
|
|
211
212
|
|
|
212
213
|
def _handshake_detail(self, result: HandshakeResult) -> str:
|
|
213
214
|
"""The resolved style + model — an LED's whole identity."""
|
|
214
|
-
log.debug("_handshake_detail: result=%s",
|
|
215
|
+
log.debug("_handshake_detail: result=%s raw=%s",
|
|
216
|
+
result, Blob(result.raw_response))
|
|
215
217
|
if self._led_handshake is None:
|
|
216
218
|
return ""
|
|
217
219
|
style = self._led_handshake.style
|
|
@@ -405,7 +407,7 @@ class Led(BaseBulkDevice, wire=Wire.LED):
|
|
|
405
407
|
|
|
406
408
|
def _write_frame(self, frame: bytes) -> bool:
|
|
407
409
|
"""Stream the packet as 64-byte HID reports, zero-padding the last."""
|
|
408
|
-
log.debug("_write_frame: frame=%s", frame)
|
|
410
|
+
log.debug("_write_frame: frame=%s", Blob(frame))
|
|
409
411
|
remaining = len(frame)
|
|
410
412
|
offset = 0
|
|
411
413
|
while remaining > 0:
|
|
@@ -25,7 +25,7 @@ import struct
|
|
|
25
25
|
from ...core.errors import (
|
|
26
26
|
HandshakeError,
|
|
27
27
|
)
|
|
28
|
-
from ...core.logs import per_frame
|
|
28
|
+
from ...core.logs import Blob, per_frame
|
|
29
29
|
from ...core.models import HandshakeResult, ProductInfo, Wire
|
|
30
30
|
from ...core.ports import BulkTransport
|
|
31
31
|
from ...core.protocol import (
|
|
@@ -204,7 +204,8 @@ class LyLcd(BaseBulkDevice, wire=Wire.LY):
|
|
|
204
204
|
|
|
205
205
|
def _handshake_detail(self, result: HandshakeResult) -> str:
|
|
206
206
|
"""The PID picks the variant (LY vs LY1) — worth having on the record."""
|
|
207
|
-
log.debug("_handshake_detail: result=%s",
|
|
207
|
+
log.debug("_handshake_detail: result=%s raw=%s",
|
|
208
|
+
result, Blob(result.raw_response))
|
|
208
209
|
return f" (pid=0x{self.info.pid:04x})"
|
|
209
210
|
|
|
210
211
|
def _prepare_frame(self, payload: bytes) -> bytes:
|
|
@@ -249,7 +250,7 @@ class LyLcd(BaseBulkDevice, wire=Wire.LY):
|
|
|
249
250
|
|
|
250
251
|
def _write_frame(self, frame: bytes) -> bool:
|
|
251
252
|
"""4096-byte USB writes over the chunk buffer, then the 512-byte ACK."""
|
|
252
|
-
log.debug("_write_frame: frame=%s", frame)
|
|
253
|
+
log.debug("_write_frame: frame=%s", Blob(frame))
|
|
253
254
|
total_bytes = len(frame)
|
|
254
255
|
pos = 0
|
|
255
256
|
while pos < total_bytes:
|
|
@@ -13,7 +13,7 @@ import time
|
|
|
13
13
|
import zlib
|
|
14
14
|
|
|
15
15
|
from ...core.errors import TransportError
|
|
16
|
-
from ...core.logs import per_frame
|
|
16
|
+
from ...core.logs import Blob, per_frame
|
|
17
17
|
from ...core.models import HandshakeResult, Wire
|
|
18
18
|
from ...core.ports import ScsiTransport
|
|
19
19
|
from ...core.protocol import get_profile
|
|
@@ -132,7 +132,8 @@ class ScsiLcd(BaseDevice[ScsiTransport], wire=Wire.SCSI):
|
|
|
132
132
|
|
|
133
133
|
def _handshake_detail(self, result: HandshakeResult) -> str:
|
|
134
134
|
"""SCSI reports one byte — call it FBL, since PM *is* FBL here."""
|
|
135
|
-
log.debug("_handshake_detail: result=%s",
|
|
135
|
+
log.debug("_handshake_detail: result=%s raw=%s",
|
|
136
|
+
result, Blob(result.raw_response))
|
|
136
137
|
return f" (FBL {result.fbl})"
|
|
137
138
|
|
|
138
139
|
def _frame_size(self) -> tuple[int, int]:
|
|
@@ -19,9 +19,10 @@ import usb.core
|
|
|
19
19
|
import usb.util
|
|
20
20
|
|
|
21
21
|
from ...core.errors import PermissionError_, TransportError
|
|
22
|
-
from ...core.logs import per_frame
|
|
22
|
+
from ...core.logs import Blob, per_frame
|
|
23
23
|
from ...core.ports import BulkTransport, WriteBuffer
|
|
24
24
|
from ._pyusb_find import find as usb_find
|
|
25
|
+
from ._pyusb_find import find_unit
|
|
25
26
|
|
|
26
27
|
# Optional hidapi backend (the [hid] extra)
|
|
27
28
|
try:
|
|
@@ -103,26 +104,40 @@ class PyUsbBulkTransport(BulkTransport):
|
|
|
103
104
|
"""
|
|
104
105
|
|
|
105
106
|
def __init__(self, vid: int, pid: int,
|
|
106
|
-
serial: str | None = None) -> None:
|
|
107
|
+
serial: str | None = None, unit: str = "") -> None:
|
|
107
108
|
self._vid = vid
|
|
108
109
|
self._pid = pid
|
|
109
110
|
self._serial = serial
|
|
111
|
+
#: Which physical unit, when several of the model are plugged in
|
|
112
|
+
#: (#287). Empty means "the only one", which is every normal user.
|
|
113
|
+
self._unit = unit
|
|
110
114
|
self._device: Any = None
|
|
111
115
|
self._is_open = False
|
|
112
116
|
self._ep_out: int | None = None
|
|
113
117
|
self._ep_in: int | None = None
|
|
114
|
-
log.debug("PyUsbBulkTransport.__init__: %04x:%04x serial=%s",
|
|
115
|
-
vid, pid, serial or "(any)")
|
|
118
|
+
log.debug("PyUsbBulkTransport.__init__: %04x:%04x serial=%s unit=%s",
|
|
119
|
+
vid, pid, serial or "(any)", unit or "(only)")
|
|
116
120
|
|
|
117
121
|
def open(self) -> bool:
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
122
|
+
if self._unit:
|
|
123
|
+
# A named unit is never satisfied by "whichever one libusb lists
|
|
124
|
+
# first" — that is the bug (#287). Missing means unplugged or
|
|
125
|
+
# moved, and opening the sibling would drive the wrong panel.
|
|
126
|
+
self._device = find_unit(self._vid, self._pid, self._unit)
|
|
127
|
+
if self._device is None:
|
|
128
|
+
log.error("USB device %04X:%04X not present at unit %s",
|
|
129
|
+
self._vid, self._pid, self._unit)
|
|
130
|
+
return False
|
|
131
|
+
else:
|
|
132
|
+
kwargs: dict[str, Any] = {'idVendor': self._vid,
|
|
133
|
+
'idProduct': self._pid}
|
|
134
|
+
if self._serial:
|
|
135
|
+
kwargs['serial_number'] = self._serial
|
|
136
|
+
self._device = usb_find(**kwargs)
|
|
137
|
+
if self._device is None:
|
|
138
|
+
log.error("USB device %04X:%04X not found",
|
|
139
|
+
self._vid, self._pid)
|
|
140
|
+
return False
|
|
126
141
|
|
|
127
142
|
# 1. Detach kernel drivers from interfaces 0..3. USB cooler
|
|
128
143
|
# firmware presents multiple interfaces (vendor + HID + mass-
|
|
@@ -457,12 +472,65 @@ class _HidBinding(ABC):
|
|
|
457
472
|
Raises one of :meth:`open_errors` when the device is absent or
|
|
458
473
|
inaccessible."""
|
|
459
474
|
|
|
475
|
+
@classmethod
|
|
476
|
+
@abstractmethod
|
|
477
|
+
def open_path(cls, path: bytes) -> Any:
|
|
478
|
+
"""Open the ONE handle at *path*, hidapi's own device identifier.
|
|
479
|
+
|
|
480
|
+
``open(vid, pid, serial)`` takes whichever unit hidapi lists first,
|
|
481
|
+
which is why two identical panels both opened the same one (#287).
|
|
482
|
+
Both supported bindings can do this — MEASURED: cython-hidapi exposes
|
|
483
|
+
``device().open_path``, apmorton's constructor takes ``path=`` — so
|
|
484
|
+
this is a real abstraction over two real APIs, not a hook for one.
|
|
485
|
+
"""
|
|
486
|
+
|
|
487
|
+
@classmethod
|
|
488
|
+
def path_for_unit(cls, vid: int, pid: int, unit: str) -> bytes | None:
|
|
489
|
+
"""hidapi's path for the *unit* USB port, or ``None``.
|
|
490
|
+
|
|
491
|
+
Shared: ``hid.enumerate`` is identical in both bindings, and the
|
|
492
|
+
entry it returns carries ``bus_type``/``path`` but NOT the USB
|
|
493
|
+
topology — so the two are matched through PyUSB, which does know the
|
|
494
|
+
port. One interface's path is enough, since every interface of one
|
|
495
|
+
physical device hangs off the same port.
|
|
496
|
+
"""
|
|
497
|
+
from ._pyusb_find import find_unit
|
|
498
|
+
if not unit or not HIDAPI_AVAILABLE:
|
|
499
|
+
return None
|
|
500
|
+
if find_unit(vid, pid, unit) is None:
|
|
501
|
+
log.warning("path_for_unit: %04x:%04x is not at unit %s",
|
|
502
|
+
vid, pid, unit)
|
|
503
|
+
return None
|
|
504
|
+
entries = [e for e in hidapi.enumerate(vid, pid) if e.get("path")]
|
|
505
|
+
log.info("path_for_unit: %04x:%04x unit=%s -> %d hid interface(s)",
|
|
506
|
+
vid, pid, unit, len(entries))
|
|
507
|
+
if len(entries) <= 1:
|
|
508
|
+
return entries[0]["path"] if entries else None
|
|
509
|
+
# More than one unit of this model is present, so the first entry is
|
|
510
|
+
# exactly the coin-flip this exists to avoid. Ordering hid's
|
|
511
|
+
# enumeration against PyUSB's is not a mapping either library
|
|
512
|
+
# promises, so refuse rather than guess wrong half the time.
|
|
513
|
+
log.warning(
|
|
514
|
+
"path_for_unit: %d hid entries for %04x:%04x — cannot say which "
|
|
515
|
+
"is the unit at %s, so it is not used (#287)",
|
|
516
|
+
len(entries), vid, pid, unit,
|
|
517
|
+
)
|
|
518
|
+
return None
|
|
519
|
+
|
|
460
520
|
|
|
461
521
|
class _CythonHidBinding(_HidBinding):
|
|
462
522
|
"""PyPI ``hidapi`` (cython-hidapi) — ``hid.device``."""
|
|
463
523
|
|
|
464
524
|
CLASS_ATTR: ClassVar[str] = "device"
|
|
465
525
|
|
|
526
|
+
@classmethod
|
|
527
|
+
def open_path(cls, path: bytes) -> Any:
|
|
528
|
+
log.info("_CythonHidBinding.open_path: %s", Blob(path))
|
|
529
|
+
handle = cls._require_class()() # ctor takes no useful args
|
|
530
|
+
handle.open_path(path)
|
|
531
|
+
handle.set_nonblocking(0)
|
|
532
|
+
return handle
|
|
533
|
+
|
|
466
534
|
@classmethod
|
|
467
535
|
def open(cls, vid: int, pid: int, serial: str | None) -> Any:
|
|
468
536
|
log.info("_CythonHidBinding.open: %04x:%04x serial=%s",
|
|
@@ -478,6 +546,13 @@ class _ApmortonHidBinding(_HidBinding):
|
|
|
478
546
|
|
|
479
547
|
CLASS_ATTR: ClassVar[str] = "Device"
|
|
480
548
|
|
|
549
|
+
@classmethod
|
|
550
|
+
def open_path(cls, path: bytes) -> Any:
|
|
551
|
+
log.info("_ApmortonHidBinding.open_path: %s", Blob(path))
|
|
552
|
+
handle = cls._require_class()(path=path)
|
|
553
|
+
handle.nonblocking = 0
|
|
554
|
+
return handle
|
|
555
|
+
|
|
481
556
|
@classmethod
|
|
482
557
|
def open(cls, vid: int, pid: int, serial: str | None) -> Any:
|
|
483
558
|
log.info("_ApmortonHidBinding.open: %04x:%04x serial=%s",
|
|
@@ -495,7 +570,7 @@ class HidApiTransport(BulkTransport):
|
|
|
495
570
|
"""
|
|
496
571
|
|
|
497
572
|
def __init__(self, vid: int, pid: int,
|
|
498
|
-
serial: str | None = None) -> None:
|
|
573
|
+
serial: str | None = None, unit: str = "") -> None:
|
|
499
574
|
if not HIDAPI_AVAILABLE:
|
|
500
575
|
raise ImportError(
|
|
501
576
|
"no hid binding installed — install EITHER python-hidapi or "
|
|
@@ -507,10 +582,12 @@ class HidApiTransport(BulkTransport):
|
|
|
507
582
|
self._vid = vid
|
|
508
583
|
self._pid = pid
|
|
509
584
|
self._serial = serial
|
|
585
|
+
#: Which physical unit (#287); empty means "the only one".
|
|
586
|
+
self._unit = unit
|
|
510
587
|
self._device: Any = None
|
|
511
588
|
self._is_open = False
|
|
512
|
-
log.debug("HidApiTransport.__init__: %04x:%04x serial=%s",
|
|
513
|
-
vid, pid, serial or "(any)")
|
|
589
|
+
log.debug("HidApiTransport.__init__: %04x:%04x serial=%s unit=%s",
|
|
590
|
+
vid, pid, serial or "(any)", unit or "(only)")
|
|
514
591
|
|
|
515
592
|
def open(self) -> bool:
|
|
516
593
|
binding = _HidBinding.detect()
|
|
@@ -533,7 +610,11 @@ class HidApiTransport(BulkTransport):
|
|
|
533
610
|
last: BaseException | None = None
|
|
534
611
|
for attempt in range(1, _HID_OPEN_ATTEMPTS + 1):
|
|
535
612
|
try:
|
|
536
|
-
|
|
613
|
+
path = binding.path_for_unit(self._vid, self._pid, self._unit)
|
|
614
|
+
self._device = (
|
|
615
|
+
binding.open_path(path) if path is not None
|
|
616
|
+
else binding.open(self._vid, self._pid, self._serial)
|
|
617
|
+
)
|
|
537
618
|
if attempt > 1:
|
|
538
619
|
log.info("HidApiTransport.open: %04x:%04x opened on "
|
|
539
620
|
"attempt %d — the panel was re-enumerating",
|
|
@@ -37,7 +37,7 @@ from abc import ABC, abstractmethod
|
|
|
37
37
|
from collections.abc import Callable
|
|
38
38
|
from typing import Any, NamedTuple
|
|
39
39
|
|
|
40
|
-
from ...core.logs import per_frame
|
|
40
|
+
from ...core.logs import Blob, per_frame
|
|
41
41
|
from ...core.ports import CpuSource, GpuSource
|
|
42
42
|
|
|
43
43
|
log = logging.getLogger(__name__)
|
|
@@ -80,7 +80,7 @@ _SNAPSHOT_TTL_S = 0.1
|
|
|
80
80
|
|
|
81
81
|
def _decode_cstr(blob: bytes) -> str:
|
|
82
82
|
"""Decode a fixed-length NUL-terminated C string (latin-1, lossless)."""
|
|
83
|
-
log.debug("_decode_cstr: blob=%s", blob)
|
|
83
|
+
log.debug("_decode_cstr: blob=%s", Blob(blob))
|
|
84
84
|
return blob.split(b"\x00", 1)[0].decode("latin-1", errors="replace").strip()
|
|
85
85
|
|
|
86
86
|
|
|
@@ -100,7 +100,7 @@ class _Header(NamedTuple):
|
|
|
100
100
|
|
|
101
101
|
def _parse_header(buf: bytes) -> _Header:
|
|
102
102
|
"""Decode the 44-byte header. Raises ValueError on bad magic / short buffer."""
|
|
103
|
-
log.debug("_parse_header: buf=%s", buf)
|
|
103
|
+
log.debug("_parse_header: buf=%s", Blob(buf))
|
|
104
104
|
if len(buf) < _HEADER_SIZE:
|
|
105
105
|
raise ValueError(
|
|
106
106
|
f"HWiNFO header too short: {len(buf)} < {_HEADER_SIZE}",
|
|
@@ -134,7 +134,7 @@ class _BytesMapping(_MappingPort):
|
|
|
134
134
|
"""Test seam — wraps a ``bytes`` buffer captured from a real MMF dump."""
|
|
135
135
|
|
|
136
136
|
def __init__(self, data: bytes) -> None:
|
|
137
|
-
log.debug("__init__: data=%s", data)
|
|
137
|
+
log.debug("__init__: data=%s", Blob(data))
|
|
138
138
|
self._data = data
|
|
139
139
|
|
|
140
140
|
def read(self, offset: int, length: int) -> bytes:
|
|
@@ -554,7 +554,7 @@ def discover_hwinfo_gpus(
|
|
|
554
554
|
|
|
555
555
|
def _snapshot_from_bytes(data: bytes) -> _Snapshot:
|
|
556
556
|
"""Build a snapshot from a raw MMF byte buffer — used by tests."""
|
|
557
|
-
log.debug("_snapshot_from_bytes: data=%s", data)
|
|
557
|
+
log.debug("_snapshot_from_bytes: data=%s", Blob(data))
|
|
558
558
|
return _Snapshot(_BytesMapping(data))
|
|
559
559
|
|
|
560
560
|
|
|
@@ -33,7 +33,7 @@ import logging
|
|
|
33
33
|
import struct
|
|
34
34
|
from typing import Protocol
|
|
35
35
|
|
|
36
|
-
from ...core.logs import per_frame
|
|
36
|
+
from ...core.logs import Blob, per_frame
|
|
37
37
|
|
|
38
38
|
log = logging.getLogger(__name__)
|
|
39
39
|
#: Per-tick readers — their records must never be CONSTRUCTED at
|
|
@@ -146,7 +146,7 @@ def _parse_smc_bytes(data_type: int, raw: bytes, size: int) -> float:
|
|
|
146
146
|
Pure function — no ctypes I/O, no platform check. ``raw`` is the
|
|
147
147
|
leading ``size`` bytes from ``SMCKeyData_t.bytes``.
|
|
148
148
|
"""
|
|
149
|
-
log.debug("_parse_smc_bytes: data_type=%s raw=%s", data_type, raw)
|
|
149
|
+
log.debug("_parse_smc_bytes: data_type=%s raw=%s", data_type, Blob(raw))
|
|
150
150
|
dt = _datatype_to_str(data_type).rstrip()
|
|
151
151
|
body = bytes(raw[:size])
|
|
152
152
|
if len(body) < 1:
|