@@ -71,10 +71,9 @@ unsigned char EVGAGPUv2Controller::GetMode()
7171 }
7272 break ;
7373
74- case EVGA_GPU_V2_MODE_DIRECT :
74+ case EVGA_GPU_V2_MODE_STATIC :
7575 {
76- // No way to detect static so just return direct.
77- return_mode = EVGA_GPU_V2_RGB_MODE_DIRECT;
76+ return_mode = EVGA_GPU_V2_RGB_MODE_STATIC;
7877 }
7978 break ;
8079
@@ -121,40 +120,31 @@ unsigned char EVGAGPUv2Controller::GetSpeed()
121120 return (unsigned char ) speed_16.u16 ;
122121}
123122
124- void EVGAGPUv2Controller::SetMode (unsigned char mode, RGBColor color1, RGBColor color2, unsigned int speed)
123+ void EVGAGPUv2Controller::SetMode (uint8_t mode, RGBColor color1, RGBColor color2, uint16_t speed, uint8_t brightness )
125124{
126- bool boolSave = false ;
127125
128126 EnableWrite (true );
129127 switch (mode)
130128 {
131129 case EVGA_GPU_V2_RGB_MODE_OFF:
132130 {
133131 SendMode (EVGA_GPU_V2_MODE_OFF);
134- boolSave = true ;
135132 }
136133 break ;
137134
138- case EVGA_GPU_V2_RGB_MODE_DIRECT:
139135 case EVGA_GPU_V2_RGB_MODE_STATIC:
140136 {
141- SendMode (EVGA_GPU_V2_MODE_DIRECT);
142- // Static is mode 0x01 but with SaveSettings()
143- boolSave = (mode == EVGA_GPU_V2_RGB_MODE_STATIC);
144-
145- SendColor (EVGA_GPU_V2_REG_COLOR_A_RED, RGBGetRValue (color1), RGBGetGValue (color1), RGBGetBValue (color1));
137+ SendMode (EVGA_GPU_V2_MODE_STATIC);
138+ SendColor (EVGA_GPU_V2_REG_COLOR_A_RED, RGBGetRValue (color1), RGBGetGValue (color1), RGBGetBValue (color1), brightness);
146139 }
147140 break ;
148141
149142 case EVGA_GPU_V2_RGB_MODE_RAINBOW:
150143 {
151144 SendMode (EVGA_GPU_V2_MODE_RAINBOW);
152- // OpenRGB does not do brightness yet
153- SendBrightness (0x64 ); // Default = 0x64
145+ SendBrightness (brightness); // Default = 0x64
154146 // Set Rainbow speed? No control in the GUI but this register is only set in Ranbow mode.
155- bus->i2c_smbus_write_byte_data (dev, 0x19 , 0x11 );
156-
157- boolSave = true ;
147+ bus->i2c_smbus_write_byte_data (dev, 0x19 , 0x11 );;
158148 }
159149 break ;
160150
@@ -169,8 +159,8 @@ void EVGAGPUv2Controller::SetMode(unsigned char mode, RGBColor color1, RGBColor
169159 | inspection is required. |
170160 \*---------------------------------------------------------*/
171161
172- SendColor (EVGA_GPU_V2_REG_COLOR_A_RED, RGBGetRValue (color1), RGBGetGValue (color1), RGBGetBValue (color1));
173- SendColor (EVGA_GPU_V2_REG_COLOR_B_RED, RGBGetRValue (color2), RGBGetGValue (color2), RGBGetBValue (color2));
162+ SendColor (EVGA_GPU_V2_REG_COLOR_A_RED, RGBGetRValue (color1), RGBGetGValue (color1), RGBGetBValue (color1), brightness );
163+ SendColor (EVGA_GPU_V2_REG_COLOR_B_RED, RGBGetRValue (color2), RGBGetGValue (color2), RGBGetBValue (color2), brightness );
174164
175165 /* -----------------------------------------------------------------*\
176166 | Breathing mode speeds are consistent for B_TO_A and A_TO_B |
@@ -185,22 +175,15 @@ void EVGAGPUv2Controller::SetMode(unsigned char mode, RGBColor color1, RGBColor
185175 // 0x6A and 0x6B = 0x00
186176 bus->i2c_smbus_write_byte_data (dev, 0x6A , 0x00 );
187177 bus->i2c_smbus_write_byte_data (dev, 0x6B , 0x00 );
188-
189- boolSave = true ;
190178 }
191179 break ;
192180
193181 default :
194182 break ;
195183 }
196184
197- // Disable writes and Save (if applicable)
185+ // Disable writes
198186 EnableWrite (false );
199-
200- if (boolSave)
201- {
202- SaveSettings ();
203- }
204187}
205188
206189void EVGAGPUv2Controller::EnableWrite (bool boolEnable)
@@ -232,20 +215,20 @@ void EVGAGPUv2Controller::SaveSettings()
232215 bus->i2c_smbus_write_byte_data (dev, 0x0E , 0xE0 );
233216}
234217
235- void EVGAGPUv2Controller::SendBrightness (unsigned char brightness)
218+ void EVGAGPUv2Controller::SendBrightness (uint8_t brightness)
236219{
237220 bus->i2c_smbus_write_byte_data (dev, EVGA_GPU_V2_REG_COLOR_A_BRIGHTNESS, brightness);
238221}
239222
240- void EVGAGPUv2Controller::SendColor (unsigned char start_register, unsigned char red, unsigned char green, unsigned char blue, unsigned char brightness)
223+ void EVGAGPUv2Controller::SendColor (uint8_t start_register, uint8_t red, uint8_t green, uint8_t blue, uint8_t brightness)
241224{
242225 bus->i2c_smbus_write_byte_data (dev, start_register, red);
243226 bus->i2c_smbus_write_byte_data (dev, (start_register + 1 ), green);
244227 bus->i2c_smbus_write_byte_data (dev, (start_register + 2 ), blue);
245228 bus->i2c_smbus_write_byte_data (dev, (start_register + 3 ), brightness);
246229}
247230
248- void EVGAGPUv2Controller::SendMode (unsigned char mode)
231+ void EVGAGPUv2Controller::SendMode (uint8_t mode)
249232{
250233 bus->i2c_smbus_write_byte_data (dev, EVGA_GPU_V2_REG_MODE, mode);
251234}
@@ -264,15 +247,10 @@ void EVGAGPUv2Controller::SendSpeed(u16_to_u8 aOnTime, u16_to_u8 bOnTime, u16_to
264247 bus->i2c_smbus_write_byte_data (dev, EVGA_GPU_V2_REG_COLOR_A_ONTIME_MSB, (unsigned char ) aOnTime.MSB );
265248}
266249
267- void EVGAGPUv2Controller::SetColor (RGBColor colorA, RGBColor colorB, bool boolSave )
250+ void EVGAGPUv2Controller::SetColor (RGBColor colorA, RGBColor colorB, uint8_t brightness )
268251{
269252 EnableWrite (true );
270- SendColor (EVGA_GPU_V2_REG_COLOR_A_RED, RGBGetRValue (colorA), RGBGetGValue (colorA), RGBGetBValue (colorA), 0x64 );
271- SendColor (EVGA_GPU_V2_REG_COLOR_B_RED, RGBGetRValue (colorB), RGBGetGValue (colorB), RGBGetBValue (colorB), 0x64 );
253+ SendColor (EVGA_GPU_V2_REG_COLOR_A_RED, RGBGetRValue (colorA), RGBGetGValue (colorA), RGBGetBValue (colorA), brightness );
254+ SendColor (EVGA_GPU_V2_REG_COLOR_B_RED, RGBGetRValue (colorB), RGBGetGValue (colorB), RGBGetBValue (colorB), brightness );
272255 EnableWrite (false );
273-
274- if (boolSave)
275- {
276- SaveSettings ();
277- }
278256}
0 commit comments