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.
Files changed (1062) hide show
  1. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/.gitignore +5 -0
  2. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/PKG-INFO +2 -3
  3. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/pyproject.toml +9 -3
  4. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/__init__.py +2 -2
  5. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/__main__.py +36 -1
  6. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/__version__.py +1 -1
  7. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/_boot.py +3 -3
  8. trcc_linux-9.6.2/src/trcc/adapters/device/_pyusb_find.py +46 -0
  9. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/_usb_bot_scsi.py +8 -7
  10. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/_usb_helpers.py +16 -14
  11. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/bsd/detector.py +1 -1
  12. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/bulk_protocol.py +7 -7
  13. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/detector.py +2 -2
  14. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/factory.py +106 -17
  15. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/hid.py +14 -13
  16. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/hid_protocol.py +2 -2
  17. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/led.py +1 -1
  18. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/led_protocol.py +2 -2
  19. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/ly.py +2 -2
  20. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/ly_protocol.py +2 -2
  21. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/macos/detector.py +2 -2
  22. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/scsi_protocol.py +17 -5
  23. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/data_repository.py +2 -2
  24. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/diagnostics.py +36 -14
  25. trcc_linux-9.6.2/src/trcc/adapters/system/__init__.py +148 -0
  26. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/bsd_platform.py +13 -7
  27. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/linux_platform.py +9 -4
  28. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos_platform.py +14 -7
  29. trcc_linux-9.6.2/src/trcc/adapters/system/windows/__init__.py +20 -0
  30. trcc_linux-9.6.2/src/trcc/adapters/system/windows/enumerator.py +308 -0
  31. trcc_linux-9.6.2/src/trcc/adapters/system/windows/sources/__init__.py +33 -0
  32. trcc_linux-9.6.2/src/trcc/adapters/system/windows/sources/_base.py +141 -0
  33. trcc_linux-9.6.2/src/trcc/adapters/system/windows/sources/hwinfo.py +434 -0
  34. trcc_linux-9.6.2/src/trcc/adapters/system/windows/sources/lhm.py +350 -0
  35. trcc_linux-9.6.2/src/trcc/adapters/system/windows/sources/msacpi.py +123 -0
  36. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/windows_platform.py +24 -257
  37. trcc_linux-9.6.2/src/trcc/assets/LibreHardwareMonitor.config +15 -0
  38. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/builder.py +29 -61
  39. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/device/__init__.py +4 -5
  40. trcc_linux-9.6.2/src/trcc/core/device/base.py +77 -0
  41. trcc_linux-9.6.2/src/trcc/core/device/factory.py +150 -0
  42. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/device/lcd.py +14 -7
  43. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/device/led.py +19 -13
  44. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/device.py +90 -65
  45. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/ports.py +79 -9
  46. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/trcc.py +45 -100
  47. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/daemon.py +2 -1
  48. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/install/gui.py +2 -2
  49. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/led.py +7 -9
  50. trcc_linux-9.6.2/src/trcc/services/metrics_loop.py +181 -0
  51. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/__init__.py +0 -16
  52. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/led.py +5 -8
  53. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/__init__.py +4 -3
  54. trcc_linux-9.6.2/src/trcc/ui/gui/base_handler.py +63 -0
  55. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_factory.py +2 -2
  56. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/bsd/test_platform.py +2 -2
  57. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/linux/test_platform.py +3 -2
  58. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/macos/test_platform.py +2 -2
  59. trcc_linux-9.6.2/tests/adapters/system/windows/test_hwinfo_source.py +281 -0
  60. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/windows/test_platform.py +2 -2
  61. trcc_linux-9.6.2/tests/adapters/system/windows/test_sensors.py +542 -0
  62. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/conftest.py +2 -2
  63. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_builder.py +3 -3
  64. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_builder_routing.py +2 -2
  65. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_descriptors_ipc.py +8 -8
  66. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_led_device.py +8 -8
  67. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_models.py +20 -19
  68. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/mock_platform.py +5 -4
  69. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/noop_transports.py +2 -2
  70. trcc_linux-9.6.2/tests/services/__init__.py +0 -0
  71. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_led.py +10 -11
  72. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/test_all_devices.py +2 -2
  73. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/test_architecture.py +4 -2
  74. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/test_wiring.py +3 -4
  75. trcc_linux-9.6.0/src/trcc/adapters/system/__init__.py +0 -88
  76. trcc_linux-9.6.0/src/trcc/ui/gui/base_handler.py +0 -49
  77. trcc_linux-9.6.0/tests/adapters/system/windows/test_sensors.py +0 -446
  78. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/LICENSE +0 -0
  79. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/README.md +0 -0
  80. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/_entry.py +0 -0
  81. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/__init__.py +0 -0
  82. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/__init__.py +0 -0
  83. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/bsd/__init__.py +0 -0
  84. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/bsd/scsi.py +0 -0
  85. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/bulk.py +0 -0
  86. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/frame.py +0 -0
  87. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/led_kvm.py +0 -0
  88. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/linux/__init__.py +0 -0
  89. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/linux/detector.py +0 -0
  90. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/linux/scsi.py +0 -0
  91. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/macos/__init__.py +0 -0
  92. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/macos/scsi.py +0 -0
  93. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/scsi.py +0 -0
  94. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/windows/__init__.py +0 -0
  95. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/windows/detector.py +0 -0
  96. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/device/windows/scsi.py +0 -0
  97. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/__init__.py +0 -0
  98. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/binary_reader.py +0 -0
  99. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/dc_config.py +0 -0
  100. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/dc_parser.py +0 -0
  101. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/dc_writer.py +0 -0
  102. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/debug_report.py +0 -0
  103. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/doctor.py +0 -0
  104. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/logging_setup.py +0 -0
  105. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/media_player.py +0 -0
  106. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/network.py +0 -0
  107. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/theme_cloud.py +0 -0
  108. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/infra/theme_downloader.py +0 -0
  109. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/render/__init__.py +0 -0
  110. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/render/factory_render.py +0 -0
  111. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/render/qt.py +0 -0
  112. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/_base.py +0 -0
  113. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/_shared.py +0 -0
  114. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/_windows_wmi.py +0 -0
  115. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/config.py +0 -0
  116. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/linux_sensors.py +0 -0
  117. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/__init__.py +0 -0
  118. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/hardware.py +0 -0
  119. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/hid_sensors.py +0 -0
  120. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/powermetrics_extra.py +0 -0
  121. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/powermetrics_ipc.py +0 -0
  122. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/powermetrics_plist.py +0 -0
  123. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/sensors.py +0 -0
  124. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/smc_client.py +0 -0
  125. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/adapters/system/macos/smc_ismc_tables.py +0 -0
  126. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/com.github.lexonight1.trcc.policy +0 -0
  127. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/fonts/MSYH.TTC +0 -0
  128. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/fonts/MSYHBD.TTC +0 -0
  129. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/fonts/README.md +0 -0
  130. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/app.ico +0 -0
  131. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc.png +0 -0
  132. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc_128x128.png +0 -0
  133. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc_16x16.png +0 -0
  134. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc_24x24.png +0 -0
  135. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc_256x256.png +0 -0
  136. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc_32x32.png +0 -0
  137. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc_48x48.png +0 -0
  138. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/icons/trcc_64x64.png +0 -0
  139. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/trcc-linux.desktop +0 -0
  140. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/assets/trcc-quirk-fix.service +0 -0
  141. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/conf.py +0 -0
  142. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/__init__.py +0 -0
  143. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/_command.py +0 -0
  144. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/_device_commands.py +0 -0
  145. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/_logging.py +0 -0
  146. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/color.py +0 -0
  147. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/control_center_commands.py +0 -0
  148. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/device/lcd_persistence.py +0 -0
  149. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/device/lcd_theme_workflow.py +0 -0
  150. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/device/registry.py +0 -0
  151. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/encoding.py +0 -0
  152. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/events.py +0 -0
  153. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/i18n.py +0 -0
  154. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/io.py +0 -0
  155. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/lcd_commands.py +0 -0
  156. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/led_commands.py +0 -0
  157. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/led_segment.py +0 -0
  158. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/macos_app_bundle_launch.py +0 -0
  159. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/__init__.py +0 -0
  160. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/api.py +0 -0
  161. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/constants.py +0 -0
  162. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/led.py +0 -0
  163. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/os.py +0 -0
  164. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/overlay.py +0 -0
  165. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/protocol.py +0 -0
  166. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/sensor.py +0 -0
  167. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/models/theme.py +0 -0
  168. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/paths.py +0 -0
  169. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/perf.py +0 -0
  170. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/platform.py +0 -0
  171. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/results.py +0 -0
  172. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/trcc_proxy.py +0 -0
  173. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/core/wire.py +0 -0
  174. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/data/trcc_usb.te +0 -0
  175. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/install/__init__.py +0 -0
  176. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ipc.py +0 -0
  177. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/__init__.py +0 -0
  178. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/__main__.py +0 -0
  179. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/__init__.py +0 -0
  180. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/__init__.py +0 -0
  181. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/bulk_lcd.py +0 -0
  182. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/hid_lcd.py +0 -0
  183. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/led.py +0 -0
  184. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/ly_lcd.py +0 -0
  185. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/scsi_lcd.py +0 -0
  186. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/transport.py +0 -0
  187. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/device/usb_bot_scsi.py +0 -0
  188. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/render/__init__.py +0 -0
  189. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/render/qt.py +0 -0
  190. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/sensors/__init__.py +0 -0
  191. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/sensors/aggregator.py +0 -0
  192. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/sensors/gpu_detect.py +0 -0
  193. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/sensors/hwmon.py +0 -0
  194. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/sensors/nvml.py +0 -0
  195. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/sensors/psutil_sources.py +0 -0
  196. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/__init__.py +0 -0
  197. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/_devd.py +0 -0
  198. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/_macos_setup.py +0 -0
  199. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/_udev.py +0 -0
  200. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/_winusb.py +0 -0
  201. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/bsd.py +0 -0
  202. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/linux.py +0 -0
  203. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/macos.py +0 -0
  204. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/adapters/system/windows.py +0 -0
  205. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/app.py +0 -0
  206. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/__init__.py +0 -0
  207. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/commands.py +0 -0
  208. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/errors.py +0 -0
  209. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/events.py +0 -0
  210. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/models.py +0 -0
  211. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/ports.py +0 -0
  212. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/registry.py +0 -0
  213. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/core/results.py +0 -0
  214. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/__init__.py +0 -0
  215. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/_dc_reader.py +0 -0
  216. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/display.py +0 -0
  217. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/led_segment.py +0 -0
  218. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/media.py +0 -0
  219. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/overlay.py +0 -0
  220. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/settings.py +0 -0
  221. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/services/theme.py +0 -0
  222. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/__init__.py +0 -0
  223. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/__init__.py +0 -0
  224. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/_shared.py +0 -0
  225. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/devices.py +0 -0
  226. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/display.py +0 -0
  227. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/led.py +0 -0
  228. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/main.py +0 -0
  229. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/schemas.py +0 -0
  230. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/api/system.py +0 -0
  231. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/cli/__init__.py +0 -0
  232. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/cli/_ctx.py +0 -0
  233. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/cli/device.py +0 -0
  234. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/cli/display.py +0 -0
  235. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/cli/led.py +0 -0
  236. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/cli/main.py +0 -0
  237. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/cli/system.py +0 -0
  238. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/gui/__init__.py +0 -0
  239. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/gui/app.py +0 -0
  240. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/gui/bus_bridge.py +0 -0
  241. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/gui/panels/__init__.py +0 -0
  242. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/gui/panels/device_panel.py +0 -0
  243. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/gui/panels/display_panel.py +0 -0
  244. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/next/ui/gui/panels/led_panel.py +0 -0
  245. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/__init__.py +0 -0
  246. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/audio.py +0 -0
  247. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/device.py +0 -0
  248. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/display.py +0 -0
  249. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/display_loops.py +0 -0
  250. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/display_pipeline.py +0 -0
  251. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/image.py +0 -0
  252. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/lcd_config.py +0 -0
  253. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/led_config.py +0 -0
  254. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/led_effects.py +0 -0
  255. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/media.py +0 -0
  256. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/overlay.py +0 -0
  257. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/perf.py +0 -0
  258. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/system.py +0 -0
  259. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/theme.py +0 -0
  260. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/theme_loader.py +0 -0
  261. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/theme_persistence.py +0 -0
  262. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/services/video_cache.py +0 -0
  263. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/__init__.py +0 -0
  264. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/control_center.py +0 -0
  265. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/devices.py +0 -0
  266. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/display.py +0 -0
  267. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/i18n.py +0 -0
  268. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/models.py +0 -0
  269. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/system.py +0 -0
  270. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/themes.py +0 -0
  271. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/api/trcc.py +0 -0
  272. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/__init__.py +0 -0
  273. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/__main__.py +0 -0
  274. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_connect.py +0 -0
  275. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_control_center.py +0 -0
  276. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_device.py +0 -0
  277. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_diag.py +0 -0
  278. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_display.py +0 -0
  279. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_i18n.py +0 -0
  280. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_led.py +0 -0
  281. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_status.py +0 -0
  282. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_system.py +0 -0
  283. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/cli/_theme.py +0 -0
  284. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/240240.gif +0 -0
  285. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/240320.gif +0 -0
  286. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/320240.gif +0 -0
  287. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/320320.gif +0 -0
  288. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AK120 Digital.png +0 -0
  289. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AK120 Digitala.png +0 -0
  290. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AK120_Digital.png +0 -0
  291. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AK120_Digitala.png +0 -0
  292. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AS120 VISION.png +0 -0
  293. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AS120 VISIONa.png +0 -0
  294. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AS120_VISION.png +0 -0
  295. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AS120_VISIONa.png +0 -0
  296. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AX120 DIGITAL.png +0 -0
  297. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AX120 DIGITALa.png +0 -0
  298. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AX120_DIGITAL.png +0 -0
  299. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1AX120_DIGITALa.png +0 -0
  300. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1BA120 VISION.png +0 -0
  301. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1BA120 VISIONa.png +0 -0
  302. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1BA120_VISION.png +0 -0
  303. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1BA120_VISIONa.png +0 -0
  304. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CORE VISION.png +0 -0
  305. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CORE VISIONa.png +0 -0
  306. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CORE_VISION.png +0 -0
  307. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CORE_VISIONa.png +0 -0
  308. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CZ1.png +0 -0
  309. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CZ1a.png +0 -0
  310. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CZ2.png +0 -0
  311. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CZ2a.png +0 -0
  312. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CZTV.png +0 -0
  313. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1CZTVa.png +0 -0
  314. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1ELITE VISION.png +0 -0
  315. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1ELITE VISIONa.png +0 -0
  316. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1ELITE_VISION.png +0 -0
  317. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1ELITE_VISIONa.png +0 -0
  318. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PRO.png +0 -0
  319. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PROa.png +0 -0
  320. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PRO.png +0 -0
  321. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PROa.png +0 -0
  322. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN VISION V2.png +0 -0
  323. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN VISION V2a.png +0 -0
  324. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PRO.png +0 -0
  325. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PROa.png +0 -0
  326. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SE.png +0 -0
  327. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SEa.png +0 -0
  328. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME.png +0 -0
  329. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAMEa.png +0 -0
  330. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PRO.png +0 -0
  331. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PROa.png +0 -0
  332. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PRO.png +0 -0
  333. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PROa.png +0 -0
  334. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2.png +0 -0
  335. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2a.png +0 -0
  336. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME.png +0 -0
  337. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PRO.png +0 -0
  338. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PROa.png +0 -0
  339. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SE.png +0 -0
  340. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SEa.png +0 -0
  341. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAMEa.png +0 -0
  342. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1GRAND VISION.png +0 -0
  343. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1GRAND VISIONa.png +0 -0
  344. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1GRAND_VISION.png +0 -0
  345. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1GRAND_VISIONa.png +0 -0
  346. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITAL.png +0 -0
  347. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITALa.png +0 -0
  348. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1HYPER VISION.png +0 -0
  349. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1HYPER VISIONa.png +0 -0
  350. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1HYPER_VISION.png +0 -0
  351. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1HYPER_VISIONa.png +0 -0
  352. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1KVMALEDC6.png +0 -0
  353. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1KVMALEDC6a.png +0 -0
  354. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC1.png +0 -0
  355. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC1a.png +0 -0
  356. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC2.png +0 -0
  357. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC2JD.png +0 -0
  358. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC2JDa.png +0 -0
  359. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC2a.png +0 -0
  360. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC3.png +0 -0
  361. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC3a.png +0 -0
  362. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC5.png +0 -0
  363. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC5a.png +0 -0
  364. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC7.png +0 -0
  365. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC7a.png +0 -0
  366. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC8.png +0 -0
  367. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC8a.png +0 -0
  368. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC9.png +0 -0
  369. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LC9a.png +0 -0
  370. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD10.png +0 -0
  371. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD10a.png +0 -0
  372. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD6.png +0 -0
  373. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD6a.png +0 -0
  374. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD7.png +0 -0
  375. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD7a.png +0 -0
  376. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD8.png +0 -0
  377. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD8a.png +0 -0
  378. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD9.png +0 -0
  379. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LD9a.png +0 -0
  380. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF10.png +0 -0
  381. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF10V.png +0 -0
  382. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF10Va.png +0 -0
  383. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF10a.png +0 -0
  384. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF11.png +0 -0
  385. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF11a.png +0 -0
  386. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF12.png +0 -0
  387. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF12a.png +0 -0
  388. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF13.png +0 -0
  389. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF13a.png +0 -0
  390. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF14.png +0 -0
  391. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF14a.png +0 -0
  392. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF15.png +0 -0
  393. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF15a.png +0 -0
  394. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF16.png +0 -0
  395. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF167.png +0 -0
  396. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF16a.png +0 -0
  397. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF17a.png +0 -0
  398. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF18.png +0 -0
  399. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF18a.png +0 -0
  400. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF19.png +0 -0
  401. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF19a.png +0 -0
  402. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF20.png +0 -0
  403. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF20a.png +0 -0
  404. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF21.png +0 -0
  405. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF21a.png +0 -0
  406. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF22.png +0 -0
  407. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF22a.png +0 -0
  408. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF25.png +0 -0
  409. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF25a.png +0 -0
  410. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF8.png +0 -0
  411. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LF8a.png +0 -0
  412. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM16SE.png +0 -0
  413. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM16SEa.png +0 -0
  414. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM19SE.png +0 -0
  415. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM19SEa.png +0 -0
  416. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM22.png +0 -0
  417. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM22a.png +0 -0
  418. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM24.png +0 -0
  419. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM24a.png +0 -0
  420. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM26.png +0 -0
  421. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM26a.png +0 -0
  422. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM27.png +0 -0
  423. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM27a.png +0 -0
  424. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM30.png +0 -0
  425. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1LM30a.png +0 -0
  426. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir VISION PRO.png +0 -0
  427. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir VISION PROa.png +0 -0
  428. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir VISION.png +0 -0
  429. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir VISIONa.png +0 -0
  430. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir_VISION.png +0 -0
  431. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PRO.png +0 -0
  432. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PROa.png +0 -0
  433. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Mjolnir_VISIONa.png +0 -0
  434. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1PA120 DIGITAL.png +0 -0
  435. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1PA120 DIGITALa.png +0 -0
  436. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1PA120_DIGITAL.png +0 -0
  437. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1PA120_DIGITALa.png +0 -0
  438. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1PC1.png +0 -0
  439. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1PC1a.png +0 -0
  440. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RK120 DIGITAL.png +0 -0
  441. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RK120 DIGITALa.png +0 -0
  442. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RK120_DIGITAL.png +0 -0
  443. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RK120_DIGITALa.png +0 -0
  444. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RP130 VISION.png +0 -0
  445. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RP130 VISIONa.png +0 -0
  446. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RP130_VISION.png +0 -0
  447. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1RP130_VISIONa.png +0 -0
  448. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Stream Vision.png +0 -0
  449. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Stream Visiona.png +0 -0
  450. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Stream_Vision.png +0 -0
  451. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/A1Stream_Visiona.png +0 -0
  452. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/about_dropdown.png +0 -0
  453. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/about_dropdown_bg.png +0 -0
  454. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/about_dropdown_select.png +0 -0
  455. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/about_update.png +0 -0
  456. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/about_update_overlay.png +0 -0
  457. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_about_bg.png +0 -0
  458. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_brightness_0.png +0 -0
  459. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_brightness_1.png +0 -0
  460. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_brightness_2.png +0 -0
  461. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_brightness_3.png +0 -0
  462. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_export.png +0 -0
  463. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_form_bg.png +0 -0
  464. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_help.png +0 -0
  465. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_import.png +0 -0
  466. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_main_bg.png +0 -0
  467. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_power.png +0 -0
  468. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_power_hover.png +0 -0
  469. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_save.png +0 -0
  470. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_sysinfo_bg.png +0 -0
  471. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_cloud.png +0 -0
  472. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_cloud_active.png +0 -0
  473. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_local.png +0 -0
  474. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_local_active.png +0 -0
  475. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_mask.png +0 -0
  476. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_mask_active.png +0 -0
  477. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_mask_lower.png +0 -0
  478. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_settings.png +0 -0
  479. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_tab_settings_active.png +0 -0
  480. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_theme_base_bg.png +0 -0
  481. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_theme_gallery_bg.png +0 -0
  482. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/app_theme_settings_bg.png +0 -0
  483. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_1.png +0 -0
  484. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_2.png +0 -0
  485. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_3.png +0 -0
  486. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_4.png +0 -0
  487. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_5.png +0 -0
  488. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_6.png +0 -0
  489. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_btn.png +0 -0
  490. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_btn_active.png +0 -0
  491. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/carousel_select_frame.png +0 -0
  492. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_panel_eyedropper.png +0 -0
  493. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_panel_picker.png +0 -0
  494. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_panel_selector_ring.png +0 -0
  495. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_panel_slider_thumb.png +0 -0
  496. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_wheel_knob.png +0 -0
  497. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_wheel_knob_0.png +0 -0
  498. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_wheel_toggle_hover.png +0 -0
  499. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_wheel_toggle_off.png +0 -0
  500. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/color_wheel_toggle_on.png +0 -0
  501. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_12h.png +0 -0
  502. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_24h.png +0 -0
  503. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_border.png +0 -0
  504. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_border_active.png +0 -0
  505. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_crop.png +0 -0
  506. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_date_dm.png +0 -0
  507. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_date_dmy.png +0 -0
  508. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_date_md.png +0 -0
  509. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_date_ymd.png +0 -0
  510. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_digit_font.png +0 -0
  511. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_fit_height.png +0 -0
  512. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_fit_width.png +0 -0
  513. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_function.png +0 -0
  514. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_function_active.png +0 -0
  515. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_icon.png +0 -0
  516. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_icon_gif.png +0 -0
  517. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_icon_image.png +0 -0
  518. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_icon_livestream.png +0 -0
  519. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_icon_mask.png +0 -0
  520. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_icon_network.png +0 -0
  521. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_icon_video.png +0 -0
  522. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m1.png +0 -0
  523. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m1_active.png +0 -0
  524. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m2.png +0 -0
  525. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m2_active.png +0 -0
  526. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m3.png +0 -0
  527. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m3_active.png +0 -0
  528. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m4.png +0 -0
  529. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m4_active.png +0 -0
  530. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m5.png +0 -0
  531. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m5_active.png +0 -0
  532. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m6.png +0 -0
  533. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_m6_active.png +0 -0
  534. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_minus.png +0 -0
  535. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_network_btn.png +0 -0
  536. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_plus.png +0 -0
  537. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_rotate.png +0 -0
  538. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_slider_thumb.png +0 -0
  539. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_text_font.png +0 -0
  540. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_unit_c.png +0 -0
  541. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/display_mode_unit_f.png +0 -0
  542. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/frozen_warframe_ultra.png +0 -0
  543. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/frozen_warframe_ultra_active.png +0 -0
  544. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_110x480.png +0 -0
  545. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_116x480.png +0 -0
  546. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_1280x480.png +0 -0
  547. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_160x480.png +0 -0
  548. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_180x400.png +0 -0
  549. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_180x480.png +0 -0
  550. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_240x240.png +0 -0
  551. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_240x320.png +0 -0
  552. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_240x400.png +0 -0
  553. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_240x427.png +0 -0
  554. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_270x480.png +0 -0
  555. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_320x240.png +0 -0
  556. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_320x320.png +0 -0
  557. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_320x86.png +0 -0
  558. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_360x360.png +0 -0
  559. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_400x180.png +0 -0
  560. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_400x240.png +0 -0
  561. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_427x240.png +0 -0
  562. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_480x110.png +0 -0
  563. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_480x116.png +0 -0
  564. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_480x160.png +0 -0
  565. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_480x180.png +0 -0
  566. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_480x270.png +0 -0
  567. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_480x480.png +0 -0
  568. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/image_cut_86x320.png +0 -0
  569. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_aggregate.png +0 -0
  570. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_aggregate_active.png +0 -0
  571. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_cz1.png +0 -0
  572. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_kvma.png +0 -0
  573. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lc1.png +0 -0
  574. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lc2.png +0 -0
  575. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lf10.png +0 -0
  576. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lf11.png +0 -0
  577. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lf12.png +0 -0
  578. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lf13.png +0 -0
  579. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lf15.png +0 -0
  580. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_lf8.png +0 -0
  581. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_rgb_lf13.png +0 -0
  582. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_segment.png +0 -0
  583. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_bg_segment_4zone.png +0 -0
  584. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_dropdown.png +0 -0
  585. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_dropdown_2.png +0 -0
  586. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_dropdown_highlight.png +0 -0
  587. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_dropdown_highlight_2.png +0 -0
  588. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_dropdown_menu.png +0 -0
  589. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_dropdown_menu_2.png +0 -0
  590. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_external.png +0 -0
  591. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_external_active.png +0 -0
  592. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_helmet_1.png +0 -0
  593. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_helmet_2.png +0 -0
  594. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_helmet_3.png +0 -0
  595. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_helmet_4.png +0 -0
  596. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_helmet_5.png +0 -0
  597. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bar_1.png +0 -0
  598. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bar_2.png +0 -0
  599. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bar_3.png +0 -0
  600. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bar_4.png +0 -0
  601. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bar_5.png +0 -0
  602. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bar_6.png +0 -0
  603. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bg_1.png +0 -0
  604. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bg_2.png +0 -0
  605. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bg_3.png +0 -0
  606. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bg_4.png +0 -0
  607. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bg_5.png +0 -0
  608. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bg_5_active.png +0 -0
  609. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_meter_bg_6.png +0 -0
  610. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_1.png +0 -0
  611. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_10.png +0 -0
  612. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_10_active.png +0 -0
  613. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_11.png +0 -0
  614. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_11_active.png +0 -0
  615. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_12.png +0 -0
  616. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_12_active.png +0 -0
  617. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_1_active.png +0 -0
  618. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_2.png +0 -0
  619. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_2_active.png +0 -0
  620. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_3.png +0 -0
  621. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_3_active.png +0 -0
  622. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_4.png +0 -0
  623. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_4_active.png +0 -0
  624. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_5.png +0 -0
  625. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_5_active.png +0 -0
  626. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_6.png +0 -0
  627. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_6_active.png +0 -0
  628. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_7.png +0 -0
  629. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_7_active.png +0 -0
  630. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_8.png +0 -0
  631. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_8_active.png +0 -0
  632. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_9.png +0 -0
  633. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_mode_9_active.png +0 -0
  634. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_power.png +0 -0
  635. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_power_active.png +0 -0
  636. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_blue.png +0 -0
  637. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_cyan.png +0 -0
  638. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_green.png +0 -0
  639. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_orange.png +0 -0
  640. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_purple.png +0 -0
  641. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_red.png +0 -0
  642. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_white.png +0 -0
  643. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preset_yellow.png +0 -0
  644. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_ak120.png +0 -0
  645. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_ax120.png +0 -0
  646. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_cz1.png +0 -0
  647. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_frozen_horizon_pro.png +0 -0
  648. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_frozen_magic_pro.png +0 -0
  649. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lc1.png +0 -0
  650. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lc2.png +0 -0
  651. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lf10.png +0 -0
  652. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lf11.png +0 -0
  653. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lf12.png +0 -0
  654. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lf13.png +0 -0
  655. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lf15.png +0 -0
  656. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_lf8.png +0 -0
  657. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_pa120.png +0 -0
  658. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_preview_pa120_space.png +0 -0
  659. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_show_1.png +0 -0
  660. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_show_1_active.png +0 -0
  661. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_show_2.png +0 -0
  662. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_show_2_active.png +0 -0
  663. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_show_3.png +0 -0
  664. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_show_3_active.png +0 -0
  665. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_slider_thumb.png +0 -0
  666. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_1.png +0 -0
  667. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_1_active.png +0 -0
  668. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_2.png +0 -0
  669. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_2_active.png +0 -0
  670. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_3.png +0 -0
  671. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_3_active.png +0 -0
  672. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_4.png +0 -0
  673. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_btn_4_active.png +0 -0
  674. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_1.png +0 -0
  675. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_1_active.png +0 -0
  676. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_2.png +0 -0
  677. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_2_active.png +0 -0
  678. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_3.png +0 -0
  679. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_3_active.png +0 -0
  680. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_4.png +0 -0
  681. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_4_active.png +0 -0
  682. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_5.png +0 -0
  683. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_5_active.png +0 -0
  684. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_6.png +0 -0
  685. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/led_zone_mode_6_active.png +0 -0
  686. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_sysinfo.png +0 -0
  687. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_en.png +0 -0
  688. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_tc.png +0 -0
  689. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_sysinfo_en.png +0 -0
  690. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_sysinfo_tc.png +0 -0
  691. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_text.png +0 -0
  692. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_text_en.png +0 -0
  693. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_text_tc.png +0 -0
  694. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_time.png +0 -0
  695. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_time_en.png +0 -0
  696. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_label_time_tc.png +0 -0
  697. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_mode_date.png +0 -0
  698. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_mode_hardware.png +0 -0
  699. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_mode_text.png +0 -0
  700. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_mode_time.png +0 -0
  701. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_mode_weekday.png +0 -0
  702. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/overlay_select.png +0 -0
  703. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_110x480.png +0 -0
  704. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_116x480.png +0 -0
  705. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_160x480.png +0 -0
  706. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_180x400.png +0 -0
  707. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_180x480.png +0 -0
  708. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_240x240.png +0 -0
  709. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_240x320.png +0 -0
  710. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_240x400.png +0 -0
  711. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_240x427.png +0 -0
  712. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_270x480.png +0 -0
  713. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_320x240.png +0 -0
  714. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_320x320.png +0 -0
  715. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_320x320_round.png +0 -0
  716. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_320x86.png +0 -0
  717. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_360x360_round.png +0 -0
  718. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_400x180.png +0 -0
  719. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_400x240.png +0 -0
  720. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_427x240.png +0 -0
  721. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_480x110.png +0 -0
  722. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_480x116.png +0 -0
  723. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_480x160.png +0 -0
  724. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_480x180.png +0 -0
  725. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_480x270.png +0 -0
  726. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_480x480.png +0 -0
  727. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_480x480_round.png +0 -0
  728. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_86x320.png +0 -0
  729. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_animation.png +0 -0
  730. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_btn.png +0 -0
  731. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_btn_active.png +0 -0
  732. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_pause.png +0 -0
  733. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_play.png +0 -0
  734. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_player_control_bg.png +0 -0
  735. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_1280x480.png +0 -0
  736. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_1920x440.png +0 -0
  737. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_1920x462.png +0 -0
  738. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_320x960.png +0 -0
  739. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_360x800.png +0 -0
  740. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_440x1920.png +0 -0
  741. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_462x1920.png +0 -0
  742. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_480x1280.png +0 -0
  743. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_480x800.png +0 -0
  744. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_480x854.png +0 -0
  745. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_540x960.png +0 -0
  746. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_800x360.png +0 -0
  747. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_800x480.png +0 -0
  748. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_854x480.png +0 -0
  749. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_960x320.png +0 -0
  750. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_popup_960x540.png +0 -0
  751. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_res_240x240.png +0 -0
  752. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_res_240x320.png +0 -0
  753. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_res_320x240.png +0 -0
  754. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_res_320x320.png +0 -0
  755. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_round_mask_320x320.png +0 -0
  756. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_round_mask_360x360.png +0 -0
  757. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_round_mask_480x480.png +0 -0
  758. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_video_controls_bg.png +0 -0
  759. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/preview_video_controls_bg_alt.png +0 -0
  760. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/screen_led_deco_1.png +0 -0
  761. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/screen_led_deco_2.png +0 -0
  762. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/screen_led_deco_3.png +0 -0
  763. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/screen_led_deco_4.png +0 -0
  764. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/screen_led_deco_cz1.png +0 -0
  765. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg.png +0 -0
  766. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_d.png +0 -0
  767. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_e.png +0 -0
  768. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_en.png +0 -0
  769. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_f.png +0 -0
  770. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_h.png +0 -0
  771. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_p.png +0 -0
  772. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_r.png +0 -0
  773. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_tc.png +0 -0
  774. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/secondary_screen_bg_x.png +0 -0
  775. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_content.png +0 -0
  776. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_content_btn.png +0 -0
  777. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_content_mask.png +0 -0
  778. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_date.png +0 -0
  779. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_date_1.png +0 -0
  780. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_icon.png +0 -0
  781. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_link_1.png +0 -0
  782. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_text.png +0 -0
  783. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_text_1.png +0 -0
  784. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_time.png +0 -0
  785. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_time_1.png +0 -0
  786. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_weekday.png +0 -0
  787. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_add_weekday_1.png +0 -0
  788. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_anim_sync.png +0 -0
  789. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_background.png +0 -0
  790. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_brightness.png +0 -0
  791. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_keyboard_sync_1.png +0 -0
  792. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_keyboard_sync_2.png +0 -0
  793. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_keyboard_sync_3.png +0 -0
  794. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_module.png +0 -0
  795. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_overlay.png +0 -0
  796. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_overlay_add_bg.png +0 -0
  797. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_overlay_color_bg.png +0 -0
  798. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_overlay_grid_bg.png +0 -0
  799. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_overlay_table_bg.png +0 -0
  800. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/settings_params.png +0 -0
  801. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_brightness_bar.png +0 -0
  802. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_checkbox_off.png +0 -0
  803. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_checkbox_on.png +0 -0
  804. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_clip_a.png +0 -0
  805. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_clip_b.png +0 -0
  806. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_close.png +0 -0
  807. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_close_2.png +0 -0
  808. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_dropdown.png +0 -0
  809. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_dropdown_bg_2x.png +0 -0
  810. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_dropdown_bg_4x.png +0 -0
  811. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_dropdown_highlight.png +0 -0
  812. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_loading_animation.png +0 -0
  813. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_progress_bar.png +0 -0
  814. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_round_close.png +0 -0
  815. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_round_confirm.png +0 -0
  816. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_scrollbar_bg.png +0 -0
  817. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_scrollbar_thumb.png +0 -0
  818. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_shortcut_size_slider.png +0 -0
  819. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_thread_multi.png +0 -0
  820. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_thread_single.png +0 -0
  821. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_toggle_off.png +0 -0
  822. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shared_toggle_on.png +0 -0
  823. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel.png +0 -0
  824. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_d.png +0 -0
  825. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_e.png +0 -0
  826. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_en.png +0 -0
  827. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_f.png +0 -0
  828. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_p.png +0 -0
  829. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_r.png +0 -0
  830. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_tc.png +0 -0
  831. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/shortcuts_panel_x.png +0 -0
  832. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_about.png +0 -0
  833. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_about_active.png +0 -0
  834. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_about_bg.png +0 -0
  835. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_bg.png +0 -0
  836. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_no_device.png +0 -0
  837. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_sensor.png +0 -0
  838. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_sensor_active.png +0 -0
  839. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_splash.png +0 -0
  840. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sidebar_sysinfo_bg.png +0 -0
  841. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_a.png +0 -0
  842. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_a_180.png +0 -0
  843. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_a_270.png +0 -0
  844. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_a_90.png +0 -0
  845. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_b.png +0 -0
  846. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_b_180.png +0 -0
  847. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_b_270.png +0 -0
  848. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_b_90.png +0 -0
  849. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_c.png +0 -0
  850. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_c_180.png +0 -0
  851. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_c_270.png +0 -0
  852. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/split_overlay_c_90.png +0 -0
  853. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_add_group.png +0 -0
  854. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_cpu.png +0 -0
  855. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_custom.png +0 -0
  856. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_dram.png +0 -0
  857. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_fan.png +0 -0
  858. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_gpu.png +0 -0
  859. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_hdd.png +0 -0
  860. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_net.png +0 -0
  861. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_next_page.png +0 -0
  862. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_prev_page.png +0 -0
  863. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_scrollbar.png +0 -0
  864. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/sysinfo_select.png +0 -0
  865. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_browser_filter.png +0 -0
  866. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_browser_filter_active.png +0 -0
  867. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label.png +0 -0
  868. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_d.png +0 -0
  869. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_e.png +0 -0
  870. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_en.png +0 -0
  871. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_f.png +0 -0
  872. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_h.png +0 -0
  873. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_p.png +0 -0
  874. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_r.png +0 -0
  875. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_tc.png +0 -0
  876. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_cloud_label_x.png +0 -0
  877. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_local_carousel.png +0 -0
  878. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_local_carousel_active.png +0 -0
  879. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_local_export_all.png +0 -0
  880. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_local_multi_select.png +0 -0
  881. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_local_multi_select_active.png +0 -0
  882. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_local_select_frame.png +0 -0
  883. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_local_select_frame_active.png +0 -0
  884. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/theme_mask_label.png +0 -0
  885. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_110x480.png +0 -0
  886. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_116x480.png +0 -0
  887. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_1280x480.png +0 -0
  888. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_160x480.png +0 -0
  889. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_180x400.png +0 -0
  890. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_180x480.png +0 -0
  891. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_240x240.png +0 -0
  892. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_240x320.png +0 -0
  893. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_240x400.png +0 -0
  894. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_240x427.png +0 -0
  895. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_270x480.png +0 -0
  896. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_320x240.png +0 -0
  897. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_320x320.png +0 -0
  898. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_320x86.png +0 -0
  899. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_360x360.png +0 -0
  900. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_400x180.png +0 -0
  901. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_400x240.png +0 -0
  902. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_427x240.png +0 -0
  903. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_480x110.png +0 -0
  904. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_480x116.png +0 -0
  905. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_480x160.png +0 -0
  906. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_480x180.png +0 -0
  907. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_480x270.png +0 -0
  908. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_480x480.png +0 -0
  909. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_86x320.png +0 -0
  910. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_bg.png +0 -0
  911. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets/video_cut_bg_alt.png +0 -0
  912. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/assets.py +0 -0
  913. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/base.py +0 -0
  914. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/color_and_add_panels.py +0 -0
  915. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/constants.py +0 -0
  916. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/display_mode_panels.py +0 -0
  917. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/eyedropper.py +0 -0
  918. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/lcd_handler.py +0 -0
  919. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/led_handler.py +0 -0
  920. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/metrics_mediator.py +0 -0
  921. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/overlay_element.py +0 -0
  922. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/overlay_grid.py +0 -0
  923. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/pipewire_capture.py +0 -0
  924. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/screen_capture.py +0 -0
  925. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/splash.py +0 -0
  926. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/trcc_app.py +0 -0
  927. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_about.py +0 -0
  928. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_activity_sidebar.py +0 -0
  929. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_color_wheel.py +0 -0
  930. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_device.py +0 -0
  931. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_image_cut.py +0 -0
  932. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_info_module.py +0 -0
  933. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_led_control.py +0 -0
  934. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_preview.py +0 -0
  935. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_screen_led.py +0 -0
  936. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_sensor_picker.py +0 -0
  937. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_system_info.py +0 -0
  938. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_theme_local.py +0 -0
  939. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_theme_mask.py +0 -0
  940. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_theme_setting.py +0 -0
  941. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_theme_web.py +0 -0
  942. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/src/trcc/ui/gui/uc_video_cut.py +0 -0
  943. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/README.md +0 -0
  944. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/__init__.py +0 -0
  945. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/__init__.py +0 -0
  946. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/__init__.py +0 -0
  947. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/bsd/__init__.py +0 -0
  948. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/bsd/test_detector.py +0 -0
  949. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/bsd/test_scsi.py +0 -0
  950. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/bsd/test_scsi_protocol.py +0 -0
  951. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/conftest.py +0 -0
  952. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/linux/__init__.py +0 -0
  953. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/linux/test_scsi.py +0 -0
  954. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/macos/__init__.py +0 -0
  955. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/macos/test_detector.py +0 -0
  956. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/macos/test_scsi.py +0 -0
  957. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_bulk.py +0 -0
  958. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_detector.py +0 -0
  959. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_frame.py +0 -0
  960. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_implementations.py +0 -0
  961. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_led.py +0 -0
  962. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_led_kvm.py +0 -0
  963. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_ly.py +0 -0
  964. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/test_scsi.py +0 -0
  965. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/windows/__init__.py +0 -0
  966. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/windows/test_detector.py +0 -0
  967. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/device/windows/test_scsi.py +0 -0
  968. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/__init__.py +0 -0
  969. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_data_repository.py +0 -0
  970. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_dc_config.py +0 -0
  971. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_dc_parser.py +0 -0
  972. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_dc_writer.py +0 -0
  973. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_debug_report.py +0 -0
  974. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_media_player.py +0 -0
  975. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_theme_cloud.py +0 -0
  976. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/infra/test_theme_downloader.py +0 -0
  977. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/__init__.py +0 -0
  978. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/bsd/__init__.py +0 -0
  979. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/bsd/test_hardware.py +0 -0
  980. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/bsd/test_sensors.py +0 -0
  981. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/conftest.py +0 -0
  982. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/linux/__init__.py +0 -0
  983. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/linux/test_hardware.py +0 -0
  984. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/linux/test_sensors.py +0 -0
  985. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/macos/__init__.py +0 -0
  986. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/macos/test_hardware.py +0 -0
  987. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/macos/test_powermetrics_extra.py +0 -0
  988. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/macos/test_powermetrics_ipc.py +0 -0
  989. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/macos/test_powermetrics_plist.py +0 -0
  990. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/macos/test_sensors.py +0 -0
  991. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/test_config.py +0 -0
  992. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/windows/__init__.py +0 -0
  993. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/adapters/system/windows/test_hardware.py +0 -0
  994. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/api/__init__.py +0 -0
  995. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/api/conftest.py +0 -0
  996. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/api/test_api.py +0 -0
  997. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/api/test_api_security.py +0 -0
  998. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/__init__.py +0 -0
  999. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/conftest.py +0 -0
  1000. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/test_cli.py +0 -0
  1001. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/test_device.py +0 -0
  1002. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/test_display.py +0 -0
  1003. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/test_led.py +0 -0
  1004. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/test_serve.py +0 -0
  1005. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/test_system.py +0 -0
  1006. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/cli/test_theme.py +0 -0
  1007. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/__init__.py +0 -0
  1008. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_color.py +0 -0
  1009. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_device_isolation.py +0 -0
  1010. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_encoding.py +0 -0
  1011. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_geometry.py +0 -0
  1012. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_i18n.py +0 -0
  1013. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_io.py +0 -0
  1014. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_lcd_device.py +0 -0
  1015. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_led_segment.py +0 -0
  1016. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_led_segment_ax120.py +0 -0
  1017. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_paths.py +0 -0
  1018. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_perf.py +0 -0
  1019. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/core/test_wire.py +0 -0
  1020. /trcc_linux-9.6.0/tests/gui/__init__.py → /trcc_linux-9.6.2/tests/fixtures/hwinfo/.gitkeep +0 -0
  1021. {trcc_linux-9.6.0/tests/services → trcc_linux-9.6.2/tests/gui}/__init__.py +0 -0
  1022. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/conftest.py +0 -0
  1023. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_base.py +0 -0
  1024. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_base_panel.py +0 -0
  1025. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_constants.py +0 -0
  1026. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_lcd_handler.py +0 -0
  1027. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_led_control.py +0 -0
  1028. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_misc.py +0 -0
  1029. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_preview.py +0 -0
  1030. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_screen_capture.py +0 -0
  1031. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_theme_mask.py +0 -0
  1032. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_theme_setting.py +0 -0
  1033. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_trcc_app.py +0 -0
  1034. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/gui/test_widgets.py +0 -0
  1035. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/__init__.py +0 -0
  1036. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/conftest.py +0 -0
  1037. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/test_autostart.py +0 -0
  1038. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/test_commands.py +0 -0
  1039. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/test_dc_reader.py +0 -0
  1040. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/test_sensors.py +0 -0
  1041. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/test_theme_service.py +0 -0
  1042. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/test_transports.py +0 -0
  1043. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/next/test_udev.py +0 -0
  1044. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/conftest.py +0 -0
  1045. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_device.py +0 -0
  1046. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_display_integration.py +0 -0
  1047. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_image_ansi.py +0 -0
  1048. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_led_config.py +0 -0
  1049. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_led_effects.py +0 -0
  1050. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_media.py +0 -0
  1051. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_overlay.py +0 -0
  1052. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_perf.py +0 -0
  1053. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_services.py +0 -0
  1054. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_system.py +0 -0
  1055. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_theme.py +0 -0
  1056. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_theme_loader.py +0 -0
  1057. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_theme_persistence.py +0 -0
  1058. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/services/test_video_cache.py +0 -0
  1059. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/test_conf.py +0 -0
  1060. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/test_cpu.py +0 -0
  1061. {trcc_linux-9.6.0 → trcc_linux-9.6.2}/tests/test_integration.py +0 -0
  1062. {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.0
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.0"
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 make_platform
44
- trcc = Trcc(make_platform())
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.
@@ -1,4 +1,4 @@
1
1
  """TRCC Linux version information. History in doc/CHANGELOG.md."""
2
2
 
3
- __version__ = "9.6.0"
3
+ __version__ = "9.6.2"
4
4
  __version_info__ = tuple(int(x) for x in __version__.split("."))
@@ -106,7 +106,7 @@ def trcc(
106
106
 
107
107
  Parameters:
108
108
  platform: DI override. ``None`` triggers OS detection via
109
- ``make_platform()``. Tests pass ``MockPlatform`` to skip USB.
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 make_platform
147
- platform = make_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
- *, addr: UsbAddress | None = None,
41
+ *, usb_address: UsbAddress | None = None,
42
42
  ) -> None:
43
43
  self._vid = vid
44
44
  self._pid = pid
45
- self._addr = addr # bind to specific (bus, address) — issue #128
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._addr is not None:
62
- kwargs['custom_match'] = self._addr.matches
63
- dev: Any = usb.core.find(**kwargs)
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._addr}" if self._addr else ""
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
- import usb.core # type: ignore[import-untyped]
112
+ from . import _pyusb_find
113
113
 
