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) switch(pid)
{ {
case CORSAIR_SLIPSTREAM_WIRELESS_PID: case CORSAIR_SLIPSTREAM_WIRELESS_PID1:
case CORSAIR_SLIPSTREAM_WIRELESS_PID2:
write_cmd = CORSAIR_V2_WRITE_WIRELESS_ID; write_cmd = CORSAIR_V2_WRITE_WIRELESS_ID;
pid = GetAddress(0x12); pid = GetAddress(0x12);
break; break;

View file

@ -28,7 +28,8 @@ void DetectCorsairV2HardwareControllers(hid_device_info* info, const std::string
{ {
CorsairPeripheralV2HWController* controller = new CorsairPeripheralV2HWController(dev, info->path, name); CorsairPeripheralV2HWController* controller = new CorsairPeripheralV2HWController(dev, info->path, name);
RGBController_CorsairV2HW* rgb_controller = new RGBController_CorsairV2HW(controller); 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(); 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 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 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 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", 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 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 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 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 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 | | Mousemat |
\*-----------------------------------------------------------------------------------------------------*/ \*-----------------------------------------------------------------------------------------------------*/

View file

@ -297,6 +297,48 @@ static const corsair_v2_device dark_core_pro_se_device =
nullptr 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 | | Corsair Ironclaw Wireless 1B1C:1B4C |
| | | |
@ -872,6 +914,7 @@ const corsair_v2_device* corsair_v2_device_list_data[] =
\*-----------------------------------------------------------------*/ \*-----------------------------------------------------------------*/
&dark_core_se_device, &dark_core_se_device,
&dark_core_pro_se_device, &dark_core_pro_se_device,
&harpoon_wireless_device,
&ironclaw_wireless_device, &ironclaw_wireless_device,
&katar_pro_device, &katar_pro_device,
&katar_pro_v2_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_PID 0x1B4B
#define CORSAIR_DARK_CORE_RGB_PRO_PID 0x1B7E #define CORSAIR_DARK_CORE_RGB_PRO_PID 0x1B7E
#define CORSAIR_HARPOON_WIRELESS_PID 0x1B5E
#define CORSAIR_IRONCLAW_WIRELESS_PID 0x1B4C #define CORSAIR_IRONCLAW_WIRELESS_PID 0x1B4C
#define CORSAIR_KATAR_PRO_PID 0x1B93 #define CORSAIR_KATAR_PRO_PID 0x1B93
#define CORSAIR_KATAR_PRO_V2_PID 0x1BBA #define CORSAIR_KATAR_PRO_V2_PID 0x1BBA
#define CORSAIR_KATAR_PRO_XT_PID 0x1BAC #define CORSAIR_KATAR_PRO_XT_PID 0x1BAC
#define CORSAIR_M55_RGB_PRO_PID 0x1B70 #define CORSAIR_M55_RGB_PRO_PID 0x1B70
#define CORSAIR_M65_ULTRA_RGB_PID 0x1BB5 #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 | | Corsair V2 Protocol Mousemats |