Rename Hue2Controller to NZXTHue2Controller and add additional Hue 2 protocol devices documented in liquidctl

This commit is contained in:
Adam Honse 2020-06-19 14:40:29 -05:00
parent 614c9768ad
commit f1fe428f59
8 changed files with 52 additions and 44 deletions

View file

@ -4,26 +4,26 @@
| Adam Honse (calcprogrammer1@gmail.com), 12/29/2016 |
\*---------------------------------------------------------*/
#include "Hue2Controller.h"
#include "NZXTHue2Controller.h"
#include <fstream>
#include <iostream>
#include <string>
#include <cstring>
Hue2Controller::Hue2Controller(hid_device* dev_handle)
NZXTHue2Controller::NZXTHue2Controller(hid_device* dev_handle)
{
dev = dev_handle;
GetStripsOnChannel(HUE_2_CHANNEL_1);
}
Hue2Controller::~Hue2Controller()
NZXTHue2Controller::~NZXTHue2Controller()
{
}
unsigned int Hue2Controller::GetStripsOnChannel(unsigned int /*channel*/)
unsigned int NZXTHue2Controller::GetStripsOnChannel(unsigned int /*channel*/)
{
unsigned int ret_val = 0;
@ -87,7 +87,7 @@ unsigned int Hue2Controller::GetStripsOnChannel(unsigned int /*channel*/)
return(ret_val);
}
void Hue2Controller::SetChannelEffect
void NZXTHue2Controller::SetChannelEffect
(
unsigned char channel,
unsigned char mode,
@ -117,7 +117,7 @@ void Hue2Controller::SetChannelEffect
SendEffect(channel, mode, speed, direction, num_colors, &color_data[0]);
}
void Hue2Controller::SetChannelLEDs
void NZXTHue2Controller::SetChannelLEDs
(
unsigned char channel,
RGBColor * colors,
@ -161,7 +161,7 @@ void Hue2Controller::SetChannelLEDs
| Private packet sending functions. |
\*-------------------------------------------------------------------------------------------------*/
void Hue2Controller::SendApply
void NZXTHue2Controller::SendApply
(
unsigned char channel
)
@ -192,7 +192,7 @@ void Hue2Controller::SendApply
hid_read(dev, usb_buf, 64);
}
void Hue2Controller::SendDirect
void NZXTHue2Controller::SendDirect
(
unsigned char channel,
unsigned char group,
@ -227,7 +227,7 @@ void Hue2Controller::SendDirect
hid_read(dev, usb_buf, 64);
}
void Hue2Controller::SendEffect
void NZXTHue2Controller::SendEffect
(
unsigned char channel,
unsigned char mode,

View file

@ -50,11 +50,11 @@ enum
HUE_2_NUM_MODES /* Number of Hue 2 modes */
};
class Hue2Controller
class NZXTHue2Controller
{
public:
Hue2Controller(hid_device* dev_handle);
~Hue2Controller();
NZXTHue2Controller(hid_device* dev_handle);
~NZXTHue2Controller();
unsigned int GetStripsOnChannel
(

View file

@ -1,12 +1,14 @@
#include "Hue2Controller.h"
#include "NZXTHue2Controller.h"
#include "RGBController.h"
#include "RGBController_Hue2.h"
#include "RGBController_NZXTHue2.h"
#include <vector>
#include <hidapi/hidapi.h>
#define NZXT_VID 0x1E71
#define NZXT_HUE_2_PID 0x2001
#define NZXT_HUE_2_AMBIENT_PID 0x2002
#define NZXT_SMART_DEVICE_V2_PID 0x2006
#define NZXT_RGB_FAN_CONTROLLER_PID 0x2009
typedef struct
{
@ -23,18 +25,20 @@ static const nzxt_hue_2_device device_list[] =
| NZXT Hue 2 devices |
\*-----------------------------------------------------------------------------------------------------*/
{ NZXT_VID, NZXT_HUE_2_PID, "NZXT Hue 2" },
{ NZXT_VID, NZXT_SMART_DEVICE_V2_PID, "NZXT Smart Device V2" },
{ NZXT_VID, NZXT_HUE_2_AMBIENT_PID, "NZXT Hue 2 Ambient" },
{ NZXT_VID, NZXT_SMART_DEVICE_V2_PID, "NZXT Smart Device V2" },
{ NZXT_VID, NZXT_RGB_FAN_CONTROLLER_PID, "NZXT RGB & Fan Controller" },
};
/******************************************************************************************\
* *
* DetectHue2Controllers *
* DetectNZXTHue2Controllers *
* *
* Detect devices supported by the Hue2 driver *
* Detect devices supported by the NZXT Hue 2 driver *
* *
\******************************************************************************************/
void DetectHue2Controllers(std::vector<RGBController*> &rgb_controllers)
void DetectNZXTHue2Controllers(std::vector<RGBController*> &rgb_controllers)
{
hid_device_info* info;
hid_device* dev;
@ -64,13 +68,13 @@ void DetectHue2Controllers(std::vector<RGBController*> &rgb_controllers)
if( dev )
{
Hue2Controller* controller = new Hue2Controller(dev);
NZXTHue2Controller* controller = new NZXTHue2Controller(dev);
RGBController_Hue2* rgb_controller = new RGBController_Hue2(controller);
RGBController_NZXTHue2* rgb_controller = new RGBController_NZXTHue2(controller);
rgb_controller->name = device_list[device_idx].name;
rgb_controllers.push_back(rgb_controller);
}
}
} /* DetectHuePlusControllers() */
} /* DetectNZXTHue2Controllers() */

