diff --git a/Controllers/NZXTHuePlusController/NZXTHuePlusController.cpp b/Controllers/NZXTHuePlusController/NZXTHuePlusController.cpp index 8100156c..20ac5d7e 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 0530f7c2..e6ec70e7 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 58b7020c..2ccfce00 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);