From 7f865d73f0d650bb1deb662ac76e19334210900d Mon Sep 17 00:00:00 2001 From: Zhi Yan <773534601@qq.com> Date: Fri, 30 May 2025 13:01:13 +0000 Subject: [PATCH] Add some DRGB controllers --- Controllers/DRGBController/DRGBController.cpp | 23 ------------- Controllers/DRGBController/DRGBController.h | 1 - .../DRGBController/DRGBControllerDetect.cpp | 7 ++++ .../DRGBController/RGBController_DRGB.cpp | 33 ++++++++++++++++++- .../DRGBController/RGBController_DRGB.h | 7 ++++ 5 files changed, 46 insertions(+), 25 deletions(-) diff --git a/Controllers/DRGBController/DRGBController.cpp b/Controllers/DRGBController/DRGBController.cpp index 9aaddc14..537bacd2 100644 --- a/Controllers/DRGBController/DRGBController.cpp +++ b/Controllers/DRGBController/DRGBController.cpp @@ -21,11 +21,6 @@ DRGBController::DRGBController(hid_device* dev_handle, const char* path, unsigne location = path; device_pid = pid; - /*-----------------------------------------------------*\ - | Initialize controller | - \*-----------------------------------------------------*/ - InitController(); - /*-----------------------------------------------------*\ | Exit hardware effects. Start a thread to continuously| | send a keepalive packet every 500ms | @@ -56,24 +51,6 @@ void DRGBController::KeepaliveThread() } } - -void DRGBController::InitController() -{ - /*-----------------------------------------------------*\ - | Get version | - \*-----------------------------------------------------*/ - unsigned char cmd_data[65]; - cmd_data[0]=0x00; - cmd_data[1]=0x02; - cmd_data[2]=0x00; - hid_write(dev, cmd_data, 65); - hid_read(dev, cmd_data, 6); - version[0] = cmd_data[1]; - version[1] = cmd_data[2]; - version[2] = cmd_data[3]; - version[3] = cmd_data[4]; -} - std::string DRGBController::GetFirmwareString() { return "v"+std::to_string(version[0]) + "." + std::to_string(version[1]) + "." + std::to_string(version[2]) + "." + std::to_string(version[3]); diff --git a/Controllers/DRGBController/DRGBController.h b/Controllers/DRGBController/DRGBController.h index 19c368d7..eefb501a 100644 --- a/Controllers/DRGBController/DRGBController.h +++ b/Controllers/DRGBController/DRGBController.h @@ -28,7 +28,6 @@ public: DRGBController(hid_device* dev_handle, const char* path, unsigned short pid); ~DRGBController(); void KeepaliveThread(); - void InitController(); std::string GetFirmwareString(); std::string GetLocationString(); std::string GetSerialString(); diff --git a/Controllers/DRGBController/DRGBControllerDetect.cpp b/Controllers/DRGBController/DRGBControllerDetect.cpp index 9aea3cb0..a1553e25 100644 --- a/Controllers/DRGBController/DRGBControllerDetect.cpp +++ b/Controllers/DRGBController/DRGBControllerDetect.cpp @@ -34,6 +34,13 @@ REGISTER_HID_DETECTOR("DRGB ULTRA V4F", DetectDRGBControllers, DRGBV4_VID, DRGB_ REGISTER_HID_DETECTOR("DRGB CORE V4F", DetectDRGBControllers, DRGBV4_VID, DRGB_CORE_V4F_PID); REGISTER_HID_DETECTOR("DRGB SIG V4F", DetectDRGBControllers, DRGBV4_VID, DRGB_SIG_V4F_PID); +REGISTER_HID_DETECTOR("DRGB LED V5", DetectDRGBControllers, DRGBV4_VID, DRGB_LED_V5_PID); +REGISTER_HID_DETECTOR("DRGB ULTRA V5", DetectDRGBControllers, DRGBV4_VID, DRGB_ULTRA_V5_PID); +REGISTER_HID_DETECTOR("DRGB ULTRA V5F", DetectDRGBControllers, DRGBV4_VID, DRGB_ULTRA_V5F_PID); +REGISTER_HID_DETECTOR("DRGB CORE V5", DetectDRGBControllers, DRGBV4_VID, DRGB_CORE_V5_PID); +REGISTER_HID_DETECTOR("DRGB CORE V5F", DetectDRGBControllers, DRGBV4_VID, DRGB_CORE_V5F_PID); +REGISTER_HID_DETECTOR("DRGB SIG V5F", DetectDRGBControllers, DRGBV4_VID, DRGB_SIG_V5F_PID); + REGISTER_HID_DETECTOR("DRGB LED", DetectDRGBControllers, DRGBV3_VID, DRGB_LED_V3_PID); REGISTER_HID_DETECTOR("DRGB Ultra V3", DetectDRGBControllers, DRGBV3_VID, DRGB_Ultra_V3_PID); REGISTER_HID_DETECTOR("DRGB CORE V3", DetectDRGBControllers, DRGBV3_VID, DRGB_CORE_V3_PID); diff --git a/Controllers/DRGBController/RGBController_DRGB.cpp b/Controllers/DRGBController/RGBController_DRGB.cpp index bec688a0..6fd946d6 100644 --- a/Controllers/DRGBController/RGBController_DRGB.cpp +++ b/Controllers/DRGBController/RGBController_DRGB.cpp @@ -70,7 +70,7 @@ void RGBController_DRGB::SetupZones() { case DRGB_LED_V4_PID: NUM_CHANNELS = 8; - NUM_Channel_led = 256; + NUM_Channel_led = 512; Version = 4; break; case DRGB_ULTRA_V4F_PID: @@ -89,6 +89,37 @@ void RGBController_DRGB::SetupZones() Version = 4; break; + case DRGB_LED_V5_PID: + NUM_CHANNELS = 8; + NUM_Channel_led = 512; + Version = 4; + break; + case DRGB_ULTRA_V5_PID: + NUM_CHANNELS = 16; + NUM_Channel_led = 256; + Version = 4; + break; + case DRGB_ULTRA_V5F_PID: + NUM_CHANNELS = 16; + NUM_Channel_led = 256; + Version = 4; + break; + case DRGB_CORE_V5_PID: + NUM_CHANNELS = 32; + NUM_Channel_led = 256; + Version = 4; + break; + case DRGB_CORE_V5F_PID: + NUM_CHANNELS = 32; + NUM_Channel_led = 256; + Version = 4; + break; + case DRGB_SIG_V5F_PID: + NUM_CHANNELS = 32; + NUM_Channel_led = 256; + Version = 4; + break; + case DRGB_LED_V3_PID: NUM_CHANNELS = 8; NUM_Channel_led = 256; diff --git a/Controllers/DRGBController/RGBController_DRGB.h b/Controllers/DRGBController/RGBController_DRGB.h index b2f5f4e6..d43d15d3 100644 --- a/Controllers/DRGBController/RGBController_DRGB.h +++ b/Controllers/DRGBController/RGBController_DRGB.h @@ -20,6 +20,13 @@ #define DRGB_CORE_V4F_PID 0x3628 #define DRGB_SIG_V4F_PID 0x3636 +#define DRGB_LED_V5_PID 0x3208 +#define DRGB_ULTRA_V5_PID 0x3215 +#define DRGB_ULTRA_V5F_PID 0x3217 +#define DRGB_CORE_V5_PID 0x3228 +#define DRGB_CORE_V5F_PID 0x3229 +#define DRGB_SIG_V5F_PID 0x3232 + #define DRGBV3_VID 0x2023 #define DRGB_LED_V3_PID 0x1209 #define DRGB_Ultra_V3_PID 0x1221