From fb7193a31fb1e1e96dc248fe8e33a1fd70863498 Mon Sep 17 00:00:00 2001 From: Chris M Date: Fri, 8 Mar 2024 07:15:23 +1100 Subject: [PATCH] Initial commit for Razer Leviathan V2 + Adding PID for the Leviathan V2 + Registered detectors + Added metadata to RazerDevices.cpp + Added capabilities to RazerController.cpp + Resolves #4002 --- .../RazerController/RazerController.cpp | 3 ++ .../RazerController/RazerControllerDetect.cpp | 1 + Controllers/RazerController/RazerDevices.cpp | 36 +++++++++++++++++++ Controllers/RazerController/RazerDevices.h | 1 + 4 files changed, 41 insertions(+) diff --git a/Controllers/RazerController/RazerController.cpp b/Controllers/RazerController/RazerController.cpp index e1a9fb9ab..bb2ab8e6f 100644 --- a/Controllers/RazerController/RazerController.cpp +++ b/Controllers/RazerController/RazerController.cpp @@ -42,6 +42,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha \*-----------------------------------------------------------------*/ switch(dev_pid) { + case RAZER_LEVIATHAN_V2_PID: case RAZER_LEVIATHAN_V2X_PID: report_index = 0x07; response_index = 0x07; @@ -100,6 +101,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha case RAZER_GOLIATHUS_CHROMA_3XL_PID: case RAZER_LAPTOP_STAND_CHROMA_PID: case RAZER_LAPTOP_STAND_CHROMA_V2_PID: + case RAZER_LEVIATHAN_V2_PID: case RAZER_LEVIATHAN_V2X_PID: case RAZER_MAMBA_ELITE_PID: case RAZER_MAMBA_HYPERFLUX_PID: @@ -465,6 +467,7 @@ bool RazerController::SupportsWave() case RAZER_FIREFLY_HYPERFLUX_PID: case RAZER_LAPTOP_STAND_CHROMA_PID: case RAZER_LAPTOP_STAND_CHROMA_V2_PID: + case RAZER_LEVIATHAN_V2_PID: case RAZER_LEVIATHAN_V2X_PID: case RAZER_MOUSE_BUNGEE_V3_CHROMA_PID: case RAZER_MOUSE_DOCK_PRO_PID: diff --git a/Controllers/RazerController/RazerControllerDetect.cpp b/Controllers/RazerController/RazerControllerDetect.cpp index 02a5f4061..79c915b6b 100644 --- a/Controllers/RazerController/RazerControllerDetect.cpp +++ b/Controllers/RazerController/RazerControllerDetect.cpp @@ -328,6 +328,7 @@ REGISTER_HID_DETECTOR_IPU("Razer Core", Det REGISTER_HID_DETECTOR_IPU("Razer Core X", DetectRazerControllers, RAZER_VID, RAZER_CORE_X_PID, 0x02, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Laptop Stand Chroma", DetectRazerControllers, RAZER_VID, RAZER_LAPTOP_STAND_CHROMA_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Laptop Stand Chroma V2", DetectRazerControllers, RAZER_VID, RAZER_LAPTOP_STAND_CHROMA_V2_PID, 0x00, 0x01, 0x02); +REGISTER_HID_DETECTOR_IPU("Razer Leviathan V2", DetectRazerControllers, RAZER_VID, RAZER_LEVIATHAN_V2_PID, 0x02, 0x0C, 0x01); REGISTER_HID_DETECTOR_IPU("Razer Leviathan V2 X", DetectRazerControllers, RAZER_VID, RAZER_LEVIATHAN_V2X_PID, 0x00, 0x0C, 0x01); REGISTER_HID_DETECTOR_IPU("Razer Mouse Bungee V3 Chroma", DetectRazerControllers, RAZER_VID, RAZER_MOUSE_BUNGEE_V3_CHROMA_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Mouse Dock Chroma", DetectRazerControllers, RAZER_VID, RAZER_MOUSE_DOCK_CHROMA_PID, 0x00, 0x01, 0x02); diff --git a/Controllers/RazerController/RazerDevices.cpp b/Controllers/RazerController/RazerDevices.cpp index 6e0802a2d..6569c985b 100644 --- a/Controllers/RazerController/RazerDevices.cpp +++ b/Controllers/RazerController/RazerDevices.cpp @@ -5227,6 +5227,41 @@ static const razer_device lancehead_te_device = NULL }; +/*-------------------------------------------------------------*\ +| Razer Leviathan V2 1532:0532 | +| | +| Zone "Speaker Underglow" | +| Linear | +| 18 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone leviathan_v2_speaker_zone = +{ + "Speaker Underglow", + ZONE_TYPE_LINEAR, + 2, + 9 +}; + +static const razer_device leviathan_v2_device = +{ + "Razer Leviathan V2", + RAZER_LEVIATHAN_V2_PID, + DEVICE_TYPE_SPEAKER, + RAZER_MATRIX_TYPE_EXTENDED, + 0x1F, + 2, + 9, + { + &leviathan_v2_speaker_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL +}; + /*-------------------------------------------------------------*\ | Razer Leviathan V2X 1532:054A | | | @@ -8044,6 +8079,7 @@ const razer_device* razer_device_list[] = &core_x_device, &laptop_stand_chroma_device, &laptop_stand_chroma_v2_device, + &leviathan_v2_device, &leviathan_v2x_device, &mug_holder_device, &mouse_dock_chroma_device, diff --git a/Controllers/RazerController/RazerDevices.h b/Controllers/RazerController/RazerDevices.h index e1a79cf88..899810c8b 100644 --- a/Controllers/RazerController/RazerDevices.h +++ b/Controllers/RazerController/RazerDevices.h @@ -231,6 +231,7 @@ #define RAZER_GOLIATHUS_CHROMA_3XL_PID 0x0C06 #define RAZER_LAPTOP_STAND_CHROMA_PID 0x0F0D #define RAZER_LAPTOP_STAND_CHROMA_V2_PID 0x0F2B +#define RAZER_LEVIATHAN_V2_PID 0x0532 #define RAZER_LEVIATHAN_V2X_PID 0x054A #define RAZER_MOUSE_BUNGEE_V3_CHROMA_PID 0x0F1D #define RAZER_MOUSE_DOCK_CHROMA_PID 0x007E