* Detailed the QT version to avoid confusion when building prior to a shift to QT6
* Added links to download MSVC, QT and Git
* Added a link to wiki article to provide more detailed instructions
* Added new KEYBOARD_OPCODE enum
* Updated `keyboard_leds` to include new opcode
* Reorganised InsertKeys and SwapKeys to work with struct change
* Changed public interfaces to only accept opcode changes
* Updated static keyboard declarations to align with new structures
* Rework Insert and Swap functions to use index-based loops
* Insert shifts all keys after the inserted key in the same row to the right
* Swap inserts without shifting when swapping a key into an unused space
+ Added PID for the Deathstalker V2
+ Registered detectors
+ Added layout and metadata to RazerDevices.cpp
+ Added capabilities to RazerController.cpp
+ Resolves#2904
+ Adding PID for the Blade 15 Late 2021 Advanced
+ Registered detectors
+ Added metadata to RazerDevices.cpp
+ Added capabilities to RazerController.cpp
* Implements physical size:
Full Size
TKL
60%
* Implements regional layouts
ANSI QWERTY
ISO QWERTY
QWERTZ
AZERTY
JIS
* Customisible layouts produced by adding and swapping custom keys
allowing for keyboard SKU variants
* Exportable matrix maps filled by map count, matrix index or filled by an
array of values.
* Matrix map size adjustable to fixed width and height to support size
specific protocols. e.g. Razer
* Debug keyboards are customisable by adding the following values into
the JSON list.
"Layout" (int),
"Size" (int),
"Linear" (bool),
"Underglow" (bool),
"Insert" array[ { "Zone" (int), "Row" (int), "Col" (int), "Val"
(int), "Name": (string) } ],
"Swap" array[ { "Zone" (int), "Row" (int), "Col" (int), "Val" (int),
"Name": (string) } ]
* Added config to CorsairPeripheralV2Devices
* Adding device config to CorsairPeripheralV2Devices.cpp
* Extending the base CorsairPeripheralV2Controller to CorsairPeripheralV2HWController to account for HW modes
* Minor adjustments to the CorsairPeripheralV2SWController to accommodate
* Resolves#1951