MCPcopy Create free account
hub / github.com/CalcProgrammer1/OpenRGB / SendUpdate

Method SendUpdate

Controllers/CoolerMasterController/CMMMController.cpp:202–252  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

200}
201
202void CMMMController::SendUpdate(uint8_t mode, uint8_t speed, RGBColor colour, uint8_t brightness)
203{
204 if (mode == CM_MM_MODE_CUSTOM || mode == CM_MM_MODE_MULTILAYER)
205 {
206 SendUsingZonesPacket(mode);
207 }
208 else
209 {
210 SendInitPacket();
211 SendApplyPacket(mode);
212 }
213
214 uint8_t nfi_1 = 0x20;
215
216 if (mode == CM_MM_MODE_STATIC || mode == CM_MM_MODE_SPECTRUM_CYCLE)
217 {
218 nfi_1 = 0x00;
219 }
220
221 if (mode != CM_MM_MODE_OFF)
222 {
223 unsigned char buffer[CM_MM_PACKET_SIZE] = { 0x00, 0x51, command_code, 0x00, 0x00 };
224
225 buffer[CM_MM_MODE_BYTE] = mode;
226 buffer[CM_MM_SPEED_BYTE] = speed;
227 buffer[CM_MM_NFI_1] = nfi_1;
228 buffer[CM_MM_NFI_2] = 0xFF;
229 buffer[CM_MM_NFI_3] = 0xFF;
230 buffer[CM_MM_BRIGHTNESS_BYTE] = brightness;
231 buffer[CM_MM_RED_BYTE] = RGBGetRValue(colour);
232 buffer[CM_MM_GREEN_BYTE] = RGBGetGValue(colour);
233 buffer[CM_MM_BLUE_BYTE] = RGBGetBValue(colour);
234 buffer[CM_MM_SKY_RED_BYTE] = 0x00;
235 buffer[CM_MM_SKY_GREEN_BYTE] = 0x00;
236 buffer[CM_MM_SKY_BLUE_BYTE] = 0x00;
237
238 for (int i = 17; i < CM_MM_PACKET_SIZE; i++)
239 {
240 buffer[i] = 0xFF;
241 }
242
243 hid_write(dev, buffer, CM_MM_PACKET_SIZE);
244 hid_read_timeout(dev, buffer, CM_MM_PACKET_SIZE, CM_MM_INTERRUPT_TIMEOUT);
245
246 }
247
248 if (mode == CM_MM_MODE_CUSTOM || mode == CM_MM_MODE_MULTILAYER)
249 {
250 SendApplyPacket(mode); //Post Apply for Zoned Modes
251 }
252}
253
254void CMMMController::SendUpdate(uint8_t mode, uint8_t speed, RGBColor mode_one, RGBColor mode_two, uint8_t brightness)
255{

Callers 2

DeviceUpdateModeMethod · 0.45
DeviceUpdateModeMethod · 0.45

Calls 2

hid_writeFunction · 0.85
hid_read_timeoutFunction · 0.85

Tested by

no test coverage detected