From d6a9f664ff801d464ce750e822added78e953756 Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 31 Dec 2021 01:42:34 +1100 Subject: [PATCH] Initial commit for Razer Viper 8kHz to resolve #1755 * Adding entry for the Viper 8kHz PID * Registered detectors * Added metadata to RazerDevices.h * Added capabilities to RazerController.cpp * Added UDEV rule to 60-openrgb.rules --- 60-openrgb.rules | 1 + .../RazerController/RazerController.cpp | 2 + .../RazerController/RazerControllerDetect.cpp | 1 + Controllers/RazerController/RazerDevices.h | 37 +++++++++++++++++++ 4 files changed, 41 insertions(+) diff --git a/60-openrgb.rules b/60-openrgb.rules index a1c15b84b..215f8f1e7 100644 --- a/60-openrgb.rules +++ b/60-openrgb.rules @@ -647,6 +647,7 @@ SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0039", TAG+="uacces SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0048", TAG+="uaccess" SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0032", TAG+="uaccess" SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0034", TAG+="uaccess" +SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0091", TAG+="uaccess", TAG+="Viper_8kHz" SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="008a", TAG+="uaccess" SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0078", TAG+="uaccess" SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="007a", TAG+="uaccess" diff --git a/Controllers/RazerController/RazerController.cpp b/Controllers/RazerController/RazerController.cpp index cb46b3c38..f71a3d01d 100644 --- a/Controllers/RazerController/RazerController.cpp +++ b/Controllers/RazerController/RazerController.cpp @@ -62,6 +62,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha case RAZER_BASE_STATION_V2_CHROMA_PID: case RAZER_MOUSE_BUNGEE_V3_CHROMA_PID: case RAZER_O11_DYNAMIC_PID: + case RAZER_VIPER_8KHZ_PID: dev_transaction_id = 0x1F; break; @@ -262,6 +263,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha case RAZER_SEIREN_EMOTE_PID: case RAZER_TARTARUS_V2_PID: case RAZER_TIAMAT_71_V2_PID: + case RAZER_VIPER_8KHZ_PID: case RAZER_VIPER_MINI_PID: case RAZER_VIPER_PID: case RAZER_VIPER_ULTIMATE_WIRED_PID: diff --git a/Controllers/RazerController/RazerControllerDetect.cpp b/Controllers/RazerController/RazerControllerDetect.cpp index 6f4188ac3..5a683aa33 100644 --- a/Controllers/RazerController/RazerControllerDetect.cpp +++ b/Controllers/RazerController/RazerControllerDetect.cpp @@ -342,6 +342,7 @@ REGISTER_HID_DETECTOR_IPU("Razer Naga Left Handed", Det 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 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); REGISTER_HID_DETECTOR_IPU("Razer Viper Ultimate (Wired)", DetectRazerControllers, RAZER_VID, RAZER_VIPER_ULTIMATE_WIRED_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Viper Ultimate (Wireless)", DetectRazerControllers, RAZER_VID, RAZER_VIPER_ULTIMATE_WIRELESS_PID, 0x00, 0x01, 0x02); diff --git a/Controllers/RazerController/RazerDevices.h b/Controllers/RazerController/RazerDevices.h index 2a8b5edba..bd5c12beb 100644 --- a/Controllers/RazerController/RazerDevices.h +++ b/Controllers/RazerController/RazerDevices.h @@ -143,6 +143,7 @@ #define RAZER_OROCHI_CHROMA_PID 0x0048 #define RAZER_OUROBOROS_PID 0x0032 #define RAZER_TAIPAN_PID 0x0034 +#define RAZER_VIPER_8KHZ_PID 0x0091 #define RAZER_VIPER_MINI_PID 0x008A #define RAZER_VIPER_PID 0x0078 #define RAZER_VIPER_ULTIMATE_WIRED_PID 0x007A @@ -6176,6 +6177,41 @@ static const razer_device naga_trinity_device = 0 }; +/*-------------------------------------------------------------*\ +| Razer Viper 8kHz 1532:0091 | +| | +| Zone "Logo" | +| Matrix | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone viper_8khz_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device viper_8khz_device = +{ + "Razer Viper 8kHz", + RAZER_VIPER_8KHZ_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 1, + { + &viper_8khz_logo_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + /*-------------------------------------------------------------*\ | Razer Viper Mini 1532:008A | | | @@ -7652,6 +7688,7 @@ static const razer_device* device_list[] = &naga_hex_v2_device, &naga_left_handed_device, &naga_trinity_device, + &viper_8khz_device, &viper_mini_device, &viper_ultimate_wired_device, &viper_ultimate_wireless_device,