Add the ROCCAT Vulcan II Mini (USB 1e7d:2f09) to the unified
RoccatVulcanKeyboardController driver:
- Detector: register PID 0x2F09 with control interface 1
(usage page 0xFF01) and LED interface 3 (usage page 0xFF00),
same as the Vulcan II family.
- Controller: v2 protocol parameters (init report 0x09, direct
enable 0x0E), colour frame of 345 bytes streamed as six 64-byte
packets (0xA1 prefix, RGB per LED), mode packet of 332 bytes with
the Mini-specific 0x02/0x0B header bytes.
- Layouts: US (68 LEDs) and UK (69 LEDs) 5x16 matrix maps with
per-key LED ids, covering the 60% block plus the nav cluster and
arrow keys.
Protocol constants and the LED index map are ported from Mola19's
unmerged branch (OpenRGB issue #3193) and are pending verification
against the USB captures and the physical device.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
* Reorganize and clean up RGBController API functions
* Add functions to get protected RGBController member values
* Make NetworkClient, ProfileManager, and ResourceManager friend classes so they can access protected members
* Protected previously-public RGBController members
* Information strings (name, vendor, description, version, serial location)
* Device type
* Active mode
* Flags
* LEDs vector
* LED alternate names vector
* Modes vector
* Colors vector
* Zones vector
* Add CONTROLLER_FLAG_HIDDEN to allow plugins to hide controllers from control GUI
* Add update reason codes to RGBController update callback and signal updates on more RGBController events
* Add loop zone types and segmented zone type
* Add matrix map field to segments
* Rework matrix_map_type from using pointers to vector to prevent memory leaks
* Rework KeyboardLayoutManager to return new matrix_map_type
* Add access mutex to RGBController API
* Add per-zone modes ot RGBController API
* Add JSON description functions to RGBController API