From db458fbb80d53d42b08f419ccc62ff5222fe4c0a Mon Sep 17 00:00:00 2001 From: Frederik Madsen Date: Thu, 27 Jan 2022 19:26:11 +0000 Subject: [PATCH] Add support for wired/wireless Razer Naga Pro --- 60-openrgb.rules | 2 + .../RazerController/RazerController.cpp | 4 + .../RazerController/RazerControllerDetect.cpp | 2 + Controllers/RazerController/RazerDevices.h | 83 +++++++++++++++++++ 4 files changed, 91 insertions(+) diff --git a/60-openrgb.rules b/60-openrgb.rules index 3396ad54..b9ba3214 100644 --- a/60-openrgb.rules +++ b/60-openrgb.rules @@ -649,6 +649,8 @@ SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0036", TAG+="uacces SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0050", TAG+="uaccess", TAG+="Naga_Hex_V2" SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="008d", TAG+="uaccess", TAG+="Naga_Left_Handed" SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0067", TAG+="uaccess", TAG+="Naga_Trinity" +SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="008f", TAG+="uaccess", TAG+="Naga_Pro_Wired" +SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0090", TAG+="uaccess", TAG+="Naga_Pro_Wireless" SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0013", TAG+="uaccess" SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0039", TAG+="uaccess" SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0048", TAG+="uaccess" diff --git a/Controllers/RazerController/RazerController.cpp b/Controllers/RazerController/RazerController.cpp index d80e0856..21f1840a 100644 --- a/Controllers/RazerController/RazerController.cpp +++ b/Controllers/RazerController/RazerController.cpp @@ -59,6 +59,8 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha case RAZER_MAMBA_ELITE_PID: case RAZER_NAGA_EPIC_CHROMA_PID: case RAZER_NAGA_LEFT_HANDED_PID: + case RAZER_NAGA_PRO_WIRED_PID: + case RAZER_NAGA_PRO_WIRELESS_PID: case RAZER_KRAKEN_KITTY_EDITION_PID: case RAZER_BASE_STATION_V2_CHROMA_PID: case RAZER_MOUSE_BUNGEE_V3_CHROMA_PID: @@ -257,6 +259,8 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha case RAZER_MOUSE_DOCK_CHROMA_PID: case RAZER_NAGA_LEFT_HANDED_PID: case RAZER_NAGA_TRINITY_PID: + case RAZER_NAGA_PRO_WIRED_PID: + case RAZER_NAGA_PRO_WIRELESS_PID: case RAZER_NOMMO_CHROMA_PID: case RAZER_NOMMO_PRO_PID: case RAZER_O11_DYNAMIC_PID: diff --git a/Controllers/RazerController/RazerControllerDetect.cpp b/Controllers/RazerController/RazerControllerDetect.cpp index 1346d67e..6cfbf9e0 100644 --- a/Controllers/RazerController/RazerControllerDetect.cpp +++ b/Controllers/RazerController/RazerControllerDetect.cpp @@ -342,6 +342,8 @@ REGISTER_HID_DETECTOR_IPU("Razer Naga Epic Chroma", Det REGISTER_HID_DETECTOR_IPU("Razer Naga Left Handed", DetectRazerControllers, RAZER_VID, RAZER_NAGA_LEFT_HANDED_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Naga Hex V2", DetectRazerControllers, RAZER_VID, RAZER_NAGA_HEX_V2_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Naga Trinity", DetectRazerControllers, RAZER_VID, RAZER_NAGA_TRINITY_PID, 0x00, 0x01, 0x02); +REGISTER_HID_DETECTOR_IPU("Razer Naga Pro (Wired)", DetectRazerControllers, RAZER_VID, RAZER_NAGA_PRO_WIRED_PID, 0x00, 0x01, 0x02); +REGISTER_HID_DETECTOR_IPU("Razer Naga Pro (Wireless)", DetectRazerControllers, RAZER_VID, RAZER_NAGA_PRO_WIRELESS_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Viper", DetectRazerControllers, RAZER_VID, RAZER_VIPER_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Viper 8kHz", DetectRazerControllers, RAZER_VID, RAZER_VIPER_8KHZ_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Viper Mini", DetectRazerControllers, RAZER_VID, RAZER_VIPER_MINI_PID, 0x00, 0x01, 0x02); diff --git a/Controllers/RazerController/RazerDevices.h b/Controllers/RazerController/RazerDevices.h index dd4f93e3..d880760e 100644 --- a/Controllers/RazerController/RazerDevices.h +++ b/Controllers/RazerController/RazerDevices.h @@ -139,6 +139,8 @@ #define RAZER_NAGA_HEX_V2_PID 0x0050 #define RAZER_NAGA_LEFT_HANDED_PID 0x008D #define RAZER_NAGA_TRINITY_PID 0x0067 +#define RAZER_NAGA_PRO_WIRED_PID 0x008F +#define RAZER_NAGA_PRO_WIRELESS_PID 0x0090 #define RAZER_OROCHI_2011_PID 0x0013 #define RAZER_OROCHI_2013_PID 0x0039 #define RAZER_OROCHI_CHROMA_PID 0x0048 @@ -6444,6 +6446,85 @@ static const razer_device naga_trinity_device = 0 }; +/*-------------------------------------------------------------*\ +| Razer Naga Pro 1532:008F (wired) 1532:0090 (wireless) | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Numpad" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone naga_pro_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_pro_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_pro_numpad_zone = +{ + "Numpad", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device naga_pro_wired_device = +{ + "Razer Naga Pro (Wired)", + RAZER_NAGA_PRO_WIRED_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 3, + { + &naga_pro_scroll_wheel_zone, + &naga_pro_logo_zone, + &naga_pro_numpad_zone, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +static const razer_device naga_pro_wireless_device = +{ + "Razer Naga Pro (Wireless)", + RAZER_NAGA_PRO_WIRELESS_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 3, + { + &naga_pro_scroll_wheel_zone, + &naga_pro_logo_zone, + &naga_pro_numpad_zone, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + /*-------------------------------------------------------------*\ | Razer Viper 8kHz 1532:0091 | | | @@ -7956,6 +8037,8 @@ static const razer_device* device_list[] = &naga_hex_v2_device, &naga_left_handed_device, &naga_trinity_device, + &naga_pro_wired_device, + &naga_pro_wireless_device, &viper_8khz_device, &viper_mini_device, &viper_ultimate_wired_device,