View file

@ -332,7 +332,7 @@ void DetectMSIRGBControllers(std::vector<RGBController*> &rgb_controllers);
void DetectAuraUSBControllers(std::vector<RGBController*> &rgb_controllers);
void DetectAuraCoreControllers(std::vector<RGBController*> &rgb_controllers);
void DetectLEDStripControllers(std::vector<RGBController*> &rgb_controllers);
void DetectHue2Controllers(std::vector<RGBController*> &rgb_controllers);
void DetectNZXTHue2Controllers(std::vector<RGBController*> &rgb_controllers);
void DetectHuePlusControllers(std::vector<RGBController*> &rgb_controllers);
void DetectOpenRazerControllers(std::vector<RGBController*> &rgb_controllers);
void DetectE131Controllers(std::vector<RGBController*> &rgb_controllers);
@ -385,7 +385,7 @@ void DetectRGBControllers(void)
DetectAuraUSBControllers(rgb_controllers);
DetectAuraCoreControllers(rgb_controllers);
DetectLEDStripControllers(rgb_controllers);
DetectHue2Controllers(rgb_controllers);
DetectNZXTHue2Controllers(rgb_controllers);
DetectHuePlusControllers(rgb_controllers);
DetectAMDWraithPrismControllers(rgb_controllers);

View file

