Add firmware version request to NZXT Hue 2 controller

This commit is contained in:
Adam Honse 2020-06-22 23:23:36 -05:00
parent 0464fbcbe2
commit 7a3de1edbb
3 changed files with 28 additions and 0 deletions

View file

@ -15,6 +15,7 @@ NZXTHue2Controller::NZXTHue2Controller(hid_device* dev_handle)
{ {
dev = dev_handle; dev = dev_handle;
SendFirmwareRequest();
GetStripsOnChannel(HUE_2_CHANNEL_1); GetStripsOnChannel(HUE_2_CHANNEL_1);
} }
@ -23,6 +24,11 @@ NZXTHue2Controller::~NZXTHue2Controller()
} }
std::string NZXTHue2Controller::GetFirmwareVersion()
{
return(firmware_version);
}
unsigned int NZXTHue2Controller::GetStripsOnChannel(unsigned int /*channel*/) unsigned int NZXTHue2Controller::GetStripsOnChannel(unsigned int /*channel*/)
{ {
unsigned int ret_val = 0; unsigned int ret_val = 0;
@ -280,3 +286,18 @@ void NZXTHue2Controller::SendEffect
hid_write(dev, usb_buf, 64); hid_write(dev, usb_buf, 64);
hid_read(dev, usb_buf, 64); hid_read(dev, usb_buf, 64);
} }
void NZXTHue2Controller::SendFirmwareRequest()
{
unsigned char usb_buf[64];
memset(usb_buf, 0x00, sizeof(usb_buf));
usb_buf[0x00] = 0x10;
usb_buf[0x01] = 0x01;
hid_write(dev, usb_buf, 64);
hid_read(dev, usb_buf, 64);
snprintf(firmware_version, 16, "%u.%u.%u", usb_buf[0x11], usb_buf[0x12], usb_buf[0x13]);
}

View file

@ -5,6 +5,7 @@
\*---------------------------------------------------------*/ \*---------------------------------------------------------*/
#include "RGBController.h" #include "RGBController.h"
#include <string>
#include <vector> #include <vector>
#include <hidapi/hidapi.h> #include <hidapi/hidapi.h>
@ -56,6 +57,8 @@ public:
NZXTHue2Controller(hid_device* dev_handle); NZXTHue2Controller(hid_device* dev_handle);
~NZXTHue2Controller(); ~NZXTHue2Controller();
std::string GetFirmwareVersion();
unsigned int GetStripsOnChannel unsigned int GetStripsOnChannel
( (
unsigned int channel unsigned int channel
@ -82,6 +85,7 @@ public:
private: private:
hid_device* dev; hid_device* dev;
char firmware_version[16];
void SendApply void SendApply
( (
@ -105,4 +109,6 @@ private:
unsigned char color_count, unsigned char color_count,
unsigned char* color_data unsigned char* color_data
); );
void SendFirmwareRequest();
}; };

View file

@ -16,6 +16,7 @@ RGBController_NZXTHue2::RGBController_NZXTHue2(NZXTHue2Controller* hue2_ptr)
name = "NZXT Hue 2"; name = "NZXT Hue 2";
type = DEVICE_TYPE_LEDSTRIP; type = DEVICE_TYPE_LEDSTRIP;
description = "NZXT Hue 2 Device"; description = "NZXT Hue 2 Device";
version = hue2->GetFirmwareVersion();
mode Direct; mode Direct;
Direct.name = "Direct"; Direct.name = "Direct";