diff --git a/Controllers/RazerController/RazerController/RazerController.cpp b/Controllers/RazerController/RazerController/RazerController.cpp index 26c96284..f964ede3 100644 --- a/Controllers/RazerController/RazerController/RazerController.cpp +++ b/Controllers/RazerController/RazerController/RazerController.cpp @@ -154,6 +154,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha case RAZER_HUNTSMAN_V2_ANALOG_PID: case RAZER_HUNTSMAN_V2_TKL_PID: case RAZER_HUNTSMAN_V2_PID: + case RAZER_HUNTSMAN_V3_PRO_PID: case RAZER_HUNTSMAN_V3_PRO_TKL_WHITE_PID: case RAZER_ORNATA_CHROMA_PID: case RAZER_ORNATA_CHROMA_V2_PID: @@ -446,6 +447,7 @@ bool RazerController::SupportsWave() case RAZER_HUNTSMAN_V2_ANALOG_PID: case RAZER_HUNTSMAN_V2_TKL_PID: case RAZER_HUNTSMAN_V2_PID: + case RAZER_HUNTSMAN_V3_PRO_PID: case RAZER_HUNTSMAN_V3_PRO_TKL_WHITE_PID: case RAZER_ORBWEAVER_CHROMA_PID: case RAZER_TARTARUS_PRO_PID: diff --git a/Controllers/RazerController/RazerControllerDetect.cpp b/Controllers/RazerController/RazerControllerDetect.cpp index 65a1eb12..548e7ec7 100644 --- a/Controllers/RazerController/RazerControllerDetect.cpp +++ b/Controllers/RazerController/RazerControllerDetect.cpp @@ -189,6 +189,7 @@ REGISTER_HID_DETECTOR_IPU("Razer Huntsman Tournament Edition", Det 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 Huntsman V3 Pro", DetectRazerControllers, RAZER_VID, RAZER_HUNTSMAN_V3_PRO_PID, 0x03, 0x0C, 0x01); REGISTER_HID_DETECTOR_IPU("Razer Huntsman V3 Pro TKL White", DetectRazerControllers, RAZER_VID, RAZER_HUNTSMAN_V3_PRO_TKL_WHITE_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); diff --git a/Controllers/RazerController/RazerDevices.cpp b/Controllers/RazerController/RazerDevices.cpp index ad195947..5f41801f 100644 --- a/Controllers/RazerController/RazerDevices.cpp +++ b/Controllers/RazerController/RazerDevices.cpp @@ -980,6 +980,32 @@ keyboard_keymap_overlay_values razer_huntsman_v2_tkl_layout } }; +keyboard_keymap_overlay_values razer_huntsman_v3_pro_layout +{ + KEYBOARD_SIZE::KEYBOARD_SIZE_FULL, + { + { /* ANSI Value set not used */ }, + { + /* Add more regional layout fixes here */ + } + }, + { + /*---------------------------------------------------------------------------------------------------------*\ + | Edit Keys | + | Zone, Row, Column, Value, Key, OpCode, | + \*---------------------------------------------------------------------------------------------------------*/ + { 0, 0, 0, 0, KEY_EN_UNUSED, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 18, 0, "Media group", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 20, 0, "Media: Volume Dial", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 1, 0, 0, KEY_EN_UNUSED, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 2, 0, 0, KEY_EN_UNUSED, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 3, 0, 0, KEY_EN_UNUSED, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 4, 0, 0, KEY_EN_UNUSED, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 5, 0, 0, KEY_EN_UNUSED, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 5, 17, 0, KEY_EN_UNUSED, KEYBOARD_OPCODE_REMOVE_SHIFT_LEFT, }, + } +}; + keyboard_keymap_overlay_values razer_huntsman_v3_pro_tkl_layout { KEYBOARD_SIZE::KEYBOARD_SIZE_TKL, @@ -2706,6 +2732,41 @@ static const razer_device huntsman_v2_device = &razer_huntsman_v2_layout }; +/*-------------------------------------------------------------*\ +| Razer Huntsman V3 Pro 1532:02A6 | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone huntsman_v3_pro_keyboard_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device huntsman_v3_pro_device = +{ + "Razer Huntsman V3 Pro", + RAZER_HUNTSMAN_V3_PRO_PID, + DEVICE_TYPE_KEYBOARD, + RAZER_MATRIX_TYPE_EXTENDED, + 0x3F, + 6, + 22, + { + &huntsman_v3_pro_keyboard_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + &razer_huntsman_v3_pro_layout +}; + /*-------------------------------------------------------------*\ | Razer Huntsman V3 Pro TKL White 1532:02A7 | | | @@ -8498,6 +8559,7 @@ const razer_device* razer_device_list[] = &huntsman_v2_device, &huntsman_v2_analog_device, &huntsman_v2_tkl_device, + &huntsman_v3_pro_device, &huntsman_v3_pro_tkl_device, &ornata_chroma_device, &ornata_chroma_v2_device, diff --git a/Controllers/RazerController/RazerDevices.h b/Controllers/RazerController/RazerDevices.h index 12be6955..d170ab05 100644 --- a/Controllers/RazerController/RazerDevices.h +++ b/Controllers/RazerController/RazerDevices.h @@ -114,6 +114,7 @@ #define RAZER_HUNTSMAN_V2_ANALOG_PID 0x0266 #define RAZER_HUNTSMAN_V2_TKL_PID 0x026B #define RAZER_HUNTSMAN_V2_PID 0x026C +#define RAZER_HUNTSMAN_V3_PRO_PID 0x02A6 #define RAZER_HUNTSMAN_V3_PRO_TKL_WHITE_PID 0x02A7 #define RAZER_ORBWEAVER_CHROMA_PID 0x0207 #define RAZER_ORNATA_CHROMA_PID 0x021E