Add some DRGB controllers

This commit is contained in:
Zhi Yan 2025-05-30 13:01:13 +00:00 committed by Adam Honse
parent d98db1587b
commit 7f865d73f0
5 changed files with 46 additions and 25 deletions

View file

@ -21,11 +21,6 @@ DRGBController::DRGBController(hid_device* dev_handle, const char* path, unsigne
location = path;
device_pid = pid;
/*-----------------------------------------------------*\
| Initialize controller |
\*-----------------------------------------------------*/
InitController();
/*-----------------------------------------------------*\
| Exit hardware effects. Start a thread to continuously|
| send a keepalive packet every 500ms |
@ -56,24 +51,6 @@ void DRGBController::KeepaliveThread()
}
}
void DRGBController::InitController()
{
/*-----------------------------------------------------*\
| Get version |
\*-----------------------------------------------------*/
unsigned char cmd_data[65];
cmd_data[0]=0x00;
cmd_data[1]=0x02;
cmd_data[2]=0x00;
hid_write(dev, cmd_data, 65);
hid_read(dev, cmd_data, 6);
version[0] = cmd_data[1];
version[1] = cmd_data[2];
version[2] = cmd_data[3];
version[3] = cmd_data[4];
}
std::string DRGBController::GetFirmwareString()
{
return "v"+std::to_string(version[0]) + "." + std::to_string(version[1]) + "." + std::to_string(version[2]) + "." + std::to_string(version[3]);

View file

@ -28,7 +28,6 @@ public:
DRGBController(hid_device* dev_handle, const char* path, unsigned short pid);
~DRGBController();
void KeepaliveThread();
void InitController();
std::string GetFirmwareString();
std::string GetLocationString();
std::string GetSerialString();

View file

@ -34,6 +34,13 @@ REGISTER_HID_DETECTOR("DRGB ULTRA V4F", DetectDRGBControllers, DRGBV4_VID, DRGB_
REGISTER_HID_DETECTOR("DRGB CORE V4F", DetectDRGBControllers, DRGBV4_VID, DRGB_CORE_V4F_PID);
REGISTER_HID_DETECTOR("DRGB SIG V4F", DetectDRGBControllers, DRGBV4_VID, DRGB_SIG_V4F_PID);
REGISTER_HID_DETECTOR("DRGB LED V5", DetectDRGBControllers, DRGBV4_VID, DRGB_LED_V5_PID);
REGISTER_HID_DETECTOR("DRGB ULTRA V5", DetectDRGBControllers, DRGBV4_VID, DRGB_ULTRA_V5_PID);
REGISTER_HID_DETECTOR("DRGB ULTRA V5F", DetectDRGBControllers, DRGBV4_VID, DRGB_ULTRA_V5F_PID);
REGISTER_HID_DETECTOR("DRGB CORE V5", DetectDRGBControllers, DRGBV4_VID, DRGB_CORE_V5_PID);
REGISTER_HID_DETECTOR("DRGB CORE V5F", DetectDRGBControllers, DRGBV4_VID, DRGB_CORE_V5F_PID);
REGISTER_HID_DETECTOR("DRGB SIG V5F", DetectDRGBControllers, DRGBV4_VID, DRGB_SIG_V5F_PID);
REGISTER_HID_DETECTOR("DRGB LED", DetectDRGBControllers, DRGBV3_VID, DRGB_LED_V3_PID);
REGISTER_HID_DETECTOR("DRGB Ultra V3", DetectDRGBControllers, DRGBV3_VID, DRGB_Ultra_V3_PID);
REGISTER_HID_DETECTOR("DRGB CORE V3", DetectDRGBControllers, DRGBV3_VID, DRGB_CORE_V3_PID);

View file

@ -70,7 +70,7 @@ void RGBController_DRGB::SetupZones()
{
case DRGB_LED_V4_PID:
NUM_CHANNELS = 8;
NUM_Channel_led = 256;
NUM_Channel_led = 512;
Version = 4;
break;
case DRGB_ULTRA_V4F_PID:
@ -89,6 +89,37 @@ void RGBController_DRGB::SetupZones()
Version = 4;
break;
case DRGB_LED_V5_PID:
NUM_CHANNELS = 8;
NUM_Channel_led = 512;
Version = 4;
break;
case DRGB_ULTRA_V5_PID:
NUM_CHANNELS = 16;
NUM_Channel_led = 256;
Version = 4;
break;
case DRGB_ULTRA_V5F_PID:
NUM_CHANNELS = 16;
NUM_Channel_led = 256;
Version = 4;
break;
case DRGB_CORE_V5_PID:
NUM_CHANNELS = 32;
NUM_Channel_led = 256;
Version = 4;
break;
case DRGB_CORE_V5F_PID:
NUM_CHANNELS = 32;
NUM_Channel_led = 256;
Version = 4;
break;
case DRGB_SIG_V5F_PID:
NUM_CHANNELS = 32;
NUM_Channel_led = 256;
Version = 4;
break;
case DRGB_LED_V3_PID:
NUM_CHANNELS = 8;
NUM_Channel_led = 256;

View file

@ -20,6 +20,13 @@
#define DRGB_CORE_V4F_PID 0x3628
#define DRGB_SIG_V4F_PID 0x3636
#define DRGB_LED_V5_PID 0x3208
#define DRGB_ULTRA_V5_PID 0x3215
#define DRGB_ULTRA_V5F_PID 0x3217
#define DRGB_CORE_V5_PID 0x3228
#define DRGB_CORE_V5F_PID 0x3229
#define DRGB_SIG_V5F_PID 0x3232
#define DRGBV3_VID 0x2023
#define DRGB_LED_V3_PID 0x1209
#define DRGB_Ultra_V3_PID 0x1221