From 1e0169bed97c4a255e7932b3ba29d6075fa44636 Mon Sep 17 00:00:00 2001 From: Chris Date: Sat, 15 Jan 2022 17:47:44 +1100 Subject: [PATCH] Initial commit for Razer Basilisk V3 to resolve #2007 + Adding entry for the Basilisk V3 PID + Registered detectors + Added metadata to RazerDevices.h + Added capabilities to RazerController.cpp + Added UDEV rule to 60-openrgb.rules * Small readability changes --- 60-openrgb.rules | 1 + .../RazerController/RazerController.cpp | 15 +++-- .../RazerController/RazerControllerDetect.cpp | 1 + Controllers/RazerController/RazerDevices.h | 61 +++++++++++++++++++ 4 files changed, 72 insertions(+), 6 deletions(-) diff --git a/60-openrgb.rules b/60-openrgb.rules index 1ef2c28f3..b99fa8087 100644 --- a/60-openrgb.rules +++ b/60-openrgb.rules @@ -605,6 +605,7 @@ SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0086", TAG+="uacces SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0088", TAG+="uaccess", TAG+="Basilisk_Ultimate-Wireless" SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0083", TAG+="uaccess" SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0085", TAG+="uaccess", TAG+="Basilisk_V2" +SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0099", TAG+="uaccess", TAG+="Basilisk_V3" SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0038", TAG+="uaccess" SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="004f", TAG+="uaccess" SUBSYSTEMS=="usb", ATTR{idVendor}=="1532", ATTR{idProduct}=="0037", TAG+="uaccess" diff --git a/Controllers/RazerController/RazerController.cpp b/Controllers/RazerController/RazerController.cpp index f71a3d01d..d80e0856c 100644 --- a/Controllers/RazerController/RazerController.cpp +++ b/Controllers/RazerController/RazerController.cpp @@ -47,6 +47,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha \*-----------------------------------------------------------------*/ switch(dev_pid) { + case RAZER_BASILISK_V3_PID: case RAZER_BLACKWIDOW_ELITE_PID: case RAZER_BLACKWIDOW_2019_PID: case RAZER_BLACKWIDOW_V3_MINI_WIRED_PID: @@ -107,20 +108,20 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha \*-----------------------------------------------------------------*/ switch(dev_pid) { - case RAZER_GOLIATHUS_CHROMA_EXTENDED_PID: - case RAZER_GOLIATHUS_CHROMA_PID: - case RAZER_MAMBA_ELITE_PID: - case RAZER_TARTARUS_V2_PID: case RAZER_BASE_STATION_CHROMA_PID: case RAZER_BASE_STATION_V2_CHROMA_PID: - case RAZER_MOUSE_BUNGEE_V3_CHROMA_PID: case RAZER_CHARGING_PAD_CHROMA_PID: case RAZER_CHROMA_HDK_PID: case RAZER_CORE_X_PID: case RAZER_DEATHADDER_ELITE_PID: case RAZER_FIREFLY_V2_PID: + case RAZER_GOLIATHUS_CHROMA_EXTENDED_PID: + case RAZER_GOLIATHUS_CHROMA_PID: + case RAZER_MAMBA_ELITE_PID: + case RAZER_MOUSE_BUNGEE_V3_CHROMA_PID: case RAZER_NAGA_LEFT_HANDED_PID: case RAZER_O11_DYNAMIC_PID: + case RAZER_TARTARUS_V2_PID: dev_led_id = RAZER_LED_ID_ZERO; break; @@ -209,6 +210,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha case RAZER_BASILISK_ULTIMATE_WIRED_PID: case RAZER_BASILISK_ULTIMATE_WIRELESS_PID: case RAZER_BASILISK_V2_PID: + case RAZER_BASILISK_V3_PID: case RAZER_BLACKWIDOW_2019_PID: case RAZER_BLACKWIDOW_ELITE_PID: case RAZER_BLACKWIDOW_V3_PID: @@ -513,6 +515,7 @@ bool RazerController::SupportsWave() \*-----------------------------------------------------*/ case RAZER_BASILISK_ULTIMATE_WIRED_PID: case RAZER_BASILISK_ULTIMATE_WIRELESS_PID: + case RAZER_BASILISK_V3_PID: case RAZER_DIAMONDBACK_CHROMA_PID: case RAZER_MAMBA_2015_WIRED_PID: case RAZER_MAMBA_2015_WIRELESS_PID: @@ -598,9 +601,9 @@ razer_report RazerController::razer_create_report(unsigned char command_class, u new_report.transaction_id.id = dev_transaction_id; new_report.remaining_packets = 0x00; new_report.protocol_type = 0x00; + new_report.data_size = data_size; new_report.command_class = command_class; new_report.command_id.id = command_id; - new_report.data_size = data_size; return new_report; } diff --git a/Controllers/RazerController/RazerControllerDetect.cpp b/Controllers/RazerController/RazerControllerDetect.cpp index a845f067b..1346d67e0 100644 --- a/Controllers/RazerController/RazerControllerDetect.cpp +++ b/Controllers/RazerController/RazerControllerDetect.cpp @@ -315,6 +315,7 @@ REGISTER_HID_DETECTOR_IPU("Razer Basilisk Essential", Det REGISTER_HID_DETECTOR_IPU("Razer Basilisk Ultimate (Wired)", DetectRazerControllers, RAZER_VID, RAZER_BASILISK_ULTIMATE_WIRED_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Basilisk Ultimate (Wireless)", DetectRazerControllers, RAZER_VID, RAZER_BASILISK_ULTIMATE_WIRELESS_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Basilisk V2", DetectRazerControllers, RAZER_VID, RAZER_BASILISK_V2_PID, 0x00, 0x01, 0x02); +REGISTER_HID_DETECTOR_IPU("Razer Basilisk V3", DetectRazerControllers, RAZER_VID, RAZER_BASILISK_V3_PID, 0x03, 0x0C, 0x01); REGISTER_HID_DETECTOR_IPU("Razer Deathadder Chroma", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_CHROMA_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Deathadder Elite", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_ELITE_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Deathadder Essential", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_ESSENTIAL_PID, 0x00, 0x01, 0x02); diff --git a/Controllers/RazerController/RazerDevices.h b/Controllers/RazerController/RazerDevices.h index df33ee738..4732ce3b3 100644 --- a/Controllers/RazerController/RazerDevices.h +++ b/Controllers/RazerController/RazerDevices.h @@ -100,6 +100,7 @@ #define RAZER_BASILISK_ULTIMATE_WIRELESS_PID 0x0088 #define RAZER_BASILISK_X_HYPERSPEED_PID 0x0083 #define RAZER_BASILISK_V2_PID 0x0085 +#define RAZER_BASILISK_V3_PID 0x0099 #define RAZER_DEATHADDER_1800_PID 0x0038 #define RAZER_DEATHADDER_2000_PID 0x004F #define RAZER_DEATHADDER_2013_PID 0x0037 @@ -4934,6 +4935,65 @@ static const razer_device basilisk_v2_device = 0 }; +/*-------------------------------------------------------------*\ +| Razer Basilisk V3 1532:0099 | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "LED Strip" | +| Linear | +| 9 LED | +\*-------------------------------------------------------------*/ +static const razer_zone basilisk_v3_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone basilisk_v3_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone basilisk_v3_ledstrip_zone = +{ + "LED Strip", + ZONE_TYPE_LINEAR, + 1, + 9 +}; + +static const razer_device basilisk_v3_device = +{ + "Razer Basilisk V3", + RAZER_BASILISK_V3_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 11, + { + &basilisk_v3_scroll_wheel_zone, + &basilisk_v3_logo_zone, + &basilisk_v3_ledstrip_zone, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + /*-------------------------------------------------------------*\ | Razer DeathAdder Chroma | | | @@ -7753,6 +7813,7 @@ static const razer_device* device_list[] = &basilisk_ultimate_wired_device, &basilisk_ultimate_wireless_device, &basilisk_v2_device, + &basilisk_v3_device, &deathadder_chroma_device, &deathadder_elite_device, &deathadder_essential_device,