Skip to content

Commit d2ebd16

Browse files
Don't update Polychrome LEDs when the active mode doesn't require an update
1 parent a605d55 commit d2ebd16

File tree

1 file changed

+27
-11
lines changed

1 file changed

+27
-11
lines changed

Controllers/PolychromeController/PolychromeController.cpp

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,11 @@ void PolychromeController::SetColorsAndSpeed(unsigned char led, unsigned char re
148148
/*-----------------------------------------------------*\
149149
| Select LED |
150150
\*-----------------------------------------------------*/
151-
bus->i2c_smbus_write_block_data(dev, ASROCK_REG_LED_SELECT, 1, select_led_pkt);
152-
std::this_thread::sleep_for(1ms);
151+
if(active_mode != ASRLED_MODE_OFF)
152+
{
153+
bus->i2c_smbus_write_block_data(dev, ASROCK_REG_LED_SELECT, 1, select_led_pkt);
154+
std::this_thread::sleep_for(1ms);
155+
}
153156

154157
switch(active_mode)
155158
{
@@ -192,8 +195,11 @@ void PolychromeController::SetColorsAndSpeed(unsigned char led, unsigned char re
192195
/*-----------------------------------------------------*\
193196
| Select LED |
194197
\*-----------------------------------------------------*/
195-
bus->i2c_smbus_write_block_data(dev, ASROCK_REG_LED_SELECT, 1, select_led_pkt);
196-
std::this_thread::sleep_for(1ms);
198+
if(active_mode != ASRLED_MODE_OFF)
199+
{
200+
bus->i2c_smbus_write_block_data(dev, ASROCK_REG_LED_SELECT, 1, select_led_pkt);
201+
std::this_thread::sleep_for(1ms);
202+
}
197203

198204
switch(active_mode)
199205
{
@@ -245,14 +251,24 @@ void PolychromeController::SetColorsAndSpeed(unsigned char led, unsigned char re
245251
/*-----------------------------------------------------*\
246252
| Select LED |
247253
\*-----------------------------------------------------*/
248-
bus->i2c_smbus_write_block_data(dev, ASROCK_REG_LED_SELECT, 1, select_led_pkt);
249-
std::this_thread::sleep_for(1ms);
254+
switch(active_mode)
255+
{
256+
case POLYCHROME_V2_MODE_OFF:
257+
case POLYCHROME_V2_MODE_RAINBOW:
258+
case POLYCHROME_V2_MODE_SPECTRUM_CYCLE:
259+
break;
250260

251-
/*-----------------------------------------------------*\
252-
| Polychrome firmware always writes color to fixed reg |
253-
\*-----------------------------------------------------*/
254-
bus->i2c_smbus_write_block_data(dev, POLYCHROME_V2_REG_COLOR, 3, color_speed_pkt);
255-
std::this_thread::sleep_for(1ms);
261+
default:
262+
bus->i2c_smbus_write_block_data(dev, ASROCK_REG_LED_SELECT, 1, select_led_pkt);
263+
std::this_thread::sleep_for(1ms);
264+
265+
/*-----------------------------------------------------*\
266+
| Polychrome firmware always writes color to fixed reg |
267+
\*-----------------------------------------------------*/
268+
bus->i2c_smbus_write_block_data(dev, POLYCHROME_V2_REG_COLOR, 3, color_speed_pkt);
269+
std::this_thread::sleep_for(1ms);
270+
break;
271+
}
256272
break;
257273
}
258274
}

0 commit comments

Comments
 (0)