diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp index 2773d5d2..06b2945e 100644 --- a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp +++ b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp @@ -36,11 +36,17 @@ void DetectCorsairV2SoftwareControllers(hid_device_info* info, const std::string /*-----------------------------------------------------------------------------------------------------*\ | Keyboards | \*-----------------------------------------------------------------------------------------------------*/ -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 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); /*-----------------------------------------------------------------------------------------------------*\ | Mousemat | \*-----------------------------------------------------------------------------------------------------*/ -REGISTER_HID_DETECTOR_IP("Corsair MM700", DetectCorsairV2SoftwareControllers, CORSAIR_VID, CORSAIR_MM700_PID, 1, 0xFF42); +REGISTER_HID_DETECTOR_IP("Corsair Ironclaw Wireless", DetectCorsairV2SoftwareControllers, CORSAIR_VID, CORSAIR_IRONCLAW_WIRELESS_PID, 1, 0xFF42); +REGISTER_HID_DETECTOR_IP("Corsair Ironclaw Wireless (Wired)", DetectCorsairV2SoftwareControllers, CORSAIR_VID, CORSAIR_IRONCLAW_WIRELESS_WIRED_PID, 1, 0xFF42); + +/*-----------------------------------------------------------------------------------------------------*\ +| Mousemat | +\*-----------------------------------------------------------------------------------------------------*/ +REGISTER_HID_DETECTOR_IP("Corsair MM700", DetectCorsairV2SoftwareControllers, CORSAIR_VID, CORSAIR_MM700_PID, 1, 0xFF42); diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp index ee809baf..d88ff6aa 100644 --- a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp +++ b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp @@ -122,6 +122,95 @@ static const corsair_v2_led K60_keymap[] = | CORSAIR DEVICES | \*-------------------------------------------------------------------------*/ +/*-------------------------------------------------------------*\ +| Corsair Ironclaw Wireless 1B1C:1B66 | +| Corsair Ironclaw Wireless (Wired) 1B1C:1B4C | +| | +| Zone "Logo" | +| Single | +| | +| Zone "Scroll Wheel" | +| Single | +| | +| Zone "Buttons" | +| Single | +| | +| Zone "Side" | +| Linear | +| 1 Row, 3 Columns | +\*-------------------------------------------------------------*/ +static const corsair_v2_zone ironclaw_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const corsair_v2_zone ironclaw_scroll_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const corsair_v2_zone ironclaw_button_zone = +{ + "Buttons", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const corsair_v2_zone ironclaw_side_zone = +{ + "Side Zone", + ZONE_TYPE_LINEAR, + 1, + 3 +}; + +static const corsair_v2_device ironclaw_wired_device = +{ + CORSAIR_IRONCLAW_WIRELESS_WIRED_PID, + false, + DEVICE_TYPE_MOUSE, + CORSAIR_V2_MODE_SW, + 1, + 6, + { + &ironclaw_logo_zone, + &ironclaw_scroll_zone, + &ironclaw_button_zone, + &ironclaw_side_zone, + nullptr, + nullptr + }, + nullptr, + 0 +}; + +static const corsair_v2_device ironclaw_wireless_device = +{ + CORSAIR_IRONCLAW_WIRELESS_PID, + true, + DEVICE_TYPE_MOUSE, + CORSAIR_V2_MODE_SW, + 1, + 6, + { + &ironclaw_logo_zone, + &ironclaw_scroll_zone, + &ironclaw_button_zone, + &ironclaw_side_zone, + nullptr, + nullptr + }, + nullptr, + 0 +}; + /*-------------------------------------------------------------*\ | Corsair K55 RGB Pro 1B1C:1BA4 | | | @@ -293,6 +382,12 @@ const corsair_v2_device* corsair_v2_device_list_data[] = &k60_rgb_pro_device, &k60_rgb_pro_lp_device, +/*-----------------------------------------------------------------*\ +| MICE | +\*-----------------------------------------------------------------*/ + &ironclaw_wired_device, + &ironclaw_wireless_device, + /*-----------------------------------------------------------------*\ | MOUSEMATS | \*-----------------------------------------------------------------*/ diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h index 5b7098a3..e26aa5de 100644 --- a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h +++ b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h @@ -49,6 +49,12 @@ typedef struct #define CORSAIR_K60_RGB_PRO_PID 0x1BA0 #define CORSAIR_K60_RGB_PRO_LP_PID 0x1BAD +/*-----------------------------------------------------*\ +| Corsair V2 Protocol Mice | +\*-----------------------------------------------------*/ +#define CORSAIR_IRONCLAW_WIRELESS_PID 0x1BA6 +#define CORSAIR_IRONCLAW_WIRELESS_WIRED_PID 0x1B4C + /*-----------------------------------------------------*\ | Corsair V2 Protocol Mousemats | \*-----------------------------------------------------*/