@ -59,7 +59,6 @@ INCLUDEPATH += \
Controllers/CorsairVengeanceProController/ \
Controllers/CrucialController/ \
Controllers/GloriousModelOController/ \
Controllers/Hue2Controller/ \
Controllers/HuePlusController/ \
Controllers/HyperXDRAMController/ \
Controllers/HyperXKeyboardController/ \
@ -68,6 +67,7 @@ INCLUDEPATH += \
Controllers/MSI3ZoneController/ \
Controllers/MSIMysticLightController/ \
Controllers/MSIRGBController/ \
Controllers/NZXTHue2Controller/ \
Controllers/NZXTKrakenController/ \
Controllers/PatriotViperController/ \
Controllers/PolychromeController/ \
@ -118,7 +118,6 @@ HEADERS += \
Controllers/CorsairVengeanceProController/CorsairVengeanceProController.h \
Controllers/CrucialController/CrucialController.h \
Controllers/GloriousModelOController/GloriousModelOController.h \
Controllers/Hue2Controller/Hue2Controller.h \
Controllers/HuePlusController/HuePlusController.h \
Controllers/HyperXDRAMController/HyperXDRAMController.h \
Controllers/HyperXKeyboardController/HyperXKeyboardController.h \
@ -129,6 +128,8 @@ HEADERS += \
Controllers/MSI3ZoneController/MSI3ZoneController.h \
Controllers/MSIMysticLightController/MSIMysticLightController.h \
Controllers/MSIRGBController/MSIRGBController.h \
Controllers/NZXTHue2Controller/Hue2Controller.h \
Controllers/NZXTKrakenController/NZXTKrakenController.h \
Controllers/PatriotViperController/PatriotViperController.h \
Controllers/PolychromeController/PolychromeController.h \
Controllers/PoseidonZRGBController/PoseidonZRGBController.h \
@ -156,7 +157,6 @@ HEADERS += \
RGBController/RGBController_Dummy.h \
RGBController/RGBController_E131.h \
RGBController/RGBController_GloriousModelO.h \
RGBController/RGBController_Hue2.h \
RGBController/RGBController_HuePlus.h \
RGBController/RGBController_HyperXDRAM.h \
RGBController/RGBController_HyperXKeyboard.h \
@ -168,6 +168,8 @@ HEADERS += \
RGBController/RGBController_MSIMysticLight.h \
RGBController/RGBController_MSIRGB.h \
RGBController/RGBController_Network.h \
RGBController/RGBController_NZXTHue2.h \
RGBController/RGBController_NZXTKraken.h \
RGBController/RGBController_PatriotViper.h \
RGBController/RGBController_Polychrome.h \
RGBController/RGBController_PoseidonZRGB.h \
@ -231,8 +233,6 @@ SOURCES += \
Controllers/CrucialController/CrucialControllerDetect.cpp \
Controllers/GloriousModelOController/GloriousModelOController.cpp \
Controllers/GloriousModelOController/GloriousModelOControllerDetect.cpp \
Controllers/Hue2Controller/Hue2Controller.cpp \
Controllers/Hue2Controller/Hue2ControllerDetect.cpp \
Controllers/HuePlusController/HuePlusController.cpp \
Controllers/HuePlusController/HuePlusControllerDetect.cpp \
Controllers/HyperXDRAMController/HyperXDRAMController.cpp \
@ -251,6 +251,8 @@ SOURCES += \
Controllers/MSIMysticLightController/MSIMysticLightControllerDetect.cpp \
Controllers/MSIRGBController/MSIRGBController.cpp \
Controllers/MSIRGBController/MSIRGBControllerDetect.cpp \
Controllers/NZXTHue2Controller/NZXTHue2Controller.cpp \
Controllers/NZXTHue2Controller/NZXTHue2ControllerDetect.cpp \
Controllers/NZXTKrakenController/NZXTKrakenController.cpp \
Controllers/NZXTKrakenController/NZXTKrakenControllerDetect.cpp \
Controllers/PatriotViperController/PatriotViperController.cpp \
@ -291,7 +293,6 @@ SOURCES += \
RGBController/RGBController_Crucial.cpp \
RGBController/RGBController_Dummy.cpp \
RGBController/RGBController_GloriousModelO.cpp \
RGBController/RGBController_Hue2.cpp \
RGBController/RGBController_HuePlus.cpp \
RGBController/RGBController_HyperXDRAM.cpp \
RGBController/RGBController_HyperXKeyboard.cpp \
@ -304,6 +305,7 @@ SOURCES += \
RGBController/RGBController_MSIMysticLight.cpp \
RGBController/RGBController_MSIRGB.cpp \
RGBController/RGBController_Network.cpp \
RGBController/RGBController_NZXTHue2.cpp \
RGBController/RGBController_NZXTKraken.cpp \
RGBController/RGBController_PatriotViper.cpp \
RGBController/RGBController_Polychrome.cpp \

