diff --git a/Controllers/NZXTKrakenController/NZXTKrakenControllerDetect.cpp b/Controllers/NZXTKrakenController/NZXTKrakenControllerDetect.cpp index 13105e1a..3beca78e 100644 --- a/Controllers/NZXTKrakenController/NZXTKrakenControllerDetect.cpp +++ b/Controllers/NZXTKrakenController/NZXTKrakenControllerDetect.cpp @@ -5,15 +5,34 @@ #include #include -#define NZXT_KRAKEN_VID 0x1E71 -#define NZXT_KRAKEN_PID 0x170E +#define NZXT_KRAKEN_VID 0x1E71 +#define NZXT_KRAKEN_X2_PID 0x170E +#define NZXT_KRAKEN_M2_PID 0x1715 + +typedef struct +{ + unsigned short usb_vid; + unsigned short usb_pid; + const char * name; +} nzxt_kraken_device; + +#define NZXT_KRAKEN_NUM_DEVICES (sizeof(device_list) / sizeof(device_list[ 0 ])) + +static const nzxt_kraken_device device_list[] = +{ + /*-----------------------------------------------------------------------------------------------------*\ + | NZXT Hue 2 devices | + \*-----------------------------------------------------------------------------------------------------*/ + { NZXT_KRAKEN_VID, NZXT_KRAKEN_X2_PID, "NZXT Kraken X2" }, + { NZXT_KRAKEN_VID, NZXT_KRAKEN_M2_PID, "NZXT Kraken M2" }, +}; /******************************************************************************************\ * * * DetectNZXTKrakenControllers * * * * Detect devices supported by the NZXTKraken driver * -* * * +* * \******************************************************************************************/ void DetectNZXTKrakenControllers(std::vector &rgb_controllers) @@ -23,17 +42,17 @@ void DetectNZXTKrakenControllers(std::vector &rgb_controllers) hid_init(); - for(std::size_t device_idx = 0; device_idx < 1; device_idx++) + for(std::size_t device_idx = 0; device_idx < NZXT_KRAKEN_NUM_DEVICES; device_idx++) { dev = NULL; - info = hid_enumerate(NZXT_KRAKEN_VID, NZXT_KRAKEN_PID); + info = hid_enumerate(device_list[device_idx].usb_vid, device_list[device_idx].usb_pid); //Look for NZXT Kraken devices while(info) { - if((info->vendor_id == NZXT_KRAKEN_VID) - &&(info->product_id == NZXT_KRAKEN_PID)) + if((info->vendor_id == device_list[device_idx].usb_vid) + &&(info->product_id == device_list[device_idx].usb_pid)) { dev = hid_open_path(info->path); @@ -43,6 +62,8 @@ void DetectNZXTKrakenControllers(std::vector &rgb_controllers) RGBController_NZXTKraken* rgb_controller = new RGBController_NZXTKraken(controller); + rgb_controller->name = device_list[device_idx].name; + rgb_controllers.push_back(rgb_controller); } } diff --git a/RGBController/RGBController_NZXTKraken.cpp b/RGBController/RGBController_NZXTKraken.cpp index 3ba0cf0a..422925a8 100644 --- a/RGBController/RGBController_NZXTKraken.cpp +++ b/RGBController/RGBController_NZXTKraken.cpp @@ -14,9 +14,9 @@ RGBController_NZXTKraken::RGBController_NZXTKraken(NZXTKrakenController* nzxtkra { nzxtkraken = nzxtkraken_ptr; - name = "NZXT Kraken X"; + name = "NZXT Kraken X/M"; type = DEVICE_TYPE_COOLER; - description = "NZXT Kraken X42/X52/X62/X72"; + description = "NZXT Kraken X42/X52/X62/X72/M22"; version = nzxtkraken->GetFirmwareVersion(); mode Direct;