114
114
  dev.reset() # type: ignore[union-attr]
115
115
  time.sleep(0.5)
116
- new_dev = usb.core.find(idVendor=vid, idProduct=pid)
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
- *, addr: UsbAddress | None = None,
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
- ``addr`` (bus + address) binds to a specific physical USB device when two
138
- coolers share VID:PID (issue #128). Without it, pyusb returns the first
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 addr is not None:
153
- kwargs['custom_match'] = addr.matches
154
- dev = usb.core.find(**kwargs)
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" @ {addr}" if addr else ""
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
- *, addr: UsbAddress | None = None,
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.addr = addr # bus+addr — disambiguates dual same-VID/PID coolers (#128)
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, addr=self.addr)
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.create_detect_fn(). SCSI devices are
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
- *, addr: UsbAddress | None = None,
31
+ *, usb_address: UsbAddress | None = None,
32
32
  ):
33
33
  super().__init__()
34
34
  self._vid = vid
35
35
  self._pid = pid
36
- self._addr = addr # disambiguates dual same-VID/PID coolers (#128)
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
- *, addr: UsbAddress | None = None,
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._addr}" if self._addr else "")
51
- self._device = self._make_device(self._vid, self._pid, addr=self._addr)
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
- *, addr: UsbAddress | None = None,
101
+ *, usb_address: UsbAddress | None = None,
102
102
  ) -> Any:
