trcc-linux 9.6.0__tar.gz → 9.6.2__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.6.0 → trcc_linux-9.6.2}/.gitignore +5 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/PKG-INFO +2 -3
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/pyproject.toml +9 -3
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/__init__.py +2 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/__main__.py +36 -1
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/__version__.py +1 -1
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/_boot.py +3 -3
- trcc_linux-9.6.2/src/trcc/adapters/device/_pyusb_find.py +46 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/_usb_bot_scsi.py +8 -7
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/_usb_helpers.py +16 -14
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/bsd/detector.py +1 -1
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/bulk_protocol.py +7 -7
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/detector.py +2 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/factory.py +106 -17
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/hid.py +14 -13
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/hid_protocol.py +2 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/led.py +1 -1
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/led_protocol.py +2 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/ly.py +2 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/ly_protocol.py +2 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/macos/detector.py +2 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/scsi_protocol.py +17 -5
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/data_repository.py +2 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/diagnostics.py +36 -14
- trcc_linux-9.6.2/src/trcc/adapters/system/__init__.py +148 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/bsd_platform.py +13 -7
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/linux_platform.py +9 -4
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos_platform.py +14 -7
- trcc_linux-9.6.2/src/trcc/adapters/system/windows/__init__.py +20 -0
- trcc_linux-9.6.2/src/trcc/adapters/system/windows/enumerator.py +308 -0
- trcc_linux-9.6.2/src/trcc/adapters/system/windows/sources/__init__.py +33 -0
- trcc_linux-9.6.2/src/trcc/adapters/system/windows/sources/_base.py +141 -0
- trcc_linux-9.6.2/src/trcc/adapters/system/windows/sources/hwinfo.py +434 -0
- trcc_linux-9.6.2/src/trcc/adapters/system/windows/sources/lhm.py +350 -0
- trcc_linux-9.6.2/src/trcc/adapters/system/windows/sources/msacpi.py +123 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/windows_platform.py +24 -257
- trcc_linux-9.6.2/src/trcc/assets/LibreHardwareMonitor.config +15 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/builder.py +29 -61
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/device/__init__.py +4 -5
- trcc_linux-9.6.2/src/trcc/core/device/base.py +77 -0
- trcc_linux-9.6.2/src/trcc/core/device/factory.py +150 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/device/lcd.py +14 -7
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/device/led.py +19 -13
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/device.py +90 -65
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/ports.py +79 -9
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/trcc.py +45 -100
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/daemon.py +2 -1
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/install/gui.py +2 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/led.py +7 -9
- trcc_linux-9.6.2/src/trcc/services/metrics_loop.py +181 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/__init__.py +0 -16
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/led.py +5 -8
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/__init__.py +4 -3
- trcc_linux-9.6.2/src/trcc/ui/gui/base_handler.py +63 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_factory.py +2 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/bsd/test_platform.py +2 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/linux/test_platform.py +3 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/macos/test_platform.py +2 -2
- trcc_linux-9.6.2/tests/adapters/system/windows/test_hwinfo_source.py +281 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/windows/test_platform.py +2 -2
- trcc_linux-9.6.2/tests/adapters/system/windows/test_sensors.py +542 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/conftest.py +2 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_builder.py +3 -3
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_builder_routing.py +2 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_descriptors_ipc.py +8 -8
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_led_device.py +8 -8
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_models.py +20 -19
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/mock_platform.py +5 -4
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/noop_transports.py +2 -2
- trcc_linux-9.6.2/tests/services/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_led.py +10 -11
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/test_all_devices.py +2 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/test_architecture.py +4 -2
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/test_wiring.py +3 -4
- trcc_linux-9.6.0/src/trcc/adapters/system/__init__.py +0 -88
- trcc_linux-9.6.0/src/trcc/ui/gui/base_handler.py +0 -49
- trcc_linux-9.6.0/tests/adapters/system/windows/test_sensors.py +0 -446
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/LICENSE +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/README.md +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/_entry.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/bsd/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/bsd/scsi.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/bulk.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/frame.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/led_kvm.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/linux/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/linux/detector.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/linux/scsi.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/macos/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/macos/scsi.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/scsi.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/windows/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/windows/detector.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/windows/scsi.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/binary_reader.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/dc_config.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/dc_parser.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/dc_writer.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/debug_report.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/doctor.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/logging_setup.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/media_player.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/network.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/theme_cloud.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/theme_downloader.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/render/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/render/factory_render.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/render/qt.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/_base.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/_shared.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/_windows_wmi.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/config.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/linux_sensors.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/hardware.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/hid_sensors.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/powermetrics_extra.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/powermetrics_ipc.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/powermetrics_plist.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/sensors.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/smc_client.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/smc_ismc_tables.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/com.github.lexonight1.trcc.policy +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/fonts/MSYH.TTC +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/fonts/MSYHBD.TTC +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/fonts/README.md +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/app.ico +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc_128x128.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc_16x16.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc_24x24.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc_256x256.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc_32x32.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc_48x48.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc_64x64.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/trcc-linux.desktop +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/trcc-quirk-fix.service +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/conf.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/_command.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/_device_commands.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/_logging.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/color.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/control_center_commands.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/device/lcd_persistence.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/device/lcd_theme_workflow.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/device/registry.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/encoding.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/events.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/i18n.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/io.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/lcd_commands.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/led_commands.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/led_segment.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/macos_app_bundle_launch.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/api.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/constants.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/led.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/os.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/overlay.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/protocol.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/sensor.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/theme.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/paths.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/perf.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/platform.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/results.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/trcc_proxy.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/wire.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/data/trcc_usb.te +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/install/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ipc.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/__main__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/bulk_lcd.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/hid_lcd.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/led.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/ly_lcd.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/scsi_lcd.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/transport.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/usb_bot_scsi.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/render/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/render/qt.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/sensors/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/sensors/aggregator.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/sensors/gpu_detect.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/sensors/hwmon.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/sensors/nvml.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/sensors/psutil_sources.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/_devd.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/_macos_setup.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/_udev.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/_winusb.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/bsd.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/linux.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/macos.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/windows.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/app.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/commands.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/errors.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/events.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/models.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/ports.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/registry.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/results.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/_dc_reader.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/display.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/led_segment.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/media.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/overlay.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/settings.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/theme.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/_shared.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/devices.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/display.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/led.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/main.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/schemas.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/system.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/cli/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/cli/_ctx.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/cli/device.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/cli/display.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/cli/led.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/cli/main.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/cli/system.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/gui/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/gui/app.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/gui/bus_bridge.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/gui/panels/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/gui/panels/device_panel.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/gui/panels/display_panel.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/gui/panels/led_panel.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/audio.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/device.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/display.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/display_loops.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/display_pipeline.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/image.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/lcd_config.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/led_config.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/led_effects.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/media.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/overlay.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/perf.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/system.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/theme.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/theme_loader.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/theme_persistence.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/video_cache.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/control_center.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/devices.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/display.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/i18n.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/models.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/system.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/themes.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/trcc.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/__main__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_connect.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_control_center.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_device.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_diag.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_display.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_i18n.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_led.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_status.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_system.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_theme.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/240240.gif +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/240320.gif +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/320240.gif +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/320320.gif +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AK120 Digital.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AK120 Digitala.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AK120_Digital.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AK120_Digitala.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AS120 VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AS120 VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AS120_VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AS120_VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AX120 DIGITAL.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AX120 DIGITALa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AX120_DIGITAL.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AX120_DIGITALa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1BA120 VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1BA120 VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1BA120_VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1BA120_VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CORE VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CORE VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CORE_VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CORE_VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CZ1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CZ1a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CZ2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CZ2a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CZTV.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CZTVa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1ELITE VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1ELITE VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1ELITE_VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1ELITE_VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PRO.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PROa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PRO.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PROa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN VISION V2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN VISION V2a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PRO.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PROa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SE.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SEa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAMEa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PRO.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PROa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PRO.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PROa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PRO.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PROa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SE.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SEa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAMEa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1GRAND VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1GRAND VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1GRAND_VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1GRAND_VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITAL.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITALa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1HYPER VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1HYPER VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1HYPER_VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1HYPER_VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1KVMALEDC6.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1KVMALEDC6a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC1a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC2JD.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC2JDa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC2a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC3.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC3a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC5.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC5a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC7.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC7a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC8.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC8a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC9.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC9a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD10.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD10a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD6.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD6a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD7.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD7a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD8.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD8a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD9.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD9a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF10.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF10V.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF10Va.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF10a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF11.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF11a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF12.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF12a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF13.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF13a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF14.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF14a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF15.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF15a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF16.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF167.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF16a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF17a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF18.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF18a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF19.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF19a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF20.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF20a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF21.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF21a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF22.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF22a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF25.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF25a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF8.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF8a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM16SE.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM16SEa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM19SE.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM19SEa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM22.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM22a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM24.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM24a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM26.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM26a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM27.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM27a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM30.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM30a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir VISION PRO.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir VISION PROa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir_VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PRO.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PROa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir_VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1PA120 DIGITAL.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1PA120 DIGITALa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1PA120_DIGITAL.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1PA120_DIGITALa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1PC1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1PC1a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RK120 DIGITAL.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RK120 DIGITALa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RK120_DIGITAL.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RK120_DIGITALa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RP130 VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RP130 VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RP130_VISION.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RP130_VISIONa.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Stream Vision.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Stream Visiona.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Stream_Vision.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Stream_Visiona.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/about_dropdown.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/about_dropdown_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/about_dropdown_select.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/about_update.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/about_update_overlay.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_about_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_brightness_0.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_brightness_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_brightness_2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_brightness_3.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_export.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_form_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_help.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_import.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_main_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_power.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_power_hover.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_save.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_sysinfo_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_cloud.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_cloud_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_local.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_local_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_mask.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_mask_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_mask_lower.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_settings.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_settings_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_theme_base_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_theme_gallery_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_theme_settings_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_3.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_4.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_5.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_6.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_btn.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_btn_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_select_frame.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_panel_eyedropper.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_panel_picker.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_panel_selector_ring.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_panel_slider_thumb.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_wheel_knob.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_wheel_knob_0.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_wheel_toggle_hover.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_wheel_toggle_off.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_wheel_toggle_on.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_12h.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_24h.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_border.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_border_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_crop.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_date_dm.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_date_dmy.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_date_md.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_date_ymd.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_digit_font.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_fit_height.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_fit_width.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_function.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_function_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_icon.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_icon_gif.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_icon_image.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_icon_livestream.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_icon_mask.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_icon_network.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_icon_video.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m1_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m2_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m3.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m3_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m4.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m4_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m5.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m5_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m6.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m6_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_minus.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_network_btn.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_plus.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_rotate.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_slider_thumb.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_text_font.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_unit_c.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_unit_f.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/frozen_warframe_ultra.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/frozen_warframe_ultra_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_110x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_116x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_1280x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_160x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_180x400.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_180x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_240x240.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_240x320.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_240x400.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_240x427.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_270x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_320x240.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_320x320.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_320x86.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_360x360.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_400x180.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_400x240.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_427x240.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_480x110.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_480x116.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_480x160.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_480x180.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_480x270.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_480x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_86x320.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_aggregate.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_aggregate_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_cz1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_kvma.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lc1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lc2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lf10.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lf11.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lf12.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lf13.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lf15.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lf8.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_rgb_lf13.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_segment.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_segment_4zone.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_dropdown.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_dropdown_2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_dropdown_highlight.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_dropdown_highlight_2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_dropdown_menu.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_dropdown_menu_2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_external.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_external_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_helmet_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_helmet_2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_helmet_3.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_helmet_4.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_helmet_5.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bar_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bar_2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bar_3.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bar_4.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bar_5.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bar_6.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bg_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bg_2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bg_3.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bg_4.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bg_5.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bg_5_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bg_6.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_10.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_10_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_11.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_11_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_12.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_12_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_1_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_2_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_3.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_3_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_4.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_4_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_5.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_5_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_6.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_6_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_7.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_7_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_8.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_8_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_9.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_9_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_power.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_power_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_blue.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_cyan.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_green.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_orange.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_purple.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_red.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_white.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_yellow.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_ak120.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_ax120.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_cz1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_frozen_horizon_pro.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_frozen_magic_pro.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lc1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lc2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lf10.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lf11.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lf12.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lf13.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lf15.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lf8.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_pa120.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_pa120_space.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_show_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_show_1_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_show_2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_show_2_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_show_3.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_show_3_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_slider_thumb.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_1_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_2_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_3.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_3_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_4.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_4_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_1_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_2_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_3.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_3_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_4.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_4_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_5.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_5_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_6.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_6_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_sysinfo.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_en.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_tc.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_sysinfo_en.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_sysinfo_tc.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_text.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_text_en.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_text_tc.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_time.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_time_en.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_time_tc.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_mode_date.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_mode_hardware.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_mode_text.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_mode_time.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_mode_weekday.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_select.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_110x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_116x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_160x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_180x400.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_180x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_240x240.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_240x320.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_240x400.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_240x427.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_270x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_320x240.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_320x320.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_320x320_round.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_320x86.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_360x360_round.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_400x180.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_400x240.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_427x240.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_480x110.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_480x116.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_480x160.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_480x180.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_480x270.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_480x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_480x480_round.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_86x320.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_animation.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_btn.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_btn_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_pause.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_play.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_player_control_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_1280x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_1920x440.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_1920x462.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_320x960.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_360x800.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_440x1920.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_462x1920.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_480x1280.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_480x800.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_480x854.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_540x960.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_800x360.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_800x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_854x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_960x320.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_960x540.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_res_240x240.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_res_240x320.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_res_320x240.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_res_320x320.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_round_mask_320x320.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_round_mask_360x360.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_round_mask_480x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_video_controls_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_video_controls_bg_alt.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/screen_led_deco_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/screen_led_deco_2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/screen_led_deco_3.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/screen_led_deco_4.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/screen_led_deco_cz1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_d.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_e.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_en.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_f.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_h.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_p.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_r.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_tc.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_x.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_content.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_content_btn.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_content_mask.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_date.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_date_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_icon.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_link_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_text.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_text_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_time.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_time_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_weekday.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_weekday_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_anim_sync.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_background.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_brightness.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_keyboard_sync_1.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_keyboard_sync_2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_keyboard_sync_3.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_module.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_overlay.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_overlay_add_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_overlay_color_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_overlay_grid_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_overlay_table_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_params.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_brightness_bar.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_checkbox_off.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_checkbox_on.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_clip_a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_clip_b.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_close.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_close_2.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_dropdown.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_dropdown_bg_2x.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_dropdown_bg_4x.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_dropdown_highlight.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_loading_animation.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_progress_bar.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_round_close.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_round_confirm.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_scrollbar_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_scrollbar_thumb.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_shortcut_size_slider.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_thread_multi.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_thread_single.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_toggle_off.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_toggle_on.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_d.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_e.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_en.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_f.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_p.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_r.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_tc.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_x.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_about.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_about_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_about_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_no_device.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_sensor.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_sensor_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_splash.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_sysinfo_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_a.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_a_180.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_a_270.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_a_90.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_b.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_b_180.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_b_270.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_b_90.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_c.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_c_180.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_c_270.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_c_90.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_add_group.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_cpu.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_custom.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_dram.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_fan.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_gpu.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_hdd.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_net.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_next_page.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_prev_page.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_scrollbar.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_select.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_browser_filter.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_browser_filter_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_d.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_e.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_en.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_f.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_h.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_p.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_r.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_tc.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_x.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_local_carousel.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_local_carousel_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_local_export_all.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_local_multi_select.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_local_multi_select_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_local_select_frame.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_local_select_frame_active.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_mask_label.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_110x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_116x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_1280x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_160x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_180x400.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_180x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_240x240.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_240x320.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_240x400.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_240x427.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_270x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_320x240.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_320x320.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_320x86.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_360x360.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_400x180.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_400x240.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_427x240.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_480x110.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_480x116.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_480x160.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_480x180.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_480x270.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_480x480.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_86x320.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_bg.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_bg_alt.png +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/base.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/color_and_add_panels.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/constants.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/display_mode_panels.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/eyedropper.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/lcd_handler.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/led_handler.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/metrics_mediator.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/overlay_element.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/overlay_grid.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/pipewire_capture.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/screen_capture.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/splash.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/trcc_app.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_about.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_activity_sidebar.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_color_wheel.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_device.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_image_cut.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_info_module.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_led_control.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_preview.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_screen_led.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_sensor_picker.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_system_info.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_theme_local.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_theme_mask.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_theme_setting.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_theme_web.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_video_cut.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/README.md +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/bsd/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/bsd/test_detector.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/bsd/test_scsi.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/bsd/test_scsi_protocol.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/conftest.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/linux/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/linux/test_scsi.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/macos/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/macos/test_detector.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/macos/test_scsi.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_bulk.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_detector.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_frame.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_implementations.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_led.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_led_kvm.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_ly.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_scsi.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/windows/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/windows/test_detector.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/windows/test_scsi.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_data_repository.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_dc_config.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_dc_parser.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_dc_writer.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_debug_report.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_media_player.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_theme_cloud.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_theme_downloader.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/bsd/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/bsd/test_hardware.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/bsd/test_sensors.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/conftest.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/linux/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/linux/test_hardware.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/linux/test_sensors.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/macos/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/macos/test_hardware.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/macos/test_powermetrics_extra.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/macos/test_powermetrics_ipc.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/macos/test_powermetrics_plist.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/macos/test_sensors.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/test_config.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/windows/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/windows/test_hardware.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/api/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/api/conftest.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/api/test_api.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/api/test_api_security.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/conftest.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/test_cli.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/test_device.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/test_display.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/test_led.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/test_serve.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/test_system.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/test_theme.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_color.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_device_isolation.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_encoding.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_geometry.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_i18n.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_io.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_lcd_device.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_led_segment.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_led_segment_ax120.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_paths.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_perf.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_wire.py +0 -0
- /trcc_linux-9.6.0/tests/gui/__init__.py → /trcc_linux-9.6.2/tests/fixtures/hwinfo/.gitkeep +0 -0
- {trcc_linux-9.6.0/tests/services → trcc_linux-9.6.2/tests/gui}/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/conftest.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_base.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_base_panel.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_constants.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_lcd_handler.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_led_control.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_misc.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_preview.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_screen_capture.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_theme_mask.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_theme_setting.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_trcc_app.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_widgets.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/__init__.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/conftest.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/test_autostart.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/test_commands.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/test_dc_reader.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/test_sensors.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/test_theme_service.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/test_transports.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/test_udev.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/conftest.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_device.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_display_integration.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_image_ansi.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_led_config.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_led_effects.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_media.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_overlay.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_perf.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_services.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_system.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_theme.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_theme_loader.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_theme_persistence.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_video_cache.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/test_conf.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/test_cpu.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/test_integration.py +0 -0
- {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/test_memory.py +0 -0
|
@@ -94,6 +94,11 @@ src/trcc/data/ui_*.json
|
|
|
94
94
|
!/dev/smoke_rotation_mask.py
|
|
95
95
|
!/dev/smoke_daemon_gui.py
|
|
96
96
|
!/dev/smoke_sleep_cycle.py
|
|
97
|
+
!/dev/smoke_linux.py
|
|
98
|
+
!/dev/smoke_windows.py
|
|
99
|
+
!/dev/smoke_macos.py
|
|
100
|
+
!/dev/smoke_bsd.py
|
|
101
|
+
!/dev/_smoke_runtime.py
|
|
97
102
|
/dev_*
|
|
98
103
|
# Dev scripts at root
|
|
99
104
|
/test_*.py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: trcc-linux
|
|
3
|
-
Version: 9.6.
|
|
3
|
+
Version: 9.6.2
|
|
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
|
|
@@ -26,6 +26,7 @@ Requires-Python: >=3.10
|
|
|
26
26
|
Requires-Dist: certifi>=2023.7.22
|
|
27
27
|
Requires-Dist: click>=7.0
|
|
28
28
|
Requires-Dist: fastapi>=0.100
|
|
29
|
+
Requires-Dist: libusb-package>=1.0.26.3; sys_platform == 'win32' and python_version < '3.14'
|
|
29
30
|
Requires-Dist: numpy>=1.24.0
|
|
30
31
|
Requires-Dist: prompt-toolkit>=3.0.0
|
|
31
32
|
Requires-Dist: psutil>=5.9.0
|
|
@@ -64,8 +65,6 @@ Provides-Extra: wayland
|
|
|
64
65
|
Requires-Dist: dbus-python>=1.3.0; extra == 'wayland'
|
|
65
66
|
Requires-Dist: pygobject>=3.42.0; extra == 'wayland'
|
|
66
67
|
Provides-Extra: windows
|
|
67
|
-
Requires-Dist: hardwaremonitor>=1.1.0; (sys_platform == 'win32') and extra == 'windows'
|
|
68
|
-
Requires-Dist: pythonnet>=3.0.3; (sys_platform == 'win32') and extra == 'windows'
|
|
69
68
|
Requires-Dist: pywin32>=306; (sys_platform == 'win32') and extra == 'windows'
|
|
70
69
|
Requires-Dist: wmi>=1.5.1; (sys_platform == 'win32') and extra == 'windows'
|
|
71
70
|
Description-Content-Type: text/markdown
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "trcc-linux"
|
|
7
|
-
version = "9.6.
|
|
7
|
+
version = "9.6.2"
|
|
8
8
|
description = "Linux implementation of Thermalright LCD Control Center"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "GPL-3.0-or-later"
|
|
@@ -33,6 +33,14 @@ dependencies = [
|
|
|
33
33
|
"numpy>=1.24.0",
|
|
34
34
|
"psutil>=5.9.0",
|
|
35
35
|
"pyusb>=1.2.0",
|
|
36
|
+
# libusb-package bundles libusb-1.0.dll on Windows so pip-installed
|
|
37
|
+
# users get a working pyusb backend out of the box. Pyocd's canonical
|
|
38
|
+
# pattern (#131 — usb.core.NoBackendError on pip-install Windows).
|
|
39
|
+
# Pinned for Windows + Python <3.14 because upstream wheels only go
|
|
40
|
+
# to cp313 (verified PyPI 2026-05-14); pip install of trcc-linux on
|
|
41
|
+
# Python 3.14 Windows would otherwise fail at sdist build. Lift the
|
|
42
|
+
# python_version cap once libusb-package ships a cp314 wheel.
|
|
43
|
+
"libusb-package>=1.0.26.3; sys_platform == 'win32' and python_version < '3.14'",
|
|
36
44
|
"click>=7.0",
|
|
37
45
|
"typer>=0.9.0",
|
|
38
46
|
"fastapi>=0.100",
|
|
@@ -56,8 +64,6 @@ wayland = [
|
|
|
56
64
|
windows = [
|
|
57
65
|
"wmi>=1.5.1; sys_platform == 'win32'",
|
|
58
66
|
"pywin32>=306; sys_platform == 'win32'",
|
|
59
|
-
"pythonnet>=3.0.3; sys_platform == 'win32'",
|
|
60
|
-
"HardwareMonitor>=1.1.0; sys_platform == 'win32'",
|
|
61
67
|
]
|
|
62
68
|
hid = [
|
|
63
69
|
"hidapi>=0.14.0",
|
|
@@ -40,8 +40,8 @@ def detect_devices():
|
|
|
40
40
|
Convenience for library users — wraps a one-shot platform build +
|
|
41
41
|
detect. For sustained use, build a Trcc explicitly:
|
|
42
42
|
from trcc.core.trcc import Trcc
|
|
43
|
-
from trcc.adapters.system import
|
|
44
|
-
trcc = Trcc(
|
|
43
|
+
from trcc.adapters.system import PlatformFactory
|
|
44
|
+
trcc = Trcc(PlatformFactory.current())
|
|
45
45
|
trcc.discover()
|
|
46
46
|
"""
|
|
47
47
|
from trcc.core.ports import Platform
|
|
@@ -41,12 +41,47 @@ logging.basicConfig(
|
|
|
41
41
|
datefmt='%Y-%m-%d %H:%M:%S',
|
|
42
42
|
handlers=[
|
|
43
43
|
_rotating_handler_cls(
|
|
44
|
-
_log_path, maxBytes=1_000_000, backupCount=3
|
|
44
|
+
_log_path, maxBytes=1_000_000, backupCount=3,
|
|
45
|
+
encoding='utf-8', errors='replace'),
|
|
45
46
|
],
|
|
46
47
|
)
|
|
47
48
|
log = logging.getLogger('trcc.main')
|
|
48
49
|
log.info("Starting TRCC — platform=%s, executable=%s", sys.platform, sys.executable)
|
|
49
50
|
|
|
51
|
+
# Windows: stdout/stderr default to cp1252, which can't encode common
|
|
52
|
+
# Unicode chars used in log messages (e.g. ``→``, ``°``). ``reconfigure``
|
|
53
|
+
# is a silent no-op on some Python deployments (Windows Store), so on
|
|
54
|
+
# top of that we monkey-patch ``logging.StreamHandler.emit`` to wrap the
|
|
55
|
+
# write call in its own ``except UnicodeEncodeError`` that re-encodes
|
|
56
|
+
# with ``errors='replace'``. This catches EVERY StreamHandler — ours,
|
|
57
|
+
# stdlib lastResort, third-party — at the class level, no matter when
|
|
58
|
+
# or where they're instantiated.
|
|
59
|
+
if sys.platform == 'win32':
|
|
60
|
+
for _stream in (sys.stdout, sys.stderr):
|
|
61
|
+
if hasattr(_stream, 'reconfigure'):
|
|
62
|
+
try:
|
|
63
|
+
_stream.reconfigure(encoding='utf-8', errors='replace')
|
|
64
|
+
except (AttributeError, OSError, ValueError):
|
|
65
|
+
pass
|
|
66
|
+
|
|
67
|
+
def _safe_stream_emit(self: logging.StreamHandler, record: logging.LogRecord) -> None:
|
|
68
|
+
try:
|
|
69
|
+
msg = self.format(record)
|
|
70
|
+
stream = self.stream
|
|
71
|
+
try:
|
|
72
|
+
stream.write(msg + self.terminator)
|
|
73
|
+
except UnicodeEncodeError:
|
|
74
|
+
encoding = getattr(stream, 'encoding', 'ascii') or 'ascii'
|
|
75
|
+
safe = msg.encode(encoding, errors='replace').decode(encoding)
|
|
76
|
+
stream.write(safe + self.terminator)
|
|
77
|
+
self.flush()
|
|
78
|
+
except RecursionError:
|
|
79
|
+
raise
|
|
80
|
+
except Exception:
|
|
81
|
+
self.handleError(record)
|
|
82
|
+
|
|
83
|
+
logging.StreamHandler.emit = _safe_stream_emit # type: ignore[method-assign]
|
|
84
|
+
|
|
50
85
|
# Windows: ensure libusb-1.0.dll is findable by pyusb (ctypes).
|
|
51
86
|
# PyInstaller bundles the DLL next to the exe, but Python 3.8+ on Windows
|
|
52
87
|
# doesn't search the exe's directory for ctypes DLLs unless explicitly told.
|
|
@@ -106,7 +106,7 @@ def trcc(
|
|
|
106
106
|
|
|
107
107
|
Parameters:
|
|
108
108
|
platform: DI override. ``None`` triggers OS detection via
|
|
109
|
-
``
|
|
109
|
+
``PlatformFactory.current()``. Tests pass ``MockPlatform`` to skip USB.
|
|
110
110
|
renderer: DI override. ``None`` builds an offscreen ``QtRenderer``.
|
|
111
111
|
The GUI passes its own windowed renderer.
|
|
112
112
|
discover_now: When True (default), runs ``Trcc.discover()`` so
|
|
@@ -143,8 +143,8 @@ def trcc(
|
|
|
143
143
|
|
|
144
144
|
# 2. Resolve / accept the Platform.
|
|
145
145
|
if platform is None:
|
|
146
|
-
from trcc.adapters.system import
|
|
147
|
-
platform =
|
|
146
|
+
from trcc.adapters.system import PlatformFactory
|
|
147
|
+
platform = PlatformFactory.current()
|
|
148
148
|
|
|
149
149
|
# 3. Bootstrap the process: logging, OS-specific stdout config,
|
|
150
150
|
# settings file, first-run setup hook. All idempotent — safe
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"""PyUSB find() wrapper — uses libusb_package's bundled backend on Windows.
|
|
2
|
+
|
|
3
|
+
PyUSB needs ``libusb-1.0`` userspace to talk to USB devices. On Linux and
|
|
4
|
+
macOS the system package manager ships it. On Windows there is no system
|
|
5
|
+
libusb — pip-installed users hit ``usb.core.NoBackendError: No backend
|
|
6
|
+
available`` (issue #131, lallemandgianni-boop on Windows 11 v9.6.1).
|
|
7
|
+
|
|
8
|
+
The canonical fix is `libusb-package <https://github.com/pyocd/libusb-package>`_
|
|
9
|
+
(pyocd's project) — a Windows wheel that bundles ``libusb-1.0.dll`` and
|
|
10
|
+
exposes ``find()`` as a drop-in for ``usb.core.find()``. pyproject.toml
|
|
11
|
+
adds it as a Windows-only dependency::
|
|
12
|
+
|
|
13
|
+
libusb-package>=1.0.26.2; sys_platform == 'win32'
|
|
14
|
+
|
|
15
|
+
This module exports a single :func:`find` shim that uses
|
|
16
|
+
``libusb_package.find`` when available (Windows wheel installed) and
|
|
17
|
+
falls back to ``usb.core.find`` otherwise (Linux/macOS users with system
|
|
18
|
+
libusb, or anyone who installed the optional wheel themselves). Every
|
|
19
|
+
``usb.core.find`` call site in ``trcc.adapters.device`` goes through
|
|
20
|
+
this seam so there's exactly one place that knows about the Windows
|
|
21
|
+
quirk.
|
|
22
|
+
"""
|
|
23
|
+
from __future__ import annotations
|
|
24
|
+
|
|
25
|
+
import logging
|
|
26
|
+
from typing import Any
|
|
27
|
+
|
|
28
|
+
log = logging.getLogger(__name__)
|
|
29
|
+
|
|
30
|
+
try:
|
|
31
|
+
from libusb_package import find as _find # type: ignore[import-not-found]
|
|
32
|
+
log.debug("pyusb backend: libusb-package (bundled libusb-1.0)")
|
|
33
|
+
except ImportError:
|
|
34
|
+
from usb.core import find as _find # type: ignore[no-redef]
|
|
35
|
+
log.debug("pyusb backend: system libusb via usb.core.find")
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def find(*args: Any, **kwargs: Any) -> Any:
|
|
39
|
+
"""Drop-in for ``usb.core.find()`` with Windows-compatible backend.
|
|
40
|
+
|
|
41
|
+
Identical signature, identical return type. Routes through
|
|
42
|
+
``libusb_package.find`` on platforms where it's installed (Windows
|
|
43
|
+
via pip), otherwise calls ``usb.core.find`` directly (Linux, macOS,
|
|
44
|
+
or any environment where the user manages libusb themselves).
|
|
45
|
+
"""
|
|
46
|
+
return _find(*args, **kwargs)
|
|
@@ -38,11 +38,11 @@ class UsbBotScsiTransport(ScsiTransport):
|
|
|
38
38
|
|
|
39
39
|
def __init__(
|
|
40
40
|
self, vid: int, pid: int,
|
|
41
|
-
*,
|
|
41
|
+
*, usb_address: UsbAddress | None = None,
|
|
42
42
|
) -> None:
|
|
43
43
|
self._vid = vid
|
|
44
44
|
self._pid = pid
|
|
45
|
-
self.
|
|
45
|
+
self._usb_address = usb_address # bind to specific (bus, address) — issue #128
|
|
46
46
|
self._dev: Any = None
|
|
47
47
|
self._ep_out: int | None = None
|
|
48
48
|
self._ep_in: int | None = None
|
|
@@ -51,18 +51,19 @@ class UsbBotScsiTransport(ScsiTransport):
|
|
|
51
51
|
def open(self) -> bool:
|
|
52
52
|
"""Find device, detach kernel driver, claim interface."""
|
|
53
53
|
try:
|
|
54
|
-
import usb.core # pyright: ignore[reportMissingImports]
|
|
55
54
|
import usb.util # pyright: ignore[reportMissingImports]
|
|
55
|
+
|
|
56
|
+
from . import _pyusb_find
|
|
56
57
|
except ImportError:
|
|
57
58
|
log.error(self._pyusb_install_hint)
|
|
58
59
|
return False
|
|
59
60
|
|
|
60
61
|
kwargs: dict[str, Any] = {'idVendor': self._vid, 'idProduct': self._pid}
|
|
61
|
-
if self.
|
|
62
|
-
kwargs['custom_match'] = self.
|
|
63
|
-
dev: Any =
|
|
62
|
+
if self._usb_address is not None:
|
|
63
|
+
kwargs['custom_match'] = self._usb_address.matches
|
|
64
|
+
dev: Any = _pyusb_find.find(**kwargs)
|
|
64
65
|
if dev is None:
|
|
65
|
-
where = f" @ {self.
|
|
66
|
+
where = f" @ {self._usb_address}" if self._usb_address else ""
|
|
66
67
|
log.error("Device %04X:%04X%s not found", self._vid, self._pid, where)
|
|
67
68
|
return False
|
|
68
69
|
|
|
@@ -109,11 +109,11 @@ def _detach_kernel_drivers(dev: Any, count: int = 4) -> bool:
|
|
|
109
109
|
|
|
110
110
|
def _reset_and_refind(dev: Any, vid: int, pid: int) -> Any:
|
|
111
111
|
"""Reset USB device, wait, re-find, detach drivers. Returns new handle."""
|
|
112
|
-
|
|
112
|
+
from . import _pyusb_find
|
|
113
113
|
|
|
114
114
|
dev.reset() # type: ignore[union-attr]
|
|
115
115
|
time.sleep(0.5)
|
|
116
|
-
new_dev =
|
|
116
|
+
new_dev = _pyusb_find.find(idVendor=vid, idProduct=pid)
|
|
117
117
|
if new_dev is None:
|
|
118
118
|
raise RuntimeError(_ERR_NOT_FOUND.format(vid=vid, pid=pid))
|
|
119
119
|
_detach_kernel_drivers(new_dev)
|
|
@@ -126,7 +126,7 @@ def _reset_and_refind(dev: Any, vid: int, pid: int) -> Any:
|
|
|
126
126
|
|
|
127
127
|
def open_usb_device(
|
|
128
128
|
vid: int, pid: int,
|
|
129
|
-
*,
|
|
129
|
+
*, usb_address: UsbAddress | None = None,
|
|
130
130
|
) -> tuple[Any, Any]:
|
|
131
131
|
"""Find, configure, and claim a vendor-class USB device.
|
|
132
132
|
|
|
@@ -134,9 +134,9 @@ def open_usb_device(
|
|
|
134
134
|
find -> detach kernel drivers -> configure
|
|
135
135
|
-> find vendor interface -> claim (with EBUSY retry) -> return
|
|
136
136
|
|
|
137
|
-
``
|
|
138
|
-
coolers share VID:PID (issue #128). Without it, pyusb returns
|
|
139
|
-
match — fine for single-device users, ambiguous for dual.
|
|
137
|
+
``usb_address`` (bus + address) binds to a specific physical USB device
|
|
138
|
+
when two coolers share VID:PID (issue #128). Without it, pyusb returns
|
|
139
|
+
the first match — fine for single-device users, ambiguous for dual.
|
|
140
140
|
|
|
141
141
|
Returns:
|
|
142
142
|
(device, interface) tuple ready for endpoint detection.
|
|
@@ -145,15 +145,17 @@ def open_usb_device(
|
|
|
145
145
|
RuntimeError: Device not found, or kernel driver could not be detached.
|
|
146
146
|
usb.core.USBError: Permission denied (errno 13).
|
|
147
147
|
"""
|
|
148
|
-
import usb.core # type: ignore[import-untyped]
|
|
148
|
+
import usb.core # type: ignore[import-untyped] # for USBError below
|
|
149
149
|
import usb.util # type: ignore[import-untyped]
|
|
150
150
|
|
|
151
|
+
from . import _pyusb_find
|
|
152
|
+
|
|
151
153
|
kwargs: dict[str, Any] = {'idVendor': vid, 'idProduct': pid}
|
|
152
|
-
if
|
|
153
|
-
kwargs['custom_match'] =
|
|
154
|
-
dev =
|
|
154
|
+
if usb_address is not None:
|
|
155
|
+
kwargs['custom_match'] = usb_address.matches
|
|
156
|
+
dev = _pyusb_find.find(**kwargs)
|
|
155
157
|
if dev is None:
|
|
156
|
-
where = f" @ {
|
|
158
|
+
where = f" @ {usb_address}" if usb_address else ""
|
|
157
159
|
raise RuntimeError(_ERR_NOT_FOUND.format(vid=vid, pid=pid) + where)
|
|
158
160
|
|
|
159
161
|
# 1. Detach kernel drivers (post-verification included)
|
|
@@ -204,12 +206,12 @@ class BulkFrameDevice:
|
|
|
204
206
|
|
|
205
207
|
def __init__(
|
|
206
208
|
self, vid: int, pid: int, usb_path: str = "",
|
|
207
|
-
*,
|
|
209
|
+
*, usb_address: UsbAddress | None = None,
|
|
208
210
|
):
|
|
209
211
|
self.vid = vid
|
|
210
212
|
self.pid = pid
|
|
211
213
|
self.usb_path = usb_path
|
|
212
|
-
self.
|
|
214
|
+
self.usb_address = usb_address # disambiguates dual same-VID/PID coolers (#128)
|
|
213
215
|
self._dev: Any = None
|
|
214
216
|
self._ep_out: Any = None
|
|
215
217
|
self._ep_in: Any = None
|
|
@@ -225,7 +227,7 @@ class BulkFrameDevice:
|
|
|
225
227
|
"""Find and claim the USB device, discover bulk IN/OUT endpoints."""
|
|
226
228
|
import usb.util
|
|
227
229
|
|
|
228
|
-
dev, intf = open_usb_device(self.vid, self.pid,
|
|
230
|
+
dev, intf = open_usb_device(self.vid, self.pid, usb_address=self.usb_address)
|
|
229
231
|
|
|
230
232
|
self._ep_out = usb.util.find_descriptor(
|
|
231
233
|
intf,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""FreeBSD USB device detection utilities.
|
|
2
2
|
|
|
3
3
|
Device detection on FreeBSD uses the cross-platform DeviceDetector
|
|
4
|
-
(pyusb-based) via BSDPlatform.
|
|
4
|
+
(pyusb-based) via BSDPlatform.detect_devices(). SCSI devices are
|
|
5
5
|
addressed by VID:PID through pyusb — no /dev/pass* mapping needed.
|
|
6
6
|
|
|
7
7
|
This module provides diagnostic utilities only.
|
|
@@ -28,18 +28,18 @@ class _BulkLikeProtocol(DeviceProtocol):
|
|
|
28
28
|
|
|
29
29
|
def __init__(
|
|
30
30
|
self, vid: int, pid: int,
|
|
31
|
-
*,
|
|
31
|
+
*, usb_address: UsbAddress | None = None,
|
|
32
32
|
):
|
|
33
33
|
super().__init__()
|
|
34
34
|
self._vid = vid
|
|
35
35
|
self._pid = pid
|
|
36
|
-
self.
|
|
36
|
+
self._usb_address = usb_address # disambiguates dual same-VID/PID coolers (#128)
|
|
37
37
|
self._device: Any | None = None
|
|
38
38
|
|
|
39
39
|
@staticmethod
|
|
40
40
|
def _make_device(
|
|
41
41
|
vid: int, pid: int,
|
|
42
|
-
*,
|
|
42
|
+
*, usb_address: UsbAddress | None = None,
|
|
43
43
|
) -> Any:
|
|
44
44
|
raise NotImplementedError
|
|
45
45
|
|
|
@@ -47,8 +47,8 @@ class _BulkLikeProtocol(DeviceProtocol):
|
|
|
47
47
|
if self._device is None:
|
|
48
48
|
log.debug("%s: creating device %04X:%04X%s",
|
|
49
49
|
self._label, self._vid, self._pid,
|
|
50
|
-
f" @ {self.
|
|
51
|
-
self._device = self._make_device(self._vid, self._pid,
|
|
50
|
+
f" @ {self._usb_address}" if self._usb_address else "")
|
|
51
|
+
self._device = self._make_device(self._vid, self._pid, usb_address=self._usb_address)
|
|
52
52
|
assert self._device is not None
|
|
53
53
|
log.debug("%s: starting handshake", self._label)
|
|
54
54
|
result = self._device.handshake()
|
|
@@ -98,10 +98,10 @@ class BulkProtocol(_BulkLikeProtocol):
|
|
|
98
98
|
@staticmethod
|
|
99
99
|
def _make_device(
|
|
100
100
|
vid: int, pid: int,
|
|
101
|
-
*,
|
|
101
|
+
*, usb_address: UsbAddress | None = None,
|
|
102
102
|
) -> Any:
|
|
103
103
|
from .bulk import BulkDevice
|
|
104
|
-
return BulkDevice(vid, pid,
|
|
104
|
+
return BulkDevice(vid, pid, usb_address=usb_address)
|
|
105
105
|
|
|
106
106
|
def get_info(self) -> ProtocolInfo:
|
|
107
107
|
return self._build_usb_protocol_info(
|
|
@@ -85,7 +85,7 @@ class DeviceDetector:
|
|
|
85
85
|
def _detect(scsi_resolver: ScsiResolver | None) -> list[DetectedDevice]:
|
|
86
86
|
"""Core detection via pyusb with injected SCSI resolver."""
|
|
87
87
|
try:
|
|
88
|
-
|
|
88
|
+
from . import _pyusb_find
|
|
89
89
|
except ImportError:
|
|
90
90
|
log.error("pyusb not installed — pip install pyusb")
|
|
91
91
|
return []
|
|
@@ -95,7 +95,7 @@ class DeviceDetector:
|
|
|
95
95
|
# find_all=True yields every match; `or ()` handles None when
|
|
96
96
|
# no devices are present, so two same-VID/PID coolers each
|
|
97
97
|
# produce their own DetectedDevice (issue #128).
|
|
98
|
-
for usb_dev in (
|
|
98
|
+
for usb_dev in (_pyusb_find.find(find_all=True, idVendor=vid, idProduct=pid) or ()):
|
|
99
99
|
dev: Any = usb_dev
|
|
100
100
|
usb_path = f'usb:{dev.bus}:{dev.address}'
|
|
101
101
|
scsi_dev = (
|
|
@@ -22,7 +22,7 @@ import logging
|
|
|
22
22
|
from abc import ABC, abstractmethod
|
|
23
23
|
from collections.abc import Callable
|
|
24
24
|
from dataclasses import dataclass, field
|
|
25
|
-
from typing import Any, ClassVar
|
|
25
|
+
from typing import TYPE_CHECKING, Any, ClassVar
|
|
26
26
|
|
|
27
27
|
from trcc.core.models import (
|
|
28
28
|
DEVICE_TYPE_NAMES,
|
|
@@ -31,6 +31,9 @@ from trcc.core.models import (
|
|
|
31
31
|
UsbAddress,
|
|
32
32
|
)
|
|
33
33
|
|
|
34
|
+
if TYPE_CHECKING:
|
|
35
|
+
from trcc.core.models import DeviceInfo
|
|
36
|
+
|
|
34
37
|
log = logging.getLogger(__name__)
|
|
35
38
|
|
|
36
39
|
|
|
@@ -300,19 +303,19 @@ class UsbProtocol(LazyTransportProtocol):
|
|
|
300
303
|
|
|
301
304
|
def __init__(
|
|
302
305
|
self, vid: int, pid: int,
|
|
303
|
-
*,
|
|
306
|
+
*, usb_address: UsbAddress | None = None,
|
|
304
307
|
):
|
|
305
308
|
super().__init__()
|
|
306
309
|
self._vid = vid
|
|
307
310
|
self._pid = pid
|
|
308
|
-
self.
|
|
311
|
+
self._usb_address = usb_address # disambiguates dual same-VID/PID coolers (#128)
|
|
309
312
|
|
|
310
313
|
def _open_transport(self) -> Any:
|
|
311
314
|
log.debug("Opening %s transport: %04X:%04X%s",
|
|
312
315
|
self.protocol_name, self._vid, self._pid,
|
|
313
|
-
f" @ {self.
|
|
316
|
+
f" @ {self._usb_address}" if self._usb_address else "")
|
|
314
317
|
transport = DeviceProtocolFactory.create_usb_transport(
|
|
315
|
-
self._vid, self._pid,
|
|
318
|
+
self._vid, self._pid, usb_address=self._usb_address)
|
|
316
319
|
transport.open()
|
|
317
320
|
return transport
|
|
318
321
|
|
|
@@ -452,20 +455,20 @@ class DeviceProtocolFactory:
|
|
|
452
455
|
@staticmethod
|
|
453
456
|
def create_usb_transport(
|
|
454
457
|
vid: int, pid: int,
|
|
455
|
-
*,
|
|
458
|
+
*, usb_address: UsbAddress | None = None,
|
|
456
459
|
):
|
|
457
460
|
"""Create the best available USB transport (pyusb preferred, hidapi fallback).
|
|
458
461
|
|
|
459
|
-
``
|
|
460
|
-
device — required when two coolers share the same VID:PID (
|
|
462
|
+
``usb_address`` (bus + address) binds the transport to a specific physical
|
|
463
|
+
USB device — required when two coolers share the same VID:PID (#128).
|
|
461
464
|
"""
|
|
462
465
|
from .hid import HIDAPI_AVAILABLE, PYUSB_AVAILABLE
|
|
463
466
|
if PYUSB_AVAILABLE:
|
|
464
467
|
from .hid import PyUsbTransport
|
|
465
|
-
return PyUsbTransport(vid, pid,
|
|
468
|
+
return PyUsbTransport(vid, pid, usb_address=usb_address)
|
|
466
469
|
elif HIDAPI_AVAILABLE:
|
|
467
470
|
from .hid import HidApiTransport
|
|
468
|
-
return HidApiTransport(vid, pid,
|
|
471
|
+
return HidApiTransport(vid, pid, usb_address=usb_address)
|
|
469
472
|
else:
|
|
470
473
|
raise ImportError(
|
|
471
474
|
"No USB backend available. Install pyusb or hidapi:\n"
|
|
@@ -603,7 +606,14 @@ class ProtocolInfo:
|
|
|
603
606
|
|
|
604
607
|
|
|
605
608
|
# =========================================================================
|
|
606
|
-
#
|
|
609
|
+
# ProtocolFactory — one factory subclass per protocol kind.
|
|
610
|
+
#
|
|
611
|
+
# Mirrors the ``PlatformFactory`` idiom in ``adapters/system/__init__.py``:
|
|
612
|
+
# ABC + ``@ProtocolFactory.register('name')`` self-registering subclasses +
|
|
613
|
+
# single ``ProtocolFactory.for_info(info)`` chokepoint that dispatches by
|
|
614
|
+
# the protocol *name* carried on ``DeviceInfo``. Two factory layers, one
|
|
615
|
+
# pattern — readers learn it once and apply it everywhere.
|
|
616
|
+
#
|
|
607
617
|
# Imports are at the bottom to avoid the circular dependency (each protocol
|
|
608
618
|
# module imports DeviceProtocol/UsbProtocol/ProtocolInfo from this module).
|
|
609
619
|
# =========================================================================
|
|
@@ -614,11 +624,90 @@ from .led_protocol import LedProtocol # noqa: E402
|
|
|
614
624
|
from .ly_protocol import LyProtocol # noqa: E402
|
|
615
625
|
from .scsi_protocol import ScsiProtocol # noqa: E402
|
|
616
626
|
|
|
627
|
+
|
|
628
|
+
class ProtocolFactory(ABC):
|
|
629
|
+
"""Abstract factory for a single ``DeviceProtocol`` class.
|
|
630
|
+
|
|
631
|
+
Subclasses self-register via ``@ProtocolFactory.register('name')``. The
|
|
632
|
+
registry is consulted via ``ProtocolFactory.for_info(info)`` — the
|
|
633
|
+
single chokepoint that turns a ``DeviceInfo`` into the right
|
|
634
|
+
``DeviceProtocol`` instance (DI'd into ``Device`` at construction).
|
|
635
|
+
|
|
636
|
+
Open/Closed: new protocol support = one new decorated subclass. Zero
|
|
637
|
+
touchpoints elsewhere.
|
|
638
|
+
"""
|
|
639
|
+
|
|
640
|
+
_registry: ClassVar[dict[str, type['ProtocolFactory']]] = {}
|
|
641
|
+
|
|
642
|
+
@classmethod
|
|
643
|
+
def register(cls, name: str):
|
|
644
|
+
"""Mark a factory subclass as the one to use for ``info.protocol == name``."""
|
|
645
|
+
def deco(sub: type['ProtocolFactory']) -> type['ProtocolFactory']:
|
|
646
|
+
cls._registry[name] = sub
|
|
647
|
+
return sub
|
|
648
|
+
return deco
|
|
649
|
+
|
|
650
|
+
@classmethod
|
|
651
|
+
def for_info(cls, info: 'DeviceInfo') -> DeviceProtocol:
|
|
652
|
+
"""Build the right ``DeviceProtocol`` for a ``DeviceInfo`` (dispatch by name)."""
|
|
653
|
+
factory_cls = cls._registry.get(info.protocol)
|
|
654
|
+
if factory_cls is None:
|
|
655
|
+
raise ValueError(f"Unknown protocol: {info.protocol!r}")
|
|
656
|
+
return factory_cls().make(info)
|
|
657
|
+
|
|
658
|
+
@abstractmethod
|
|
659
|
+
def make(self, info: 'DeviceInfo') -> DeviceProtocol:
|
|
660
|
+
"""Construct the protocol instance from a ``DeviceInfo``."""
|
|
661
|
+
|
|
662
|
+
|
|
663
|
+
@ProtocolFactory.register('scsi')
|
|
664
|
+
class ScsiProtocolFactory(ProtocolFactory):
|
|
665
|
+
"""Build ``ScsiProtocol`` for ``info.protocol == 'scsi'``."""
|
|
666
|
+
|
|
667
|
+
def make(self, info: 'DeviceInfo') -> DeviceProtocol:
|
|
668
|
+
return ScsiProtocol(info.path, info.vid, info.pid, usb_address=info.usb_address)
|
|
669
|
+
|
|
670
|
+
|
|
671
|
+
@ProtocolFactory.register('hid')
|
|
672
|
+
class HidProtocolFactory(ProtocolFactory):
|
|
673
|
+
"""Build ``HidProtocol`` (Type 2 or Type 3 chosen via ``info.device_type``)."""
|
|
674
|
+
|
|
675
|
+
def make(self, info: 'DeviceInfo') -> DeviceProtocol:
|
|
676
|
+
return HidProtocol(
|
|
677
|
+
vid=info.vid, pid=info.pid,
|
|
678
|
+
usb_address=info.usb_address,
|
|
679
|
+
device_type=info.device_type,
|
|
680
|
+
)
|
|
681
|
+
|
|
682
|
+
|
|
683
|
+
@ProtocolFactory.register('bulk')
|
|
684
|
+
class BulkProtocolFactory(ProtocolFactory):
|
|
685
|
+
"""Build ``BulkProtocol`` for raw-USB-bulk LCDs (USBLCDNew)."""
|
|
686
|
+
|
|
687
|
+
def make(self, info: 'DeviceInfo') -> DeviceProtocol:
|
|
688
|
+
return BulkProtocol(vid=info.vid, pid=info.pid, usb_address=info.usb_address)
|
|
689
|
+
|
|
690
|
+
|
|
691
|
+
@ProtocolFactory.register('ly')
|
|
692
|
+
class LyProtocolFactory(ProtocolFactory):
|
|
693
|
+
"""Build ``LyProtocol`` for LY USB-bulk LCDs (0416:5408 / 0416:5409)."""
|
|
694
|
+
|
|
695
|
+
def make(self, info: 'DeviceInfo') -> DeviceProtocol:
|
|
696
|
+
return LyProtocol(vid=info.vid, pid=info.pid, usb_address=info.usb_address)
|
|
697
|
+
|
|
698
|
+
|
|
699
|
+
@ProtocolFactory.register('led')
|
|
700
|
+
class LedProtocolFactory(ProtocolFactory):
|
|
701
|
+
"""Build ``LedProtocol`` for RGB LED controllers (HID 64-byte reports)."""
|
|
702
|
+
|
|
703
|
+
def make(self, info: 'DeviceInfo') -> DeviceProtocol:
|
|
704
|
+
return LedProtocol(vid=info.vid, pid=info.pid, usb_address=info.usb_address)
|
|
705
|
+
|
|
706
|
+
|
|
707
|
+
# Bridge the new factory subclasses into the orchestration class's registry —
|
|
708
|
+
# keeps every legacy caller (``DeviceProtocolFactory.create_protocol`` /
|
|
709
|
+
# ``.get_protocol``) working without rewrites.
|
|
617
710
|
DeviceProtocolFactory._PROTOCOL_REGISTRY = {
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
'ly': lambda di: LyProtocol(vid=di.vid, pid=di.pid, addr=di.addr),
|
|
621
|
-
'led': lambda di: LedProtocol(vid=di.vid, pid=di.pid, addr=di.addr),
|
|
622
|
-
'hid': lambda di: HidProtocol(vid=di.vid, pid=di.pid, addr=di.addr,
|
|
623
|
-
device_type=getattr(di, 'device_type', 2)),
|
|
711
|
+
name: (lambda fc: lambda di: fc().make(di))(factory_cls)
|
|
712
|
+
for name, factory_cls in ProtocolFactory._registry.items()
|
|
624
713
|
}
|