mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-04-04 06:11:07 -04:00
Add YICO and clean up DRGB controller
This commit is contained in:
@@ -106,10 +106,7 @@ void DRGBController::SendPacket(unsigned char* colors, unsigned int buf_packets
|
||||
usb_buf[3] = HigCount;
|
||||
usb_buf[4] = LowCount;
|
||||
buf_idx = i*1020;
|
||||
for(unsigned int k=0;k<1020;k++)
|
||||
{
|
||||
usb_buf[k+5] = colors[buf_idx + k];
|
||||
}
|
||||
memcpy(usb_buf + 5, colors + buf_idx, 1020);
|
||||
hid_write(dev, usb_buf, 1025);
|
||||
if(LEDtotal)
|
||||
{
|
||||
@@ -122,42 +119,26 @@ void DRGBController::SendPacket(unsigned char* colors, unsigned int buf_packets
|
||||
|
||||
void DRGBController::SendPacketFS(unsigned char* colors, unsigned int buf_packets , unsigned int Array)
|
||||
{
|
||||
unsigned char usb_buf[65];
|
||||
unsigned int buf_idx = 0;
|
||||
memset(usb_buf, 0x00, sizeof(usb_buf));
|
||||
usb_buf[0x00] = 0x00;
|
||||
if(Array == 0x64)
|
||||
unsigned char usb_buf[65] = {0};
|
||||
unsigned int current_index = 0;
|
||||
|
||||
if(Array == 0x64 || Array == 0x47)
|
||||
{
|
||||
const unsigned int offset = (Array == 0x64) ? 100 : 92;
|
||||
|
||||
for(unsigned int i = 0; i < buf_packets; i++)
|
||||
{
|
||||
usb_buf[1] = i == buf_packets - 1 ? Array + 100 + i : Array + i;
|
||||
buf_idx = i*63;
|
||||
for(unsigned int k=0;k<63;k++)
|
||||
{
|
||||
usb_buf[k+2] = colors[buf_idx + k];
|
||||
}
|
||||
hid_write(dev, usb_buf, 65);
|
||||
}
|
||||
}
|
||||
else if(Array == 0x47)
|
||||
{
|
||||
for(unsigned int i = 0; i < buf_packets; i++)
|
||||
{
|
||||
usb_buf[1] = i == buf_packets - 1 ? Array + 92 + i : Array + i;
|
||||
buf_idx = i*63;
|
||||
for(unsigned int k=0;k<63;k++)
|
||||
{
|
||||
usb_buf[k+2] = colors[buf_idx + k];
|
||||
}
|
||||
const bool is_last_packet = (i == buf_packets - 1);
|
||||
usb_buf[1] = is_last_packet ? (Array + offset + i) : (Array + i);
|
||||
current_index = i * 63;
|
||||
memcpy(usb_buf + 2, colors + current_index, 63);
|
||||
|
||||
hid_write(dev, usb_buf, 65);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for(unsigned int e=0;e<64;e++)
|
||||
{
|
||||
usb_buf[e+1] = colors[e];
|
||||
}
|
||||
memcpy(usb_buf + 1, colors, 64);
|
||||
hid_write(dev, usb_buf, 65);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,33 +31,38 @@ void DetectDRGBControllers(hid_device_info* info, const std::string& name)
|
||||
}
|
||||
}
|
||||
|
||||
REGISTER_HID_DETECTOR("DRGB LED V4", DetectDRGBControllers, DRGBV4_VID, DRGB_LED_V4_PID);
|
||||
REGISTER_HID_DETECTOR("DRGB ULTRA V4F", DetectDRGBControllers, DRGBV4_VID, DRGB_ULTRA_V4F_PID);
|
||||
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("DeepRGB LED V4", DetectDRGBControllers, DRGBV4_VID, DRGB_LED_V4_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB ULTRA V4F", DetectDRGBControllers, DRGBV4_VID, DRGB_ULTRA_V4F_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB CORE V4F", DetectDRGBControllers, DRGBV4_VID, DRGB_CORE_V4F_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB SIG V4F", DetectDRGBControllers, DRGBV4_VID, DRGB_SIG_V4F_PID);
|
||||
|
||||
REGISTER_HID_DETECTOR("Airgoo AG-DRGB04", DetectDRGBControllers, DRGBV4_VID, DRGB_AG_04_V4F_PID);
|
||||
REGISTER_HID_DETECTOR("Airgoo AG-DRGB16", DetectDRGBControllers, DRGBV4_VID, DRGB_AG_16_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("DeepRGB L8 V5", DetectDRGBControllers, DRGBV4_VID, DRGB_L8_V5_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB U16 V5", DetectDRGBControllers, DRGBV4_VID, DRGB_U16_V5_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB U16 V5F", DetectDRGBControllers, DRGBV4_VID, DRGB_U16_V5F_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB C16 V5", DetectDRGBControllers, DRGBV4_VID, DRGB_C16_V5_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB C16 V5F", DetectDRGBControllers, DRGBV4_VID, DRGB_C16_V5F_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB S16 V5F", DetectDRGBControllers, DRGBV4_VID, DRGB_S16_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);
|
||||
REGISTER_HID_DETECTOR("DRGB ELITE", DetectDRGBControllers, DRGBV3_VID, DRGB_ELITE_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB LED", DetectDRGBControllers, DRGBV3_VID, DRGB_LED_V3_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB Ultra V3", DetectDRGBControllers, DRGBV3_VID, DRGB_Ultra_V3_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB CORE V3", DetectDRGBControllers, DRGBV3_VID, DRGB_CORE_V3_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB E8 F", DetectDRGBControllers, DRGBV3_VID, DRGB_E8_F_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB E16", DetectDRGBControllers, DRGBV3_VID, DRGB_E16_PID);
|
||||
REGISTER_HID_DETECTOR("NEEDMAX 10 ELITE", DetectDRGBControllers, DRGBV3_VID, DM_10_PID);
|
||||
REGISTER_HID_DETECTOR("JPU ELITE", DetectDRGBControllers, DRGBV3_VID, JPU_12_PID);
|
||||
|
||||
REGISTER_HID_DETECTOR("DRGB LED Controller", DetectDRGBControllers, DRGBV2_VID, DRGB_LED_PID);
|
||||
REGISTER_HID_DETECTOR("DRGB ULTRA", DetectDRGBControllers, DRGBV2_VID, DRGB_ULTRA_PID);
|
||||
REGISTER_HID_DETECTOR("DRGB SIG AB", DetectDRGBControllers, DRGBV2_VID, DRGB_SIG_AB_PID);
|
||||
REGISTER_HID_DETECTOR("DRGB SIG CD", DetectDRGBControllers, DRGBV2_VID, DRGB_SIG_CD_PID);
|
||||
REGISTER_HID_DETECTOR("DRGB Strimer Controller", DetectDRGBControllers, DRGBV2_VID, DRGB_Strimer_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB LED Controller", DetectDRGBControllers, DRGBV2_VID, DRGB_LED_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB ULTRA", DetectDRGBControllers, DRGBV2_VID, DRGB_ULTRA_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB SIG AB", DetectDRGBControllers, DRGBV2_VID, DRGB_SIG_AB_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB SIG CD", DetectDRGBControllers, DRGBV2_VID, DRGB_SIG_CD_PID);
|
||||
REGISTER_HID_DETECTOR("DeepRGB Strimer Controller", DetectDRGBControllers, DRGBV2_VID, DRGB_Strimer_PID);
|
||||
|
||||
REGISTER_HID_DETECTOR("YICO 8 ELITE", DetectDRGBControllers, YICO_VID, YICO_8_PID);
|
||||
REGISTER_HID_DETECTOR("YICO 08 ELITE", DetectDRGBControllers, YICO_VID, YICO_08_PID);
|
||||
REGISTER_HID_DETECTOR("YICO 08 ELITE", DetectDRGBControllers, YICO_VID, YICO_08_1_PID);
|
||||
REGISTER_HID_DETECTOR("YICO 14 LCD", DetectDRGBControllers, DRGBV3_VID, YICO_14_PID);
|
||||
REGISTER_HID_DETECTOR("YICO 16 ELITE", DetectDRGBControllers, DRGBV4_VID, YICO_16_PID);
|
||||
|
||||
|
||||
@@ -99,32 +99,32 @@ void RGBController_DRGB::SetupZones()
|
||||
Version = 4;
|
||||
break;
|
||||
|
||||
case DRGB_LED_V5_PID:
|
||||
case DRGB_L8_V5_PID:
|
||||
NUM_CHANNELS = 8;
|
||||
NUM_Channel_led = 512;
|
||||
Version = 4;
|
||||
break;
|
||||
case DRGB_ULTRA_V5_PID:
|
||||
case DRGB_U16_V5_PID:
|
||||
NUM_CHANNELS = 16;
|
||||
NUM_Channel_led = 256;
|
||||
Version = 4;
|
||||
break;
|
||||
case DRGB_ULTRA_V5F_PID:
|
||||
case DRGB_U16_V5F_PID:
|
||||
NUM_CHANNELS = 16;
|
||||
NUM_Channel_led = 256;
|
||||
Version = 4;
|
||||
break;
|
||||
case DRGB_CORE_V5_PID:
|
||||
case DRGB_C16_V5_PID:
|
||||
NUM_CHANNELS = 32;
|
||||
NUM_Channel_led = 256;
|
||||
Version = 4;
|
||||
break;
|
||||
case DRGB_CORE_V5F_PID:
|
||||
case DRGB_C16_V5F_PID:
|
||||
NUM_CHANNELS = 32;
|
||||
NUM_Channel_led = 256;
|
||||
Version = 4;
|
||||
break;
|
||||
case DRGB_SIG_V5F_PID:
|
||||
case DRGB_S16_V5F_PID:
|
||||
NUM_CHANNELS = 32;
|
||||
NUM_Channel_led = 256;
|
||||
Version = 4;
|
||||
@@ -145,11 +145,16 @@ void RGBController_DRGB::SetupZones()
|
||||
NUM_Channel_led = 256;
|
||||
Version = 3;
|
||||
break;
|
||||
case DRGB_ELITE_PID:
|
||||
case DRGB_E8_F_PID:
|
||||
NUM_CHANNELS = 8;
|
||||
NUM_Channel_led = 132;
|
||||
Version = 1;
|
||||
break;
|
||||
case DRGB_E16_PID:
|
||||
NUM_CHANNELS = 16;
|
||||
NUM_Channel_led = 132;
|
||||
Version = 1;
|
||||
break;
|
||||
case DM_10_PID:
|
||||
NUM_CHANNELS = 10;
|
||||
NUM_Channel_led = 132;
|
||||
@@ -202,6 +207,16 @@ void RGBController_DRGB::SetupZones()
|
||||
NUM_Channel_led = 132;
|
||||
Version = 3;
|
||||
break;
|
||||
case YICO_14_PID:
|
||||
NUM_CHANNELS = 14;
|
||||
NUM_Channel_led = 132;
|
||||
Version = 1;
|
||||
break;
|
||||
case YICO_16_PID:
|
||||
NUM_CHANNELS = 16;
|
||||
NUM_Channel_led = 256;
|
||||
Version = 4;
|
||||
break;
|
||||
}
|
||||
|
||||
zones.resize(NUM_CHANNELS);
|
||||
@@ -237,6 +252,24 @@ void RGBController_DRGB::SetupZones()
|
||||
snprintf(ch_idx_string, 4, "%d", channel_idx+1 );
|
||||
zones[channel_idx].name = "Channel ";
|
||||
}
|
||||
else if(NUM_CHANNELS == 14)
|
||||
{
|
||||
if(channel_idx<4)
|
||||
{
|
||||
snprintf(ch_idx_string, 2, "%d", channel_idx+1 );
|
||||
zones[channel_idx].name = "LCD ";
|
||||
}
|
||||
else if(channel_idx<6)
|
||||
{
|
||||
snprintf(ch_idx_string, 2, "%d", channel_idx+1 );
|
||||
zones[channel_idx].name = "LED ";
|
||||
}
|
||||
else if(channel_idx<16)
|
||||
{
|
||||
snprintf(ch_idx_string, 2, "%d", channel_idx-5 );
|
||||
zones[channel_idx].name = "ARGB ";
|
||||
}
|
||||
}
|
||||
else if(channel_idx<8)
|
||||
{
|
||||
snprintf(ch_idx_string, 2, "%d", channel_idx + 1);
|
||||
|
||||
@@ -22,18 +22,19 @@
|
||||
#define DRGB_AG_04_V4F_PID 0x3204
|
||||
#define DRGB_AG_16_V4F_PID 0x3216
|
||||
|
||||
#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 DRGB_L8_V5_PID 0x3208
|
||||
#define DRGB_U16_V5_PID 0x3215
|
||||
#define DRGB_U16_V5F_PID 0x3217
|
||||
#define DRGB_C16_V5_PID 0x3228
|
||||
#define DRGB_C16_V5F_PID 0x3229
|
||||
#define DRGB_S16_V5F_PID 0x3232
|
||||
|
||||
#define DRGBV3_VID 0x2023
|
||||
#define DRGB_LED_V3_PID 0x1209
|
||||
#define DRGB_Ultra_V3_PID 0x1221
|
||||
#define DRGB_CORE_V3_PID 0x1226
|
||||
#define DRGB_ELITE_PID 0x1408
|
||||
#define DRGB_E8_F_PID 0x1408
|
||||
#define DRGB_E16_PID 0x1416
|
||||
#define DM_10_PID 0x1410
|
||||
#define JPU_12_PID 0x1412
|
||||
|
||||
@@ -48,6 +49,8 @@
|
||||
#define YICO_8_PID 0x6077
|
||||
#define YICO_08_PID 0x6078
|
||||
#define YICO_08_1_PID 0x6079
|
||||
#define YICO_14_PID 0x1614
|
||||
#define YICO_16_PID 0x1616
|
||||
|
||||
class RGBController_DRGB : public RGBController
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user