From d0d2bfb553a63b4657b6b744b02b72bf73d0366b Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Mon, 21 Sep 2026 23:30:07 -0500 Subject: [PATCH] Convert NZXTHuePlusController to use USB Serial detector --- .../NZXTHuePlusController.cpp | 2 +- .../NZXTHuePlusController.h | 2 +- .../NZXTHuePlusControllerDetect.cpp | 26 ++++++------------- 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/Controllers/NZXTHuePlusController/NZXTHuePlusController.cpp b/Controllers/NZXTHuePlusController/NZXTHuePlusController.cpp index 8100156c6..20ac5d7ee 100644 --- a/Controllers/NZXTHuePlusController/NZXTHuePlusController.cpp +++ b/Controllers/NZXTHuePlusController/NZXTHuePlusController.cpp @@ -27,7 +27,7 @@ HuePlusController::~HuePlusController() delete serialport; } -void HuePlusController::Initialize(char* port) +void HuePlusController::Initialize(std::string port) { port_name = port; diff --git a/Controllers/NZXTHuePlusController/NZXTHuePlusController.h b/Controllers/NZXTHuePlusController/NZXTHuePlusController.h index 0530f7c25..e6ec70e75 100644 --- a/Controllers/NZXTHuePlusController/NZXTHuePlusController.h +++ b/Controllers/NZXTHuePlusController/NZXTHuePlusController.h @@ -74,7 +74,7 @@ public: HuePlusController(); ~HuePlusController(); - void Initialize(char* port); + void Initialize(std::string port); std::string GetLocation(); unsigned int GetLEDsOnChannel(unsigned int channel); diff --git a/Controllers/NZXTHuePlusController/NZXTHuePlusControllerDetect.cpp b/Controllers/NZXTHuePlusController/NZXTHuePlusControllerDetect.cpp index 58b7020cb..2ccfce005 100644 --- a/Controllers/NZXTHuePlusController/NZXTHuePlusControllerDetect.cpp +++ b/Controllers/NZXTHuePlusController/NZXTHuePlusControllerDetect.cpp @@ -11,37 +11,27 @@ #include #include "DetectionManager.h" -#include "find_usb_serial_port.h" #include "NZXTHuePlusController.h" #include "RGBController_NZXTHuePlus.h" /*---------------------------------------------------------*\ | NZXT USB IDs | \*---------------------------------------------------------*/ -#define NZXT_HUE_PLUS_VID 0x04D8 -#define NZXT_HUE_PLUS_PID 0x00DF +#define NZXT_HUE_PLUS_VID 0x04D8 +#define NZXT_HUE_PLUS_PID 0x00DF -DetectedControllers DetectNZXTHuePlusControllers() +DetectedControllers DetectNZXTHuePlusControllers(SerialDeviceInfo* port_info, const std::string& name) { DetectedControllers detected_controllers; - std::vector ports; - ports = find_usb_serial_port(NZXT_HUE_PLUS_VID, NZXT_HUE_PLUS_PID); + HuePlusController* controller = new HuePlusController(); + controller->Initialize(port_info->port_path); - for(std::size_t i = 0; i < ports.size(); i++) - { - if(ports[i] != "") - { - HuePlusController* controller = new HuePlusController(); - controller->Initialize((char *)ports[i].c_str()); - RGBController_HuePlus* rgb_controller = new RGBController_HuePlus(controller); + RGBController_HuePlus* rgb_controller = new RGBController_HuePlus(controller); - detected_controllers.push_back(rgb_controller); - } - } + detected_controllers.push_back(rgb_controller); return(detected_controllers); } -REGISTER_DETECTOR("NZXT Hue+", DetectNZXTHuePlusControllers); -REGISTER_CUSTOM_UDEV_RULE(nzxt_hue_plus, "NZXT Hue+", "SUBSYSTEMS==\"serial|hidraw\", ATTRS{idVendor}==\"04d8\", ATTRS{idProduct}==\"00df\", TAG+=\"uaccess\", TAG+=\"NZXT_Hue\""); +REGISTER_USB_SERIAL_DETECTOR("NZXT Hue+", DetectNZXTHuePlusControllers, NZXT_HUE_PLUS_VID, NZXT_HUE_PLUS_PID);