CM ARGB Controller now working for some modes
* Code SegFaults after a few change packets are sent
This commit is contained in:
parent
743a27d0a2
commit
90002d9eed
3 changed files with 28 additions and 19 deletions
|
|
@ -147,17 +147,25 @@ void CMARGBController::SendUpdate()
|
|||
bool boolARGB_header = true;
|
||||
buffer[CM_ARGB_REPORT_BYTE] = 0x80;
|
||||
buffer[CM_ARGB_COMMAND_BYTE] = 0x01;
|
||||
buffer[CM_ARGB_MODE_BYTE] = 0x01;
|
||||
buffer[CM_ARGB_FUNCTION_BYTE] = 0x01;
|
||||
|
||||
hid_write(dev, buffer, buffer_size);
|
||||
hid_read_timeout(dev, buffer, buffer_size, CM_ARGB_INTERRUPT_TIMEOUT );
|
||||
hid_read_timeout(dev, buffer, buffer_size, CM_ARGB_INTERRUPT_TIMEOUT);
|
||||
|
||||
buffer[CM_ARGB_COMMAND_BYTE] = (boolARGB_header) ? 0x0b : 0x04; //ARGB sends 0x0b (1011) RGB sends 0x04 (0100)
|
||||
buffer[CM_ARGB_MODE_BYTE] = current_mode;
|
||||
buffer[CM_ARGB_ZONE_BYTE] = argb_header_data[zone_index].header;
|
||||
buffer[CM_ARGB_COLOUR_INDEX_BYTE] = GetColourIndex( current_red, current_green, current_blue );
|
||||
buffer[CM_ARGB_SPEED_BYTE] = current_speed;
|
||||
if ( boolARGB_header )
|
||||
{
|
||||
buffer[CM_ARGB_COMMAND_BYTE] = 0x0b; //ARGB sends 0x0b (1011) RGB sends 0x04 (0100)
|
||||
buffer[CM_ARGB_FUNCTION_BYTE] = (false) ? 0x01 : 0x02; //This controls custom mode TODO
|
||||
buffer[CM_ARGB_ZONE_BYTE] = argb_header_data[zone_index].header;
|
||||
buffer[CM_ARGB_MODE_BYTE] = argb_mode_data[1][current_mode];
|
||||
buffer[CM_ARGB_COLOUR_INDEX_BYTE] = GetColourIndex( current_red, current_green, current_blue );
|
||||
buffer[CM_ARGB_SPEED_BYTE] = current_speed;
|
||||
}
|
||||
else
|
||||
{
|
||||
//Todo: 12V Analogue Header
|
||||
}
|
||||
|
||||
hid_write(dev, buffer, buffer_size);
|
||||
hid_read_timeout(dev, buffer, buffer_size, CM_ARGB_INTERRUPT_TIMEOUT );
|
||||
hid_read_timeout(dev, buffer, buffer_size, CM_ARGB_INTERRUPT_TIMEOUT);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,8 +32,9 @@ enum
|
|||
{
|
||||
CM_ARGB_REPORT_BYTE = 0,
|
||||
CM_ARGB_COMMAND_BYTE = 1,
|
||||
CM_ARGB_MODE_BYTE = 2,
|
||||
CM_ARGB_FUNCTION_BYTE = 2,
|
||||
CM_ARGB_ZONE_BYTE = 3,
|
||||
CM_ARGB_MODE_BYTE = 4,
|
||||
CM_ARGB_COLOUR_INDEX_BYTE = 5,
|
||||
CM_ARGB_SPEED_BYTE = 6
|
||||
};
|
||||
|
|
@ -78,15 +79,15 @@ static argb_headers argb_header_data[5] =
|
|||
|
||||
enum
|
||||
{
|
||||
CM_ARGB_MODE_OFF = 1, //Turn off
|
||||
CM_ARGB_MODE_SPECTRUM = 2, //Spectrum Mode
|
||||
CM_ARGB_MODE_RELOAD = 3, //Reload Mode
|
||||
CM_ARGB_MODE_RECOIL = 4, //Recoil Mode
|
||||
CM_ARGB_MODE_BREATHING = 5, //Breathing Mode
|
||||
CM_ARGB_MODE_REFILL = 6, //Refill Mode
|
||||
CM_ARGB_MODE_DEMO = 7, //Demo Mode
|
||||
CM_ARGB_MODE_FILLFLOW = 8, //Fill Flow Mode
|
||||
CM_ARGB_MODE_RAINBOW = 9 //Rainbow Mode
|
||||
CM_ARGB_MODE_OFF = 0, //Turn off
|
||||
CM_ARGB_MODE_SPECTRUM = 1, //Spectrum Mode
|
||||
CM_ARGB_MODE_RELOAD = 2, //Reload Mode
|
||||
CM_ARGB_MODE_RECOIL = 3, //Recoil Mode
|
||||
CM_ARGB_MODE_BREATHING = 4, //Breathing Mode
|
||||
CM_ARGB_MODE_REFILL = 5, //Refill Mode
|
||||
CM_ARGB_MODE_DEMO = 6, //Demo Mode
|
||||
CM_ARGB_MODE_FILLFLOW = 7, //Fill Flow Mode
|
||||
CM_ARGB_MODE_RAINBOW = 8 //Rainbow Mode
|
||||
};
|
||||
|
||||
enum
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ static const unsigned int cm_pids[][4] =
|
|||
{ // PID, Interface Type
|
||||
{ COOLERMASTER_MP750_XL_PID, 0x00, DEVICE_TYPE_MOUSEMAT }, //Coolermaster MP750 (Extra Large)
|
||||
{ COOLERMASTER_MP750_MEDIUM_PID, 0x00, DEVICE_TYPE_MOUSEMAT }, //Coolermaster MP750 (Medium)
|
||||
{ COOLERMASTER_ARGB_PID, 0x01, DEVICE_TYPE_LEDSTRIP } //Coolermaster ARGB Controller
|
||||
{ COOLERMASTER_ARGB_PID, 0x00, DEVICE_TYPE_LEDSTRIP } //Coolermaster ARGB Controller
|
||||
};
|
||||
|
||||
/******************************************************************************************\
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue