From 27442475b1e29d30ea2ee216e80db029cad18f21 Mon Sep 17 00:00:00 2001 From: Chris M Date: Tue, 14 Mar 2023 08:38:18 +1100 Subject: [PATCH] Initial commit for Razer Blade Late 2021 Advanced to resolve #2520 + Adding PID for the Blade 15 Late 2021 Advanced + Registered detectors + Added metadata to RazerDevices.cpp + Added capabilities to RazerController.cpp --- .../RazerController/RazerController.cpp | 2 + .../RazerController/RazerControllerDetect.cpp | 1 + Controllers/RazerController/RazerDevices.cpp | 102 ++++++++++++++++++ Controllers/RazerController/RazerDevices.h | 1 + 4 files changed, 106 insertions(+) diff --git a/Controllers/RazerController/RazerController.cpp b/Controllers/RazerController/RazerController.cpp index 6d00b094b..8ecf0a7df 100644 --- a/Controllers/RazerController/RazerController.cpp +++ b/Controllers/RazerController/RazerController.cpp @@ -216,6 +216,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha case RAZER_BLADE_2021_ADVANCED_PID: case RAZER_BLADE_2021_BASE_PID: case RAZER_BLADE_2021_BASE_V2_PID: + case RAZER_BLADE_LATE_2021_ADVANCED_PID: case RAZER_BLADE_14_2021_PID: case RAZER_BLADE_14_2022_PID: case RAZER_BLADE_PRO_2016_PID: @@ -590,6 +591,7 @@ bool RazerController::SupportsWave() case RAZER_BLADE_2021_ADVANCED_PID: case RAZER_BLADE_2021_BASE_PID: case RAZER_BLADE_2021_BASE_V2_PID: + case RAZER_BLADE_LATE_2021_ADVANCED_PID: case RAZER_BLADE_14_2021_PID: case RAZER_BLADE_14_2022_PID: case RAZER_BLADE_PRO_2016_PID: diff --git a/Controllers/RazerController/RazerControllerDetect.cpp b/Controllers/RazerController/RazerControllerDetect.cpp index 66d6703c8..452737a03 100644 --- a/Controllers/RazerController/RazerControllerDetect.cpp +++ b/Controllers/RazerController/RazerControllerDetect.cpp @@ -289,6 +289,7 @@ REGISTER_HID_DETECTOR_IPU("Razer Blade 15 (2020 Advanced)", Det REGISTER_HID_DETECTOR_IPU("Razer Blade 15 (2020 Base)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_2020_BASE_PID, 0x02, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Blade 15 (Late 2020)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_LATE_2020_PID, 0x02, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Blade 15 (2021 Advanced)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_2021_ADVANCED_PID, 0x02, 0x01, 0x02); +REGISTER_HID_DETECTOR_IPU("Razer Blade 15 (Late 2021 Advanced)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_LATE_2021_ADVANCED_PID, 0x02, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Blade 15 (2021 Base)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_2021_BASE_PID, 0x02, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Blade 15 (2021 Base)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_2021_BASE_V2_PID, 0x02, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Blade Pro (2016)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_PRO_2016_PID, 0x02, 0x01, 0x02); diff --git a/Controllers/RazerController/RazerDevices.cpp b/Controllers/RazerController/RazerDevices.cpp index 8e4319719..af3840202 100644 --- a/Controllers/RazerController/RazerDevices.cpp +++ b/Controllers/RazerController/RazerDevices.cpp @@ -99,6 +99,71 @@ keyboard_keymap_overlay_values razer_blackwidow_x_chroma_te_layout } }; +keyboard_keymap_overlay_values razer_blade_15_2021_advanced_layout +{ + KEYBOARD_SIZE::KEYBOARD_SIZE_TKL, + { + { /* ANSI Value set not used */ }, + { + { + KEYBOARD_LAYOUT_ISO_QWERTY, + { + /*---------------------------------------------------------------------*\ + | Swap Keys | + | Zone, Row, Column, Index, Key | + \*---------------------------------------------------------------------*/ + { 0, 2, 13, 0, KEY_EN_ISO_ENTER, }, // Remove ANSI_BACKSLASH + { 0, 3, 13, 0, KEY_EN_UNUSED, }, // Remove ANSI_ENTER + } + }, + /* Add more regional layout fixes here */ + } + }, + { + /*---------------------------------------------------------------------*\ + | Insert Keys | + | Zone, Row, Column, Index, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, 0, KEY_EN_ESCAPE, }, + { 0, 1, 0, 0, KEY_EN_UNUSED, }, + { 0, 1, 14, 0, KEY_EN_UNUSED, }, // Move Backspace 1 right + { 0, 2, 0, 0, KEY_EN_UNUSED, }, + { 0, 3, 0, 0, KEY_EN_UNUSED, }, + { 0, 4, 0, 0, KEY_EN_UNUSED, }, + { 0, 5, 0, 0, KEY_EN_UNUSED, }, + { 0, 5, 5, 0, KEY_EN_LEFT_ALT, }, + { 0, 5, 9, 0, KEY_EN_RIGHT_ALT, }, + }, + { + /*---------------------------------------------------------------------*\ + | Swap Keys | + | Zone, Row, Column, Index, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 0, 0, KEY_EN_UNUSED, }, // Remove ESC + { 0, 0, 14, 0, KEY_EN_INSERT, }, // Swap PRTSCN for INS + { 0, 0, 15, 0, KEY_EN_DELETE, }, // Swap SCRLCK for DEL + { 0, 0, 16, 0, KEY_EN_UNUSED, }, // Remove PSE_BRK + { 0, 1, 16, 0, KEY_EN_UNUSED, }, // Remove INSERT + { 0, 1, 17, 0, KEY_EN_UNUSED, }, // Remove HOME + { 0, 1, 18, 0, KEY_EN_UNUSED, }, // Remove PGUP + { 0, 2, 15, 0, KEY_EN_UNUSED, }, // Remove DEL + { 0, 2, 16, 0, KEY_EN_UNUSED, }, // Remove END + { 0, 2, 17, 0, KEY_EN_UNUSED, }, // Remove PGDN + { 0, 4, 13, 0, KEY_EN_UNUSED, }, // Remove RGT_SHFT + { 0, 4, 15, 0, KEY_EN_RIGHT_SHIFT, }, // Swap ARWUP for RGT_SHFT + { 0, 5, 2, 0, KEY_EN_LEFT_FUNCTION, }, // Swap LFT_WIN for LFT_FNC + { 0, 5, 3, 0, KEY_EN_LEFT_WINDOWS, }, // Swap LFT_ALT for LFT_WIN + { 0, 5, 6, 0, KEY_EN_UNUSED, }, // Remove SPACE + { 0, 5, 10, 0, KEY_EN_RIGHT_FUNCTION, }, // Swap RGT_ALT for RGT_FNC + { 0, 5, 11, 0, KEY_EN_RIGHT_CONTROL, }, // Swap RGT_FNC for RGT_CTL + { 0, 5, 12, 0, KEY_EN_LEFT_ARROW, }, // Swap ARWLFT for RGT_MNU + { 0, 5, 13, 0, KEY_EN_UP_ARROW, }, // Swap ARWUP for RGT_CTL + { 0, 5, 14, 0, KEY_EN_RIGHT_ARROW, }, // Swap ARWRGT for ARWLFT + { 0, 5, 15, 0, KEY_EN_DOWN_ARROW, }, // Swap ARWDWN for ARWDWN + { 0, 5, 16, 0, KEY_EN_UNUSED, }, // Remove ARWRGT + } +}; + keyboard_keymap_overlay_values razer_huntsman_elite_layout { KEYBOARD_SIZE::KEYBOARD_SIZE_FULL, @@ -4322,6 +4387,42 @@ static const razer_device blade_15_2021_base_v2_device = &razer_empty_layout }; +/*-------------------------------------------------------------*\ +| Razer Blade 15 (Late 2021 Advanced) 1532:2067 | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_15_late_2021_advanced_zone = +{ + "Keyboard", + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_15_late_2021_advanced_device = +{ + "Razer Blade 15 (Late 2021 Advanced)", + RAZER_BLADE_LATE_2021_ADVANCED_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_15_late_2021_advanced_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0, + &razer_blade_15_2021_advanced_layout +}; + /*-------------------------------------------------------------*\ | Razer Blade 14 (2021) | | | @@ -8866,6 +8967,7 @@ const razer_device* razer_device_list[] = &blade_15_2021_advanced_device, &blade_15_2021_base_device, &blade_15_2021_base_v2_device, + &blade_15_late_2021_advanced_device, &blade_14_2021_device, &blade_14_2022_device, &book_13_2020_device, diff --git a/Controllers/RazerController/RazerDevices.h b/Controllers/RazerController/RazerDevices.h index 890676ecd..cd0c685b7 100644 --- a/Controllers/RazerController/RazerDevices.h +++ b/Controllers/RazerController/RazerDevices.h @@ -62,6 +62,7 @@ #define RAZER_BLADE_2021_ADVANCED_PID 0x026D #define RAZER_BLADE_2021_BASE_PID 0x026F #define RAZER_BLADE_2021_BASE_V2_PID 0x027A +#define RAZER_BLADE_LATE_2021_ADVANCED_PID 0x0276 #define RAZER_BLADE_14_2021_PID 0x0270 #define RAZER_BLADE_14_2022_PID 0x028C