diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp index ebaaf302..2d6e8a38 100644 --- a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp +++ b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp @@ -65,6 +65,7 @@ REGISTER_HID_DETECTOR_IP("Corsair K60 RGB PRO TKL", DetectCorsai REGISTER_HID_DETECTOR_IP("Corsair K70 RGB PRO", DetectCorsairV2HardwareControllers, CORSAIR_VID, CORSAIR_K70_RGB_PRO_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); +REGISTER_HID_DETECTOR_IP("Corsair K100 RGB Optical", DetectCorsairV2HardwareControllers, CORSAIR_VID, CORSAIR_K100_OPTICAL_PID, 1, 0xFF42); /*-----------------------------------------------------------------------------------------------------*\ | Mice | diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp index 9ac9aba0..703acf51 100644 --- a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp +++ b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp @@ -117,6 +117,100 @@ keyboard_keymap_overlay_values corsair_K70_TKL_cs_layout } }; +keyboard_keymap_overlay_values corsair_k100_layout +{ + KEYBOARD_SIZE::KEYBOARD_SIZE_FULL, + { + corsair_full_size_values, + { + /* Add more regional layout fixes here */ + } + }, + { + /*---------------------------------------------------------------------------------------------------------*\ + | Edit Keys | + | Zone, Row, Column, Value, Key, OpCode, | + \*---------------------------------------------------------------------------------------------------------*/ + //media keys + { 0, 0, 17, 123, KEY_EN_MEDIA_STOP, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 18, 126, KEY_EN_MEDIA_PREVIOUS, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 19, 124, KEY_EN_MEDIA_PLAY_PAUSE, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 20, 125, KEY_EN_MEDIA_NEXT, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + //upper row + { 0, 0, 1, 128, "Profile", KEYBOARD_OPCODE_INSERT_ROW, }, + { 0, 0, 2, 137, "iCue", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 3, 114, "Lock", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 10, 190, "Logo L", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 11, 191, "Logo M", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 12, 192, "Logo R", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 18, 102, KEY_EN_MEDIA_MUTE, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + //macro keys + { 0, 1, 0, 131, "G1", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 2, 0, 132, "G2", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 3, 0, 133, "G3", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 4, 0, 134, "G4", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 5, 0, 135, "G5", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 6, 0, 136, "G6", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + //underglow 44 entries + //underglow upper + { 0, 0, 0, 138, "Underglow 1", KEYBOARD_OPCODE_INSERT_ROW, }, + { 0, 0, 1, 139, "Underglow 2", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 2, 140, "Underglow 3", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 3, 141, "Underglow 4", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 4, 142, "Underglow 5", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 5, 143, "Underglow 6", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 6, 144, "Underglow 7", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 7, 145, "Underglow 8", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 8, 146, "Underglow 9", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 9, 147, "Underglow 10", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 10, 148, "Underglow 11", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 11, 149, "Underglow 12", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 12, 150, "Underglow 13", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 13, 151, "Underglow 14", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 14, 152, "Underglow 15", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 15, 153, "Underglow 16", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 16, 154, "Underglow 17", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 17, 155, "Underglow 18", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 18, 156, "Underglow 19", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 19, 157, "Underglow 20", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 20, 158, "Underglow 21", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 21, 159, "Underglow 22", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + //underglow left + { 0, 0, 0, 160, "Underglow 23", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 1, 0, 161, "Underglow 24", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 2, 0, 162, "Underglow 25", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 3, 0, 163, "Underglow 26", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 4, 0, 164, "Underglow 27", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 5, 0, 165, "Underglow 28", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 6, 0, 166, "Underglow 29", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 7, 0, 167, "Underglow 30", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 8, 0, 168, "Underglow 31", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 9, 0, 169, "Underglow 32", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 10, 0, 170, "Underglow 33", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + //underglow right + { 0, 0, 23, 171, "Underglow 34", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 1, 23, 172, "Underglow 35", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 2, 23, 173, "Underglow 36", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 3, 23, 174, "Underglow 37", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 4, 23, 175, "Underglow 38", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 5, 23, 176, "Underglow 39", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 6, 23, 177, "Underglow 40", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 7, 23, 178, "Underglow 41", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 8, 23, 179, "Underglow 42", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 9, 23, 180, "Underglow 43", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 10, 23, 181, "Underglow 44", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + //wheel + { 0, 0, 0, 182, "Wheel 1", KEYBOARD_OPCODE_INSERT_ROW, }, + { 0, 0, 1, 183, "Wheel 2", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 2, 184, "Wheel 3", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 3, 185, "Wheel 4", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 4, 186, "Wheel 5", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 5, 187, "Wheel 6", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 6, 188, "Wheel 7", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 7, 189, "Wheel 8", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + } +}; + /*-------------------------------------------------------------------------*\ | CORSAIR DEVICES | \*-------------------------------------------------------------------------*/ @@ -757,6 +851,39 @@ static const corsair_v2_device k70_rgb_pro_device = &corsair_k70_layout }; +/*-------------------------------------------------------------*\ +| Corsair k100 RGB Optical 1B1C:1BC5 | +| | +| Zone "Keyboard" | +| Matrix | +| 12 Rows, 24 Columns | +\*-------------------------------------------------------------*/ + +static const corsair_v2_zone k100_rgb_opt_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 12, + 24 +}; + +static const corsair_v2_device k100_rgb_opt_device = +{ + CORSAIR_K100_OPTICAL_PID, + DEVICE_TYPE_KEYBOARD, + 12, + 24, + { + &k100_rgb_opt_zone, + nullptr, + nullptr, + nullptr, + nullptr, + nullptr + }, + &corsair_k100_layout +}; + /*-------------------------------------------------------------*\ | Corsair M55 1B1C:1B70 | | | @@ -908,6 +1035,7 @@ const corsair_v2_device* corsair_v2_device_list_data[] = &k70_rgb_pro_device, &k70_rgb_tkl_device, &k70_rgb_tkl_cs_device, + &k100_rgb_opt_device, /*-----------------------------------------------------------------*\ | MICE | diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h index 2e7f2f02..c07b8593 100644 --- a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h +++ b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h @@ -66,6 +66,7 @@ typedef struct #define CORSAIR_K70_RGB_PRO_PID 0x1BC4 #define CORSAIR_K70_RGB_TKL_PID 0x1B73 #define CORSAIR_K70_RGB_TKL_CS_PID 0x1BB9 +#define CORSAIR_K100_OPTICAL_PID 0x1BC5 /*-----------------------------------------------------*\ | Corsair V2 Protocol Mice |