View file

@ -159,3 +159,5 @@ While no code from these projects directly made its way into OpenRGB, these proj
* VRMTool: https://github.com/rbrune/VRMtool
* g810-led: https://github.com/MatMoul/g810-led
* liquidctl: https://github.com/jonasmalacofilho/liquidctl

View file

@ -1,15 +1,15 @@
/*-----------------------------------------*\
| RGBController_Hue2.cpp |
| RGBController_NZXTHue2.cpp |
| |
| Generic RGB Interface for NZXT Hue 2 |
| |
| Adam Honse (CalcProgrammer1) 12/29/2019 |
\*-----------------------------------------*/
#include "RGBController_Hue2.h"
#include "RGBController_NZXTHue2.h"
RGBController_Hue2::RGBController_Hue2(Hue2Controller* hue2_ptr)
RGBController_NZXTHue2::RGBController_NZXTHue2(NZXTHue2Controller* hue2_ptr)
{
hue2 = hue2_ptr;
@ -129,7 +129,7 @@ RGBController_Hue2::RGBController_Hue2(Hue2Controller* hue2_ptr)
SetupZones();
}
void RGBController_Hue2::SetupZones()
void RGBController_NZXTHue2::SetupZones()
{
/*-------------------------------------------------*\
| Set up zones |
@ -170,12 +170,12 @@ void RGBController_Hue2::SetupZones()
SetupColors();
}
void RGBController_Hue2::ResizeZone(int /*zone*/, int /*new_size*/)
void RGBController_NZXTHue2::ResizeZone(int /*zone*/, int /*new_size*/)
{
}
void RGBController_Hue2::DeviceUpdateLEDs()
void RGBController_NZXTHue2::DeviceUpdateLEDs()
{
for(std::size_t zone_idx = 0; zone_idx < zones.size(); zone_idx++)
{
@ -183,24 +183,24 @@ void RGBController_Hue2::DeviceUpdateLEDs()
}
}
void RGBController_Hue2::UpdateZoneLEDs(int zone)
void RGBController_NZXTHue2::UpdateZoneLEDs(int zone)
{
hue2->SetChannelLEDs(zone, zones[zone].colors, zones[zone].leds_count);
}
void RGBController_Hue2::UpdateSingleLED(int led)
void RGBController_NZXTHue2::UpdateSingleLED(int led)
{
unsigned int zone_idx = leds[led].value;
hue2->SetChannelLEDs(zone_idx, zones[zone_idx].colors, zones[zone_idx].leds_count);
}
void RGBController_Hue2::SetCustomMode()
void RGBController_NZXTHue2::SetCustomMode()
{
active_mode = 0;
}
void RGBController_Hue2::UpdateMode()
void RGBController_NZXTHue2::UpdateMode()
{
if(modes[active_mode].value == 0xFFFF)
{

View file

@ -1,5 +1,5 @@
/*-----------------------------------------*\
| RGBController_Hue2.h |
| RGBController_NZXTHue2.h |
| |
| Generic RGB Interface for NZXT Hue 2 |
| |
@ -8,12 +8,12 @@
#pragma once
#include "RGBController.h"
#include "Hue2Controller.h"
#include "NZXTHue2Controller.h"
class RGBController_Hue2 : public RGBController
class RGBController_NZXTHue2 : public RGBController
{
public:
RGBController_Hue2(Hue2Controller* hue2_ptr);
RGBController_NZXTHue2(NZXTHue2Controller* hue2_ptr);
void SetupZones();
@ -27,7 +27,7 @@ public:
void UpdateMode();
private:
Hue2Controller* hue2;
NZXTHue2Controller* hue2;
std::vector<unsigned int> leds_channel;
std::vector<unsigned int> zones_channel;
};