Initial commit for Razer Huntsman V2 to resolve #1999

* Adding entry for the Huntsman V2 PID
* Registered detectors
* Added metadata to RazerDevices.h
* Added capabilities to RazerController.cpp
* Added UDEV rule to 60-openrgb.rules
This commit is contained in:
Chris
2021-12-28 11:16:49 +11:00
parent 914c4be553
commit 1d6e43d516
4 changed files with 161 additions and 1 deletions

View File

@@ -582,7 +582,8 @@ SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0226", TAG+="uacces
SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0227", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0257", TAG+="uaccess", TAG+="Huntsman_Mini"
SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0243", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="026B", TAG+="uaccess", TAG+="Huntsman_V2_TKL"
SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="026b", TAG+="uaccess", TAG+="Huntsman_V2_TKL"
SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="026c", TAG+="uaccess", TAG+="Huntsman_V2"
SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0207", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0266", TAG+="uaccess", TAG+="Huntsman V2 Analog"
SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="021e", TAG+="uaccess"

View File

@@ -143,6 +143,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha
case RAZER_HUNTSMAN_TE_PID:
case RAZER_HUNTSMAN_V2_ANALOG_PID:
case RAZER_HUNTSMAN_V2_TKL_PID:
case RAZER_HUNTSMAN_V2_PID:
case RAZER_ORNATA_CHROMA_PID:
case RAZER_ORNATA_CHROMA_V2_PID:
case RAZER_CORE_PID:
@@ -239,6 +240,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha
case RAZER_HUNTSMAN_TE_PID:
case RAZER_HUNTSMAN_V2_ANALOG_PID:
case RAZER_HUNTSMAN_V2_TKL_PID:
case RAZER_HUNTSMAN_V2_PID:
case RAZER_KRAKEN_KITTY_EDITION_PID:
case RAZER_LANCEHEAD_TE_WIRED_PID:
case RAZER_LANCEHEAD_2017_WIRED_PID:
@@ -500,6 +502,7 @@ bool RazerController::SupportsWave()
case RAZER_HUNTSMAN_TE_PID:
case RAZER_HUNTSMAN_V2_ANALOG_PID:
case RAZER_HUNTSMAN_V2_TKL_PID:
case RAZER_HUNTSMAN_V2_PID:
case RAZER_ORBWEAVER_CHROMA_PID:
case RAZER_TARTARUS_V2_PID:

View File

