Add EVision V3 (RDR tri-mode) keyboard controller
What this MR does
Adds support for EVision's current "RDR" tri-mode firmware keyboards
(VID 320F, shared PID 5055). These are sold under many brands:
Eternico MKS7150 (tested), Yenkee YKB 30, Womier SK75, Zuoya GMK87,
IQUNIX MG65, EvoFox Ronin, Kreo Hive, Rampage Parvus and more.
Related: #4831, #5131, #5155.
Unlike the older EVision keyboards handled by EVisionKeyboardController,
this firmware generation does not answer the legacy 0xFF1C vendor
protocol (packets are silently discarded). Instead it speaks the VIA
protocol v11 on its 0xFF60 raw HID interface, exposing hardware
effects on the VIA RGB matrix channel.
The new EVisionV3KeyboardController:
- talks VIA (
custom_set_value/custom_get_value/custom_save, RGB matrix channel) - exposes the firmware's 18 hardware effects + off, brightness 0-9, speed 0-4, HS color, manual save
- reads the device's current mode/color/brightness back at startup
- registers only when the device answers the VIA protocol version handshake, because PID 5055 is shared by the whole firmware family (some members use different silicon)
Also included:
EVisionKeyboardController: replace blockinghid_readwithhid_read_timeout(100 ms)— an unresponsive device otherwise hangs OpenRGB forever; responding devices are unaffectedcli.cpp: the device list printedGetLocation()under the "Version:" label; printGetVersion()instead
Testing
Tested on Eternico MKS7150 (AET-MKSB7150CSBRGB, USB name "RDR MKSB7150",
320f:5055, FW 1.00, VIA v11) on Arch Linux: detection, all listed
effects, color/brightness/speed changes and initial state read-back
verified against the physical device.