From 759be39fc7401e835e476e8dfa8c5c1661c18e88 Mon Sep 17 00:00:00 2001 From: Chris M Date: Wed, 25 Oct 2023 06:54:44 +1100 Subject: [PATCH] Initial commit for the Corsair K60 Pro TKL keyboard * Adding key layout and metadata to CorsairPeripheralV2Devices.cpp * Adding new detector * Resolves #3689 --- .../CorsairPeripheralV2ControllerDetect.cpp | 1 + .../CorsairPeripheralV2Devices.cpp | 50 +++++++++++++++++++ .../CorsairPeripheralV2Devices.h | 1 + 3 files changed, 52 insertions(+) diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp index 92a3bdd2..928196ad 100644 --- a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp +++ b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp @@ -60,6 +60,7 @@ void DetectCorsairV2SoftwareControllers(hid_device_info* info, const std::string REGISTER_HID_DETECTOR_IP("Corsair K55 RGB PRO", DetectCorsairV2SoftwareControllers, CORSAIR_VID, CORSAIR_K55_RGB_PRO_PID, 1, 0xFF42); REGISTER_HID_DETECTOR_IP("Corsair K60 RGB PRO", DetectCorsairV2SoftwareControllers, CORSAIR_VID, CORSAIR_K60_RGB_PRO_PID, 1, 0xFF42); REGISTER_HID_DETECTOR_IP("Corsair K60 RGB PRO Low Profile", DetectCorsairV2SoftwareControllers, CORSAIR_VID, CORSAIR_K60_RGB_PRO_LP_PID, 1, 0xFF42); +REGISTER_HID_DETECTOR_IP("Corsair K60 RGB PRO TKL", DetectCorsairV2HardwareControllers, CORSAIR_VID, CORSAIR_K60_RGB_PRO_TKL_PID, 1, 0xFF42); REGISTER_HID_DETECTOR_IP("Corsair K70 RGB TKL", DetectCorsairV2HardwareControllers, CORSAIR_VID, CORSAIR_K70_RGB_TKL_PID, 1, 0xFF42); REGISTER_HID_DETECTOR_IP("Corsair K70 RGB TKL Champion Series", DetectCorsairV2HardwareControllers, CORSAIR_VID, CORSAIR_K70_RGB_TKL_CS_PID, 1, 0xFF42); diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp index 57e8c5c6..59a00c28 100644 --- a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp +++ b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp @@ -56,6 +56,23 @@ keyboard_keymap_overlay_values corsair_K60_layout } }; +keyboard_keymap_overlay_values corsair_K60_tkl_layout +{ + KEYBOARD_SIZE::KEYBOARD_SIZE_TKL, + { + corsair_tkl_values, + { + /* Add more regional layout fixes here */ + } + }, + { + /*---------------------------------------------------------------------------------------------------------*\ + | Edit Keys | + | Zone, Row, Column, Value, Key, OpCode, | + \*---------------------------------------------------------------------------------------------------------*/ + } +}; + keyboard_keymap_overlay_values corsair_K70_TKL_cs_layout { KEYBOARD_SIZE::KEYBOARD_SIZE_TKL, @@ -424,6 +441,38 @@ static const corsair_v2_device k60_rgb_pro_lp_device = &corsair_K60_layout }; +/*-------------------------------------------------------------*\ +| Corsair K60 RGB Pro TKL 1B1C:1BC7 | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 21 Columns | +\*-------------------------------------------------------------*/ +static const corsair_v2_zone k60_rgb_pro_tkl_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 21 +}; + +static const corsair_v2_device k60_rgb_pro_tkl_device = +{ + CORSAIR_K60_RGB_PRO_TKL_PID, + DEVICE_TYPE_KEYBOARD, + 6, + 21, + { + &k60_rgb_pro_lp_zone, + nullptr, + nullptr, + nullptr, + nullptr, + nullptr + }, + &corsair_K60_tkl_layout +}; + /*-------------------------------------------------------------*\ | Corsair K70 RGB TKL 1B1C:1B73 | | | @@ -635,6 +684,7 @@ const corsair_v2_device* corsair_v2_device_list_data[] = &k55_rgb_pro_device, &k60_rgb_pro_device, &k60_rgb_pro_lp_device, + &k60_rgb_pro_tkl_device, &k70_rgb_tkl_device, &k70_rgb_tkl_cs_device, diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h index 825fd705..ced88ea1 100644 --- a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h +++ b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h @@ -62,6 +62,7 @@ typedef struct #define CORSAIR_K55_RGB_PRO_PID 0x1BA4 #define CORSAIR_K60_RGB_PRO_PID 0x1BA0 #define CORSAIR_K60_RGB_PRO_LP_PID 0x1BAD +#define CORSAIR_K60_RGB_PRO_TKL_PID 0x1BC7 #define CORSAIR_K70_RGB_TKL_PID 0x1B73 #define CORSAIR_K70_RGB_TKL_CS_PID 0x1BB9