Initial support for NZXT RGB & Fan Controller PID 0x2011, F140 RGB fan

This commit is contained in:
Adam Honse
2023-05-02 17:54:11 -05:00
parent 246aa6d1a5
commit 757068819d
4 changed files with 41 additions and 24 deletions

View File

@@ -169,15 +169,19 @@ void NZXTHue2Controller::UpdateDeviceList()
case 0x05: //Hue 2 strip (8 LEDs)
num_leds_in_device = 8;
break;
case 0x06: //Hue 2 strip (6 LEDs)
num_leds_in_device = 6;
break;
case 0x08: //Hue 2 Cable Comb (14 LEDs)
num_leds_in_device = 14;
break;
case 0x09: //Hue 2 Underglow (300mm) (15 LEDs)
num_leds_in_device = 15;
break;
case 0x0A: //Hue 2 Underglow (200mm) (10 LEDs)
num_leds_in_device = 10;
break;
@@ -193,13 +197,13 @@ void NZXTHue2Controller::UpdateDeviceList()
case 0x10: //Kraken X3 ring
num_leds_in_device = 8;
break;
case 0x11: //Kraken X3 logo
num_leds_in_device = 1;
break;
case 0x08: //Hue 2 Cable Comb (14 LEDs)
num_leds_in_device = 14;
case 0x14: //F140 RGB fan (140mm)
num_leds_in_device = 18;
break;
default:

View File

@@ -18,7 +18,9 @@ enum
HUE_2_CHANNEL_2 = 0x02, /* Channel 2 */
HUE_2_CHANNEL_3 = 0x03, /* Channel 3 */
HUE_2_CHANNEL_4 = 0x04, /* Channel 4 */
HUE_2_NUM_CHANNELS = 0x04 /* Number of channels */
HUE_2_CHANNEL_5 = 0x05, /* Channel 5 */
HUE_2_CHANNEL_6 = 0x06, /* Channel 6 */
HUE_2_NUM_CHANNELS = 0x06 /* Number of channels */
};
enum
@@ -107,14 +109,14 @@ public:
void UpdateDeviceList();
void UpdateStatus();
unsigned int channel_leds[HUE_2_NUM_CHANNELS];
unsigned int channel_dev_ids[HUE_2_NUM_CHANNELS][6];
unsigned int channel_dev_szs[HUE_2_NUM_CHANNELS][6];
private:
hid_device* dev;
std::vector<unsigned char> fan_cmd;
std::vector<unsigned short> fan_rpm;

View File