@@ -266,6 +266,7 @@ REGISTER_HID_DETECTOR_IPU("Razer Huntsman Mini", Det
REGISTER_HID_DETECTOR_IPU("Razer Huntsman Tournament Edition", DetectRazerControllers, RAZER_VID, RAZER_HUNTSMAN_TE_PID, 0x02, 0x01, 0x02);
REGISTER_HID_DETECTOR_IPU("Razer Huntsman V2 Analog", DetectRazerControllers, RAZER_VID, RAZER_HUNTSMAN_V2_ANALOG_PID, 0x03, 0x0C, 0x01);
REGISTER_HID_DETECTOR_IPU("Razer Huntsman V2 TKL", DetectRazerControllers, RAZER_VID, RAZER_HUNTSMAN_V2_TKL_PID, 0x03, 0x0C, 0x01);
REGISTER_HID_DETECTOR_IPU("Razer Huntsman V2", DetectRazerControllers, RAZER_VID, RAZER_HUNTSMAN_V2_PID, 0x03, 0x0C, 0x01);
REGISTER_HID_DETECTOR_IPU("Razer Ornata Chroma", DetectRazerControllers, RAZER_VID, RAZER_ORNATA_CHROMA_PID, 0x02, 0x01, 0x02);
REGISTER_HID_DETECTOR_IPU("Razer Ornata Chroma V2", DetectRazerControllers, RAZER_VID, RAZER_ORNATA_CHROMA_V2_PID, 0x02, 0x01, 0x02);

View File

@@ -76,6 +76,7 @@
#define RAZER_HUNTSMAN_TE_PID 0x0243
#define RAZER_HUNTSMAN_V2_ANALOG_PID 0x0266
#define RAZER_HUNTSMAN_V2_TKL_PID 0x026B
#define RAZER_HUNTSMAN_V2_PID 0x026C
#define RAZER_ORBWEAVER_CHROMA_PID 0x0207
#define RAZER_ORNATA_CHROMA_PID 0x021E
#define RAZER_ORNATA_CHROMA_V2_PID 0x025D
@@ -1610,6 +1611,125 @@ static const razer_key huntsman_te_keymap[] =
{ 0, 5, 17, "Key: Right Arrow" },
};
#define HUNTSMAN_V2_KEYMAP_SIZE (sizeof(huntsman_v2_keymap) / sizeof(huntsman_v2_keymap[0]))
static const razer_key huntsman_v2_keymap[] =
{
/*---------------------------------------------------------------------*\
| Zone, Row, Column, Key |
\*---------------------------------------------------------------------*/
{ 0, 0, 0, "Key: Escape" },
{ 0, 0, 2, "Key: F1" },
{ 0, 0, 3, "Key: F2" },
{ 0, 0, 4, "Key: F3" },
{ 0, 0, 5, "Key: F4" },
{ 0, 0, 6, "Key: F5" },
{ 0, 0, 7, "Key: F6" },
{ 0, 0, 8, "Key: F7" },
{ 0, 0, 9, "Key: F8" },
{ 0, 0, 10, "Key: F9" },
{ 0, 0, 11, "Key: F10" },
{ 0, 0, 12, "Key: F11" },
{ 0, 0, 13, "Key: F12" },
{ 0, 0, 14, "Key: Print Screen" },
{ 0, 0, 15, "Key: Scroll Lock" },
{ 0, 0, 16, "Key: Pause/Break" },
{ 0, 0, 17, "Key: Media Previous" },
{ 0, 0, 18, "Key: Media Play/Pause" },
{ 0, 0, 19, "Key: Media Next" },
{ 0, 0, 20, "Key: Media Mute" },
{ 0, 1, 0, "Key: `" },
{ 0, 1, 1, "Key: 1" },
{ 0, 1, 2, "Key: 2" },
{ 0, 1, 3, "Key: 3" },
{ 0, 1, 4, "Key: 4" },
{ 0, 1, 5, "Key: 5" },
{ 0, 1, 6, "Key: 6" },
{ 0, 1, 7, "Key: 7" },
{ 0, 1, 8, "Key: 8" },
{ 0, 1, 9, "Key: 9" },
{ 0, 1, 10, "Key: 0" },
{ 0, 1, 11, "Key: -" },
{ 0, 1, 12, "Key: =" },
{ 0, 1, 13, "Key: Backspace" },
{ 0, 1, 14, "Key: Insert" },
{ 0, 1, 15, "Key: Home" },
{ 0, 1, 16, "Key: Page Up" },
{ 0, 1, 17, "Key: Num Lock" },
{ 0, 1, 18, "Key: Number Pad /" },
{ 0, 1, 19, "Key: Number Pad *" },
{ 0, 1, 20, "Key: Number Pad -" },
{ 0, 2, 0, "Key: Tab" },
{ 0, 2, 1, "Key: Q" },
{ 0, 2, 2, "Key: W" },
{ 0, 2, 3, "Key: E" },
{ 0, 2, 4, "Key: R" },
{ 0, 2, 5, "Key: T" },
{ 0, 2, 6, "Key: Y" },
{ 0, 2, 7, "Key: U" },
{ 0, 2, 8, "Key: I" },
{ 0, 2, 9, "Key: O" },
{ 0, 2, 10, "Key: P" },
{ 0, 2, 11, "Key: [" },
{ 0, 2, 12, "Key: ]" },
{ 0, 2, 13, "Key: \\ (ANSI)" },
{ 0, 2, 14, "Key: Delete" },
{ 0, 2, 15, "Key: End" },
{ 0, 2, 16, "Key: Page Down" },
{ 0, 2, 17, "Key: Number Pad 7" },
{ 0, 2, 18, "Key: Number Pad 8" },
{ 0, 2, 19, "Key: Number Pad 9" },
{ 0, 2, 20, "Key: Number Pad +" },
{ 0, 3, 0, "Key: Caps Lock" },
{ 0, 3, 1, "Key: A" },
{ 0, 3, 2, "Key: S" },
{ 0, 3, 3, "Key: D" },
{ 0, 3, 4, "Key: F" },
{ 0, 3, 5, "Key: G" },
{ 0, 3, 6, "Key: H" },
{ 0, 3, 7, "Key: J" },
{ 0, 3, 8, "Key: K" },
{ 0, 3, 9, "Key: L" },
{ 0, 3, 10, "Key: ;" },
{ 0, 3, 11, "Key: '" },
{ 0, 3, 12, "Key: #" },
{ 0, 3, 13, "Key: Enter" },
{ 0, 3, 17, "Key: Number Pad 4" },
{ 0, 3, 18, "Key: Number Pad 5" },
{ 0, 3, 19, "Key: Number Pad 6" },
{ 0, 4, 0, "Key: Left Shift" },
{ 0, 4, 1, "Key: \\ (ISO)" },
{ 0, 4, 2, "Key: Z" },
{ 0, 4, 3, "Key: X" },
{ 0, 4, 4, "Key: C" },
{ 0, 4, 5, "Key: V" },
{ 0, 4, 6, "Key: B" },
{ 0, 4, 7, "Key: N" },
{ 0, 4, 8, "Key: M" },
{ 0, 4, 9, "Key: ," },
{ 0, 4, 10, "Key: ." },
{ 0, 4, 11, "Key: /" },
{ 0, 4, 13, "Key: Right Shift" },
{ 0, 4, 15, "Key: Up Arrow" },
{ 0, 4, 17, "Key: Number Pad 1" },
{ 0, 4, 18, "Key: Number Pad 2" },
{ 0, 4, 19, "Key: Number Pad 3" },
{ 0, 4, 20, "Key: Number Pad Enter" },
{ 0, 5, 0, "Key: Left Control" },
{ 0, 5, 1, "Key: Left Windows" },
{ 0, 5, 2, "Key: Left Alt" },
{ 0, 5, 6, "Key: Space" },
{ 0, 5, 10, "Key: Right Alt" },
{ 0, 5, 11, "Key: Right Fn" },
{ 0, 5, 12, "Key: Menu" },
{ 0, 5, 13, "Key: Right Control" },
{ 0, 5, 14, "Key: Left Arrow" },
{ 0, 5, 15, "Key: Down Arrow" },
{ 0, 5, 16, "Key: Right Arrow" },
{ 0, 5, 18, "Key: Number Pad 0" },
{ 0, 5, 19, "Key: Number Pad ." },
};
#define HUNTSMAN_V2_TKL_KEYMAP_SIZE (sizeof(huntsman_v2_tkl_keymap) / sizeof(huntsman_v2_tkl_keymap[0]))
static const razer_key huntsman_v2_tkl_keymap[] =
@@ -3253,6 +3373,41 @@ static const razer_device huntsman_v2_tkl_device =
HUNTSMAN_V2_TKL_KEYMAP_SIZE
};
/*-------------------------------------------------------------*\
| Razer Huntsman V2 1532:026C |
| |
| Zone "Keyboard" |
| Matrix |
| 6 Rows, 22 Columns |
\*-------------------------------------------------------------*/
static const razer_zone huntsman_v2_keyboard_zone =
{
"Keyboard",
ZONE_TYPE_MATRIX,
6,
22
};
static const razer_device huntsman_v2_device =
{
"Razer Huntsman V2",
RAZER_HUNTSMAN_V2_PID,
DEVICE_TYPE_KEYBOARD,
true,
9,
22,
{
&huntsman_v2_keyboard_zone,
NULL,
NULL,
NULL,
NULL,
NULL
},
huntsman_v2_keymap,
HUNTSMAN_V2_KEYMAP_SIZE
};
/*-------------------------------------------------------------------------*\
| LAPTOPS |
\*-------------------------------------------------------------------------*/