//set color for all keys void setColorForAll(int r, int g, int b) { std::vector<CorsairLedColor> colorsVector; for (auto &key : corsair::keys::corsairKeys) { CorsairLedColor led; led.ledId = key.ledId; key.r = r; key.g = g; key.b = b; led.r = r; led.g = g; led.b = b; colorsVector.push_back(led); } CorsairSetLedsColors((int)colorsVector.size(), colorsVector.data()); }
int LightKey(std::bitset<6> h, std::bitset<6> m, std::bitset<6> s) { int bits[3][6] { { h[0], h[1], h[2], h[3], h[4], h[5] }, // { m[0], m[1], m[2], m[3], m[4], m[5] }, // Master array for all bitsets { s[0], s[1], s[2], s[3], s[4], s[5] } // }; CorsairLedId id[3][6] ={ { CLK_G16, CLK_G13, CLK_G10, CLK_G7, CLK_G4, CLK_G1 }, // hours { CLK_G17, CLK_G14, CLK_G11, CLK_G8, CLK_G5, CLK_G2 }, // minutes { CLK_G18, CLK_G15, CLK_G12, CLK_G9, CLK_G6, CLK_G3 } // seconds }; for (int i = 0; i < 6; i++) { // This loop reads each bitset. The bitsets are 6 bits long (for six lights) int k = 0; // to navigate colums of the Led bidimentional array for (int j = 0; j < 3; j++) { auto ledColor = CorsairLedColor{ id[j][i], Led[bits[j][i]][k], Led[bits[j][i]][k + 1], Led[bits[j][i]][k + 2] }; CorsairSetLedsColors(1, &ledColor); k = k + 3; } } return 1; }
bool CorsairCUE::SetLEDs(COLORREF pixels[64][256]) { if (failed) { return FALSE; } else { #ifdef CORSAIR_CUE_ENABLED for (int i = 0; i < positions->numberOfLed; i++) { COLORREF color = pixels[y_idx[i]][x_idx[i]]; colors[i].r = GetRValue(color); colors[i].g = GetGValue(color); colors[i].b = GetBValue(color); colors[i].ledId = led_idx[i]; } CorsairSetLedsColors(positions->numberOfLed, colors); return TRUE; #endif } }