@@ -14,6 +14,7 @@
#define NZXT_KRAKEN_X53_PID 0x2014
#define NZXT_RGB_FAN_CONTROLLER_PID 0x2009
#define NZXT_RGB_FAN_CONTROLLER2_PID 0x2010
#define NZXT_RGB_FAN_CONTROLLER4_PID 0x2011
#define NZXT_RGB_FAN_CONTROLLER3_PID 0x200E
#define NZXT_SMART_DEVICE_V2_1_PID 0x200D
#define NZXT_SMART_DEVICE_V2_2_PID 0x200F
@@ -62,15 +63,21 @@ void DetectNZXTFanController(hid_device_info* info, const std::string& name)
spawn_hue(info, name, 2, 3);
}
REGISTER_HID_DETECTOR("NZXT Hue 2", DetectNZXTHue2, NZXT_VID, NZXT_HUE_2_PID);
REGISTER_HID_DETECTOR("NZXT Hue 2 Ambient", DetectNZXTHue2Ambient, NZXT_VID, NZXT_HUE_2_AMBIENT_PID);
REGISTER_HID_DETECTOR("NZXT Hue 2 Motherboard", DetectNZXTHue2Motherboard, NZXT_VID, NZXT_MOTHERBOARD_DEVICE_PID);
REGISTER_HID_DETECTOR("NZXT Hue 2 Motherboard", DetectNZXTHue2Motherboard, NZXT_VID, NZXT_MOTHERBOARD_DEVICE_2_PID);
REGISTER_HID_DETECTOR("NZXT Smart Device V2", DetectNZXTSmartDeviceV2, NZXT_VID, NZXT_SMART_DEVICE_V2_PID);
REGISTER_HID_DETECTOR("NZXT Kraken X3", DetectNZXTKrakenX3, NZXT_VID, NZXT_KRAKEN_X3_PID);
REGISTER_HID_DETECTOR("NZXT Kraken X53", DetectNZXTKrakenX3, NZXT_VID, NZXT_KRAKEN_X53_PID);
REGISTER_HID_DETECTOR("NZXT RGB & Fan Controller", DetectNZXTFanController, NZXT_VID, NZXT_RGB_FAN_CONTROLLER_PID);
REGISTER_HID_DETECTOR("NZXT RGB & Fan Controller", DetectNZXTFanController, NZXT_VID, NZXT_RGB_FAN_CONTROLLER2_PID);
REGISTER_HID_DETECTOR("NZXT RGB & Fan Controller", DetectNZXTFanController, NZXT_VID, NZXT_RGB_FAN_CONTROLLER3_PID);
REGISTER_HID_DETECTOR("NZXT Smart Device V2", DetectNZXTSmartDeviceV2, NZXT_VID, NZXT_SMART_DEVICE_V2_1_PID);
REGISTER_HID_DETECTOR("NZXT Smart Device V2", DetectNZXTSmartDeviceV2, NZXT_VID, NZXT_SMART_DEVICE_V2_2_PID);
void DetectNZXTFanController6Channel(hid_device_info* info, const std::string& name)
{
spawn_hue(info, name, 6, 3);
}
REGISTER_HID_DETECTOR("NZXT Hue 2", DetectNZXTHue2, NZXT_VID, NZXT_HUE_2_PID);
REGISTER_HID_DETECTOR("NZXT Hue 2 Ambient", DetectNZXTHue2Ambient, NZXT_VID, NZXT_HUE_2_AMBIENT_PID);
REGISTER_HID_DETECTOR("NZXT Hue 2 Motherboard", DetectNZXTHue2Motherboard, NZXT_VID, NZXT_MOTHERBOARD_DEVICE_PID);
REGISTER_HID_DETECTOR("NZXT Hue 2 Motherboard", DetectNZXTHue2Motherboard, NZXT_VID, NZXT_MOTHERBOARD_DEVICE_2_PID);
REGISTER_HID_DETECTOR("NZXT Smart Device V2", DetectNZXTSmartDeviceV2, NZXT_VID, NZXT_SMART_DEVICE_V2_PID);
REGISTER_HID_DETECTOR("NZXT Kraken X3", DetectNZXTKrakenX3, NZXT_VID, NZXT_KRAKEN_X3_PID);
REGISTER_HID_DETECTOR("NZXT Kraken X53", DetectNZXTKrakenX3, NZXT_VID, NZXT_KRAKEN_X53_PID);
REGISTER_HID_DETECTOR("NZXT RGB & Fan Controller", DetectNZXTFanController, NZXT_VID, NZXT_RGB_FAN_CONTROLLER_PID);
REGISTER_HID_DETECTOR("NZXT RGB & Fan Controller", DetectNZXTFanController, NZXT_VID, NZXT_RGB_FAN_CONTROLLER2_PID);
REGISTER_HID_DETECTOR("NZXT RGB & Fan Controller", DetectNZXTFanController, NZXT_VID, NZXT_RGB_FAN_CONTROLLER3_PID);
REGISTER_HID_DETECTOR("NZXT RGB & Fan Controller", DetectNZXTFanController6Channel, NZXT_VID, NZXT_RGB_FAN_CONTROLLER4_PID);
REGISTER_HID_DETECTOR("NZXT Smart Device V2", DetectNZXTSmartDeviceV2, NZXT_VID, NZXT_SMART_DEVICE_V2_1_PID);
REGISTER_HID_DETECTOR("NZXT Smart Device V2", DetectNZXTSmartDeviceV2, NZXT_VID, NZXT_SMART_DEVICE_V2_2_PID);

View File

@@ -277,6 +277,10 @@ void RGBController_NZXTHue2::SetupZones()
device_name = "Hue 2 strip (6 LEDs)";
break;
case 0x08: //Hue 2 Cable Comb (14 LEDs)
device_name = "Hue 2 Cable Comb (14 LEDs)";
break;
case 0x09: //Hue 2 Underglow (300mm) (15 LEDs)
device_name = "Hue 2 Underglow (300mm) (15 LEDs)";
break;
@@ -301,8 +305,8 @@ void RGBController_NZXTHue2::SetupZones()
device_name = "Kraken X3 logo";
break;
case 0x08: //Hue 2 Cable Comb (14 LEDs)
device_name = "Hue 2 Cable Comb (14 LEDs)";
case 0x14: //F140 RGB fan (140mm)
device_name = "F140 fan (140mm)";
break;
default: