From f85dd617d3d0644920eb055591d5805a467a1b68 Mon Sep 17 00:00:00 2001 From: Codename-Antares Date: Fri, 9 Dec 2022 00:16:52 +0000 Subject: [PATCH] Initial Support for Razer Thunderbolt 4 Dock Chroma --- .../RazerController/RazerController.cpp | 2 + .../RazerController/RazerControllerDetect.cpp | 1 + Controllers/RazerController/RazerDevices.cpp | 37 +++++++++++++++++++ Controllers/RazerController/RazerDevices.h | 1 + 4 files changed, 41 insertions(+) diff --git a/Controllers/RazerController/RazerController.cpp b/Controllers/RazerController/RazerController.cpp index a0103bed1..d9d98a198 100644 --- a/Controllers/RazerController/RazerController.cpp +++ b/Controllers/RazerController/RazerController.cpp @@ -295,6 +295,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha case RAZER_TARTARUS_PRO_PID: case RAZER_TARTARUS_V2_PID: case RAZER_TIAMAT_71_V2_PID: + case RAZER_THUNDERBOLT_4_DOCK_CHROMA_PID: case RAZER_VIPER_8KHZ_PID: case RAZER_VIPER_MINI_PID: case RAZER_VIPER_PID: @@ -629,6 +630,7 @@ bool RazerController::SupportsWave() case RAZER_NOMMO_PRO_PID: case RAZER_O11_DYNAMIC_PID: case RAZER_STRIDER_CHROMA_PID: + case RAZER_THUNDERBOLT_4_DOCK_CHROMA_PID: supports_wave = true; break; diff --git a/Controllers/RazerController/RazerControllerDetect.cpp b/Controllers/RazerController/RazerControllerDetect.cpp index 722f50c96..4dd226999 100644 --- a/Controllers/RazerController/RazerControllerDetect.cpp +++ b/Controllers/RazerController/RazerControllerDetect.cpp @@ -402,6 +402,7 @@ REGISTER_HID_DETECTOR_IPU("Razer Mouse Bungee V3 Chroma", Det REGISTER_HID_DETECTOR_IPU("Razer Mouse Dock Chroma", DetectRazerControllers, RAZER_VID, RAZER_MOUSE_DOCK_CHROMA_PID, 0x00, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Lian Li O11 Dynamic - Razer Edition", DetectRazerControllers, RAZER_VID, RAZER_O11_DYNAMIC_PID, 0x02, 0x01, 0x02); REGISTER_HID_DETECTOR_PU ("Razer Seiren Emote", DetectRazerControllers, RAZER_VID, RAZER_SEIREN_EMOTE_PID, 0x0C, 0x01 ); +REGISTER_HID_DETECTOR_PU("Razer Thunderbolt 4 Dock Chroma", DetectRazerControllers, RAZER_VID, RAZER_THUNDERBOLT_4_DOCK_CHROMA_PID, 0x0C, 0x01 ); /*-----------------------------------------------------------------------------------------------------*\ | Nommo devices seem to have an issue where interface 1 doesn't show on Linux or MacOS. Due to the way | diff --git a/Controllers/RazerController/RazerDevices.cpp b/Controllers/RazerController/RazerDevices.cpp index 867aa8618..6e1357900 100644 --- a/Controllers/RazerController/RazerDevices.cpp +++ b/Controllers/RazerController/RazerDevices.cpp @@ -8118,6 +8118,42 @@ static const razer_device seiren_emote_device = 0 }; +/*-------------------------------------------------------------*\ +| Razer Thunderbolt 4 Dock Chroma | +| | +| Zone "LED Strip" | +| Linear | +| 12 LEDs | +| | +\*-------------------------------------------------------------*/ +static const razer_zone thunderbolt_4_dock_chroma_zone = +{ + "LED Strip", + ZONE_TYPE_LINEAR, + 1, + 12 +}; + +static const razer_device thunderbolt_4_dock_chroma_device = +{ + "Razer Thunderbolt 4 Dock Chroma", + RAZER_THUNDERBOLT_4_DOCK_CHROMA_PID, + DEVICE_TYPE_ACCESSORY, + true, + 1, + 12, + { + &thunderbolt_4_dock_chroma_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + /*-------------------------------------------------------------------------*\ | DEVICE MASTER LIST | \*-------------------------------------------------------------------------*/ @@ -8281,6 +8317,7 @@ const razer_device* razer_device_list[] = &nommo_pro_device, &o11_dynamic_device, &seiren_emote_device, + &thunderbolt_4_dock_chroma_device, }; const unsigned int RAZER_NUM_DEVICES = (sizeof(razer_device_list) / sizeof(razer_device_list[ 0 ])); diff --git a/Controllers/RazerController/RazerDevices.h b/Controllers/RazerController/RazerDevices.h index c865fa95e..39b9fad9c 100644 --- a/Controllers/RazerController/RazerDevices.h +++ b/Controllers/RazerController/RazerDevices.h @@ -212,6 +212,7 @@ #define RAZER_O11_DYNAMIC_PID 0x0F13 #define RAZER_SEIREN_EMOTE_PID 0x0F1B #define RAZER_STRIDER_CHROMA_PID 0x0C05 +#define RAZER_THUNDERBOLT_4_DOCK_CHROMA_PID 0x0F21 typedef struct {