Initial commit for the Corsair Harpoon Wireless Mouse

+ Adding Harpoon Wired and Slipstream PID to
CorsairPeripheralV2Devices.h
+ Adding device layout
+ Registering detectors
+ Resolves #3834
This commit is contained in:
Chris M 2024-01-03 22:32:10 +11:00
parent f5bbd49e78
commit 33e9d8e0e1
4 changed files with 53 additions and 5 deletions

View file

@ -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;

View file

@ -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 |
\*-----------------------------------------------------------------------------------------------------*/

View file

@ -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,

View file

@ -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 |