103
103
  from .bulk import BulkDevice
104
- return BulkDevice(vid, pid, addr=addr)
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
- import usb.core # pyright: ignore[reportMissingImports]
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 (usb.core.find(find_all=True, idVendor=vid, idProduct=pid) or ()):
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
- *, addr: UsbAddress | None = None,
306
+ *, usb_address: UsbAddress | None = None,
304
307
  ):
305
308
  super().__init__()
306
309
  self._vid = vid
307
310
  self._pid = pid
308
- self._addr = addr # bus+address from detector — disambiguates dual same-VID/PID coolers
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._addr}" if self._addr else "")
316
+ f" @ {self._usb_address}" if self._usb_address else "")
314
317
  transport = DeviceProtocolFactory.create_usb_transport(
315
- self._vid, self._pid, addr=self._addr)
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
- *, addr: UsbAddress | None = None,
458
+ *, usb_address: UsbAddress | None = None,
456
459
  ):
457
460
  """Create the best available USB transport (pyusb preferred, hidapi fallback).
458
461
 
459
- ``addr`` (bus + address) binds the transport to a specific physical USB
460
- device — required when two coolers share the same VID:PID (issue #128).
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, addr=addr)
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, addr=addr)
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
- # Register concrete Protocol classes
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
- 'scsi': lambda di: ScsiProtocol(di.path, di.vid, di.pid),
619
- 'bulk': lambda di: BulkProtocol(vid=di.vid, pid=di.pid, addr=di.addr),
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
  }