Correcting DRGBcontroller error, ensuring correct compilation and running on Windows
This commit is contained in:
parent
6928c50f48
commit
f93baffae6
3 changed files with 56 additions and 44 deletions
|
|
@ -44,6 +44,11 @@ unsigned short DRGBController::GetDevicePID()
|
||||||
return(device_pid);
|
return(device_pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DRGBController::SetChannelLEDs(unsigned char channel, RGBColor* colors, unsigned int num_colors)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void DRGBController::SendPacket(unsigned char* colors, unsigned int buf_packets , unsigned int Array)
|
void DRGBController::SendPacket(unsigned char* colors, unsigned int buf_packets , unsigned int Array)
|
||||||
{
|
{
|
||||||
unsigned char usb_buf[1025];
|
unsigned char usb_buf[1025];
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ class DRGBController
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
DRGBController(hid_device* dev_handle, const char* path, unsigned short pid);
|
DRGBController(hid_device* dev_handle, const char* path, unsigned short pid);
|
||||||
~DRGBController();
|
|
||||||
std::string GetLocationString();
|
std::string GetLocationString();
|
||||||
std::string GetSerialString();
|
std::string GetSerialString();
|
||||||
unsigned short GetDevicePID();
|
unsigned short GetDevicePID();
|
||||||
|
|
@ -29,6 +28,6 @@ public:
|
||||||
void SendPacketFS(unsigned char* colors,unsigned int buf_packets ,bool Array);
|
void SendPacketFS(unsigned char* colors,unsigned int buf_packets ,bool Array);
|
||||||
private:
|
private:
|
||||||
hid_device* dev;
|
hid_device* dev;
|
||||||
unsigned short device_pid;
|
|
||||||
std::string location;
|
std::string location;
|
||||||
|
unsigned short device_pid;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -68,62 +68,66 @@ void RGBController_DRGB::SetupZones()
|
||||||
switch(controller->GetDevicePID())
|
switch(controller->GetDevicePID())
|
||||||
{
|
{
|
||||||
case DRGB_LED_V4_PID:
|
case DRGB_LED_V4_PID:
|
||||||
NUM_CHANNELS = 8;
|
NUM_CHANNELS = 8;
|
||||||
NUM_Channel_led = 256;
|
NUM_Channel_led = 256;
|
||||||
|
Version = 4;
|
||||||
break;
|
break;
|
||||||
case DRGB_ULTRA_V4F_PID:
|
case DRGB_ULTRA_V4F_PID:
|
||||||
NUM_CHANNELS = 16;
|
NUM_CHANNELS = 16;
|
||||||
NUM_Channel_led = 256;
|
NUM_Channel_led = 256;
|
||||||
|
Version = 4;
|
||||||
break;
|
break;
|
||||||
case DRGB_CORE_V4F_PID:
|
case DRGB_CORE_V4F_PID:
|
||||||
NUM_CHANNELS = 32;
|
NUM_CHANNELS = 32;
|
||||||
NUM_Channel_led = 256;
|
NUM_Channel_led = 256;
|
||||||
|
Version = 4;
|
||||||
break;
|
break;
|
||||||
case DRGB_SIG_V4F_PID:
|
case DRGB_SIG_V4F_PID:
|
||||||
NUM_CHANNELS = 36;
|
NUM_CHANNELS = 36;
|
||||||
NUM_Channel_led = 256;
|
NUM_Channel_led = 256;
|
||||||
|
Version = 4;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRGB_LED_V3_PID:
|
case DRGB_LED_V3_PID:
|
||||||
NUM_CHANNELS = 8;
|
NUM_CHANNELS = 8;
|
||||||
NUM_Channel_led = 256;
|
NUM_Channel_led = 256;
|
||||||
Version = 3;
|
Version = 3;
|
||||||
break;
|
break;
|
||||||
case DRGB_Ultra_V3_PID:
|
case DRGB_Ultra_V3_PID:
|
||||||
NUM_CHANNELS = 16;
|
NUM_CHANNELS = 16;
|
||||||
NUM_Channel_led = 256;
|
NUM_Channel_led = 256;
|
||||||
Version = 3;
|
Version = 3;
|
||||||
break;
|
break;
|
||||||
case DRGB_CORE_V3_PID:
|
case DRGB_CORE_V3_PID:
|
||||||
NUM_CHANNELS = 30;
|
NUM_CHANNELS = 30;
|
||||||
NUM_Channel_led = 256;
|
NUM_Channel_led = 256;
|
||||||
Version = 3;
|
Version = 3;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRGB_LED_PID:
|
case DRGB_LED_PID:
|
||||||
NUM_CHANNELS = 8;
|
NUM_CHANNELS = 8;
|
||||||
NUM_Channel_led = 256;
|
NUM_Channel_led = 256;
|
||||||
Version = 2;
|
Version = 2;
|
||||||
break;
|
break;
|
||||||
case DRGB_ULTRA_PID:
|
case DRGB_ULTRA_PID:
|
||||||
NUM_CHANNELS = 16;
|
NUM_CHANNELS = 16;
|
||||||
NUM_Channel_led = 256;
|
NUM_Channel_led = 256;
|
||||||
Version = 2;
|
Version = 2;
|
||||||
break;
|
break;
|
||||||
case DRGB_SIG_AB_PID:
|
case DRGB_SIG_AB_PID:
|
||||||
NUM_CHANNELS = 16;
|
NUM_CHANNELS = 16;
|
||||||
NUM_Channel_led = 256;
|
NUM_Channel_led = 256;
|
||||||
Version = 2;
|
Version = 2;
|
||||||
break;
|
break;
|
||||||
case DRGB_SIG_CD_PID:
|
case DRGB_SIG_CD_PID:
|
||||||
NUM_CHANNELS = 6;
|
NUM_CHANNELS = 6;
|
||||||
NUM_Channel_led = 256;
|
NUM_Channel_led = 256;
|
||||||
Version = 2;
|
Version = 2;
|
||||||
break;
|
break;
|
||||||
case DRGB_Strimer_PID:
|
case DRGB_Strimer_PID:
|
||||||
NUM_CHANNELS = 6;
|
NUM_CHANNELS = 6;
|
||||||
NUM_Channel_led = 256;
|
NUM_Channel_led = 256;
|
||||||
Version = 2;
|
Version = 2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -271,15 +275,16 @@ void RGBController_DRGB::DeviceUpdateLEDs()
|
||||||
switch(Version)
|
switch(Version)
|
||||||
{
|
{
|
||||||
case 4:
|
case 4:
|
||||||
unsigned int led_index = 0;
|
{
|
||||||
unsigned char RGBData [8192*3 + 72] = {0};
|
unsigned int led_index = 0;
|
||||||
|
unsigned char RGBData[8192*3 + 72] = {0};
|
||||||
for(std::size_t zone_idx = 0; zone_idx < zones.size(); zone_idx++)
|
for(std::size_t zone_idx = 0; zone_idx < zones.size(); zone_idx++)
|
||||||
{
|
{
|
||||||
unsigned char LEDnum = zones[zone_idx].leds_count;
|
unsigned char LEDnum = zones[zone_idx].leds_count;
|
||||||
unsigned int QLedCount = (LEDnum & 0xFFFF)>>8;
|
unsigned int HighCount = (LEDnum & 0xFFFF)>>8;
|
||||||
unsigned int PLedCount = LEDnum & 0xFF;
|
unsigned int LowCount = LEDnum & 0xFF;
|
||||||
RGBData[zone_idx * 2 ] = QLedCount;
|
RGBData[zone_idx * 2 ] = HighCount;
|
||||||
RGBData[zone_idx * 2 + 1] = PLedCount;
|
RGBData[zone_idx * 2 + 1] = LowCount;
|
||||||
for(unsigned int i=0; i<LEDnum;i++)
|
for(unsigned int i=0; i<LEDnum;i++)
|
||||||
{
|
{
|
||||||
unsigned int RGBcolors = zones[zone_idx].colors[i];
|
unsigned int RGBcolors = zones[zone_idx].colors[i];
|
||||||
|
|
@ -293,16 +298,18 @@ void RGBController_DRGB::DeviceUpdateLEDs()
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unsigned int col_packets = 1 ;
|
unsigned int col_packets = 1 ;
|
||||||
if(led_index > 316)
|
if(led_index > 316)
|
||||||
{
|
{
|
||||||
col_packets = ((led_index - 316) / 340) + (((led_index - 316) % 340) > 0);
|
col_packets = ((led_index - 316) / 340) + (((led_index - 316) % 340) > 0);
|
||||||
}
|
}
|
||||||
controller->SendPacket(&RGBData[0], col_packets,led_index);
|
controller->SendPacket(&RGBData[0], col_packets,led_index);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
unsigned int led_index = 0;
|
{
|
||||||
|
unsigned int led_index = 0;
|
||||||
unsigned char RGBData[1801*3] = {0};
|
unsigned char RGBData[1801*3] = {0};
|
||||||
unsigned char ArrayData[64] = {0};
|
unsigned char ArrayData[64] = {0};
|
||||||
ArrayData[0] = 0x60;
|
ArrayData[0] = 0x60;
|
||||||
|
|
@ -331,11 +338,12 @@ void RGBController_DRGB::DeviceUpdateLEDs()
|
||||||
controller->SendPacketFS(&ArrayData[0], 1,0);
|
controller->SendPacketFS(&ArrayData[0], 1,0);
|
||||||
controller->SendPacketFS(&RGBData[0], col_packets,1);
|
controller->SendPacketFS(&RGBData[0], col_packets,1);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
for(std::size_t zone_idx = 0; zone_idx < zones.size(); zone_idx++)
|
for(std::size_t zone_idx = 0; zone_idx < zones.size(); zone_idx++)
|
||||||
{
|
{
|
||||||
unsigned char RGBData [256*3] = {0};
|
unsigned char RGBData[256*3] = {0};
|
||||||
unsigned char ArrayData[64] = {0};
|
unsigned char ArrayData[64] = {0};
|
||||||
unsigned char LEDnum = zones[zone_idx].leds_count;
|
unsigned char LEDnum = zones[zone_idx].leds_count;
|
||||||
for(unsigned int i=0; i<LEDnum;i++)
|
for(unsigned int i=0; i<LEDnum;i++)
|
||||||
|
|
@ -345,7 +353,7 @@ void RGBController_DRGB::DeviceUpdateLEDs()
|
||||||
RGBData[i * 3 +1] = (RGBcolors >> 8) & 0xFF;
|
RGBData[i * 3 +1] = (RGBcolors >> 8) & 0xFF;
|
||||||
RGBData[i * 3 +2] = (RGBcolors >> 16) & 0xFF;
|
RGBData[i * 3 +2] = (RGBcolors >> 16) & 0xFF;
|
||||||
}
|
}
|
||||||
unsigned char NumPackets = LEDnum / 20 + (LEDnum % 20) > 0;
|
unsigned char NumPackets = (LEDnum / 20) + ((LEDnum % 20) > 0);
|
||||||
for (unsigned int CurrPacket = 1 ; CurrPacket <= NumPackets; CurrPacket++)
|
for (unsigned int CurrPacket = 1 ; CurrPacket <= NumPackets; CurrPacket++)
|
||||||
{
|
{
|
||||||
ArrayData[0] = CurrPacket;
|
ArrayData[0] = CurrPacket;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue