diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Controller.cpp b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Controller.cpp index 7715fc6c..b7784b9d 100644 --- a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Controller.cpp +++ b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Controller.cpp @@ -36,7 +36,8 @@ CorsairPeripheralV2Controller::CorsairPeripheralV2Controller(hid_device* dev_han switch(pid) { - case CORSAIR_SLIPSTREAM_WIRELESS_PID: + case CORSAIR_SLIPSTREAM_WIRELESS_PID1: + case CORSAIR_SLIPSTREAM_WIRELESS_PID2: write_cmd = CORSAIR_V2_WRITE_WIRELESS_ID; pid = GetAddress(0x12); break; diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp index 8ae29998..ebaaf302 100644 --- a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp +++ b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp @@ -28,7 +28,8 @@ void DetectCorsairV2HardwareControllers(hid_device_info* info, const std::string { CorsairPeripheralV2HWController* controller = new CorsairPeripheralV2HWController(dev, info->path, name); RGBController_CorsairV2HW* rgb_controller = new RGBController_CorsairV2HW(controller); - if(info->product_id == CORSAIR_SLIPSTREAM_WIRELESS_PID) + if(info->product_id == CORSAIR_SLIPSTREAM_WIRELESS_PID1 + || info->product_id == CORSAIR_SLIPSTREAM_WIRELESS_PID2) { rgb_controller->name = controller->GetName(); } @@ -70,14 +71,15 @@ REGISTER_HID_DETECTOR_IP("Corsair K70 RGB TKL Champion Series", DetectCorsai \*-----------------------------------------------------------------------------------------------------*/ REGISTER_HID_DETECTOR_IP("Corsair Dark Core RGB SE (Wired)", DetectCorsairV2HardwareControllers, CORSAIR_VID, CORSAIR_DARK_CORE_RGB_PID, 1, 0xFF42); REGISTER_HID_DETECTOR_IP("Corsair Dark Core RGB Pro SE (Wired)", DetectCorsairV2HardwareControllers, CORSAIR_VID, CORSAIR_DARK_CORE_RGB_PRO_PID, 1, 0xFF42); +REGISTER_HID_DETECTOR_IP("Corsair Harpoon Wireless (Wired)", DetectCorsairV2SoftwareControllers, CORSAIR_VID, CORSAIR_HARPOON_WIRELESS_PID, 1, 0xFF42); REGISTER_HID_DETECTOR_IP("Corsair Ironclaw Wireless (Wired)", DetectCorsairV2SoftwareControllers, CORSAIR_VID, CORSAIR_IRONCLAW_WIRELESS_PID, 1, 0xFF42); REGISTER_HID_DETECTOR_IP("Corsair Katar Pro", DetectCorsairV2HardwareControllers, CORSAIR_VID, CORSAIR_KATAR_PRO_PID, 1, 0xFF42); REGISTER_HID_DETECTOR_IP("Corsair Katar Pro V2", DetectCorsairV2HardwareControllers, CORSAIR_VID, CORSAIR_KATAR_PRO_V2_PID, 1, 0xFF42); REGISTER_HID_DETECTOR_IP("Corsair Katar Pro XT", DetectCorsairV2HardwareControllers, CORSAIR_VID, CORSAIR_KATAR_PRO_XT_PID, 1, 0xFF42); REGISTER_HID_DETECTOR_IP("Corsair M55 RGB PRO", DetectCorsairV2SoftwareControllers, CORSAIR_VID, CORSAIR_M55_RGB_PRO_PID, 1, 0xFF42); REGISTER_HID_DETECTOR_IP("Corsair M65 Ultra RGB (Wired)", DetectCorsairV2HardwareControllers, CORSAIR_VID, CORSAIR_M65_ULTRA_RGB_PID, 1, 0xFF42); -REGISTER_HID_DETECTOR_IP("Corsair Slipstream Wireless Receiver", DetectCorsairV2HardwareControllers, CORSAIR_VID, CORSAIR_SLIPSTREAM_WIRELESS_PID, 1, 0xFF42); - +REGISTER_HID_DETECTOR_IP("Corsair Slipstream Wireless Receiver HW", DetectCorsairV2HardwareControllers, CORSAIR_VID, CORSAIR_SLIPSTREAM_WIRELESS_PID1, 1, 0xFF42); +REGISTER_HID_DETECTOR_IP("Corsair Slipstream Wireless Receiver SW", DetectCorsairV2SoftwareControllers, CORSAIR_VID, CORSAIR_SLIPSTREAM_WIRELESS_PID2, 1, 0xFF42); /*-----------------------------------------------------------------------------------------------------*\ | Mousemat | \*-----------------------------------------------------------------------------------------------------*/ diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp index 8d5b9638..9ac9aba0 100644 --- a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp +++ b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp @@ -297,6 +297,48 @@ static const corsair_v2_device dark_core_pro_se_device = nullptr }; +/*-------------------------------------------------------------*\ +| Corsair Harpoon Wireless 1B1C:1B5E | +| | +| Zone "Logo" | +| Single | +| | +| Zone "Scroll Wheel" | +| Single | +\*-------------------------------------------------------------*/ +static const corsair_v2_zone harpoon_indicator_zone = +{ + "Indicator", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const corsair_v2_zone harpoon_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const corsair_v2_device harpoon_wireless_device = +{ + CORSAIR_HARPOON_WIRELESS_PID, + DEVICE_TYPE_MOUSE, + 1, + 2, + { + &harpoon_indicator_zone, + &harpoon_logo_zone, + nullptr, + nullptr, + nullptr, + nullptr + }, + nullptr +}; + /*-------------------------------------------------------------*\ | Corsair Ironclaw Wireless 1B1C:1B4C | | | @@ -872,6 +914,7 @@ const corsair_v2_device* corsair_v2_device_list_data[] = \*-----------------------------------------------------------------*/ &dark_core_se_device, &dark_core_pro_se_device, + &harpoon_wireless_device, &ironclaw_wireless_device, &katar_pro_device, &katar_pro_v2_device, diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h index eb6389c7..2e7f2f02 100644 --- a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h +++ b/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h @@ -72,13 +72,15 @@ typedef struct \*-----------------------------------------------------*/ #define CORSAIR_DARK_CORE_RGB_PID 0x1B4B #define CORSAIR_DARK_CORE_RGB_PRO_PID 0x1B7E +#define CORSAIR_HARPOON_WIRELESS_PID 0x1B5E #define CORSAIR_IRONCLAW_WIRELESS_PID 0x1B4C #define CORSAIR_KATAR_PRO_PID 0x1B93 #define CORSAIR_KATAR_PRO_V2_PID 0x1BBA #define CORSAIR_KATAR_PRO_XT_PID 0x1BAC #define CORSAIR_M55_RGB_PRO_PID 0x1B70 #define CORSAIR_M65_ULTRA_RGB_PID 0x1BB5 -#define CORSAIR_SLIPSTREAM_WIRELESS_PID 0x1BA6 +#define CORSAIR_SLIPSTREAM_WIRELESS_PID1 0x1BA6 +#define CORSAIR_SLIPSTREAM_WIRELESS_PID2 0x1B65 /*-----------------------------------------------------*\ | Corsair V2 Protocol Mousemats |