Beispiel #1
0
		//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
    }
}