mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-05-18 19:46:27 -04:00
Initial commit for the Logitech G633 to resolve #2911
* Adding the G633 PID to LogitechControllerDetect.cpp * Registering the detector for the common controller * Fixing the indexing swap issue for LogitechLightspeedController * Removing the `bright_cycle_swap` hack and using the queried effects index to set the mode.value for each mode
This commit is contained in:
@@ -178,6 +178,7 @@ void logitech_device::initialiseDevice()
|
||||
{
|
||||
feature_list.emplace(*page, feature_index);
|
||||
RGB_feature_index = feature_index;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -346,7 +347,7 @@ uint8_t logitech_device::getFeatureIndex(uint16_t feature_page)
|
||||
hid_read_timeout(dev_use2, response.buffer, response.size(), LOGITECH_PROTOCOL_TIMEOUT);
|
||||
|
||||
feature_index = response.data[0];
|
||||
|
||||
|
||||
LOG_DEBUG("[%s] Feature Page %04X found @ index %02X - %02X %02X %02X %02X %02X %02X %02X %02X", device_name.c_str(), feature_page, feature_index,
|
||||
response.data[0], response.data[1], response.data[2], response.data[3], response.data[4], response.data[5], response.data[6], response.data[7]);
|
||||
}
|
||||
@@ -707,7 +708,7 @@ uint8_t logitech_device::setDirectMode(bool direct)
|
||||
return result;
|
||||
}
|
||||
|
||||
uint8_t logitech_device::setMode(uint8_t mode, uint16_t speed, uint8_t zone, uint8_t red, uint8_t green, uint8_t blue, uint8_t brightness, bool bright_cycle_swap)
|
||||
uint8_t logitech_device::setMode(uint8_t mode, uint16_t speed, uint8_t zone, uint8_t red, uint8_t green, uint8_t blue, uint8_t brightness)
|
||||
{
|
||||
/*-----------------------------------------------------------------*\
|
||||
| Check the usage map for usage2 (0x11 Long FAP Message) then |
|
||||
@@ -716,6 +717,7 @@ uint8_t logitech_device::setMode(uint8_t mode, uint16_t speed, uint8_t zone, uin
|
||||
hid_device* dev_use2 = getDevice(2);
|
||||
uint16_t feature_page = getFeaturePage(RGB_feature_index);
|
||||
int result = 0;
|
||||
LOGITECH_DEVICE_MODE fx = leds[zone].fx[mode].mode;
|
||||
|
||||
if(dev_use2)
|
||||
{
|
||||
@@ -738,31 +740,36 @@ uint8_t logitech_device::setMode(uint8_t mode, uint16_t speed, uint8_t zone, uin
|
||||
set_mode.data[4] = blue;
|
||||
|
||||
speed *= 100;
|
||||
if(mode == 1) //Static
|
||||
switch(fx)
|
||||
{
|
||||
set_mode.data[5] = 0x02; //zone;
|
||||
//set_mode.data[12] = 0x01; //Save to flash testing
|
||||
}
|
||||
else if(mode == 2) //Spectrum Cycle - LOGITECH_DEVICE_LED_SPECTRUM
|
||||
{
|
||||
if(bright_cycle_swap)
|
||||
{
|
||||
set_mode.data[1] = 3;
|
||||
}
|
||||
set_mode.data[7] = speed >> 8;
|
||||
set_mode.data[8] = speed & 0xFF;
|
||||
set_mode.data[9] = brightness;
|
||||
}
|
||||
else if(mode == 3) //Breathing - LOGITECH_DEVICE_LED_BREATHING
|
||||
{
|
||||
if(bright_cycle_swap)
|
||||
{
|
||||
set_mode.data[1] = 2;
|
||||
}
|
||||
set_mode.data[5] = speed >> 8;
|
||||
set_mode.data[6] = speed & 0xFF;
|
||||
//set_mode.data[7] = curve_type; //Value 0-6: Default, Sine, Square, Triangle, Sawtooth, Reverse_Sawtooth, Exponent
|
||||
set_mode.data[8] = brightness;
|
||||
case LOGITECH_DEVICE_LED_ON:
|
||||
set_mode.data[5] = 0x02; //zone;
|
||||
//set_mode.data[12] = 0x01; //Save to flash testing
|
||||
break;
|
||||
|
||||
case LOGITECH_DEVICE_LED_SPECTRUM:
|
||||
set_mode.data[7] = speed >> 8;
|
||||
set_mode.data[8] = speed & 0xFF;
|
||||
set_mode.data[9] = brightness;
|
||||
break;
|
||||
|
||||
case LOGITECH_DEVICE_LED_BREATHING:
|
||||
set_mode.data[5] = speed >> 8;
|
||||
set_mode.data[6] = speed & 0xFF;
|
||||
//set_mode.data[7] = curve_type; //Value 0-6: Default, Sine, Square, Triangle, Sawtooth, Reverse_Sawtooth, Exponent
|
||||
set_mode.data[8] = brightness;
|
||||
break;
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Place holders for later implementation |
|
||||
\*-----------------------------------------------------*/
|
||||
case LOGITECH_DEVICE_LED_OFF:
|
||||
case LOGITECH_DEVICE_LED_WAVE:
|
||||
case LOGITECH_DEVICE_LED_STAR:
|
||||
case LOGITECH_DEVICE_LED_RIPPLE:
|
||||
case LOGITECH_DEVICE_LED_CUSTOM:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
|
||||
Reference in New Issue
Block a user