internal void Render(RgbClient client) { var cpu = getCpuUtilization(); var backgroundColor = Color.White; var barStart = 2; var barLength = 12; var activeSlots = cpu / 100.0 * barLength; for (var i = 0; i < barLength; ++i) { Color color; if (i < 4) { color = Color.FromArgb(0, 255, 0); } else if (i < 8) { color = Color.Yellow; } else { color = Color.Red; } if (i > activeSlots) { color = backgroundColor; } client.SetKey(i + barStart, 0, color); } }
private void drawPing(RgbClient client, int x, int y, double value) { string effect = KeyState.SET_COLOR; Color c; if (value < 20) { c = Color.FromArgb(0, 255, 0); } else if (value < 50) { c = Color.Yellow; } else if (value < 100) { c = Color.Orange; } else { effect = KeyState.BREATHE; c = Color.Red; } client.SetKey(x, y, c, effect); }
internal void Render(RgbClient client) { string effect = KeyState.SET_COLOR; Color c; if (_currentPing < 15) { c = Color.FromArgb(0, 255, 0); } else if (_currentPing < 50) { c = Color.Yellow; } else if (_currentPing < 100) { c = Color.Orange; } else { effect = KeyState.BREATHE; c = Color.Red; } client.SetKey(13, 1, c, effect); }
internal void Render(RgbClient client) { var availableMemory = PerformanceInfo.GetPhysicalAvailableMemoryInMiB(); var totalMemory = PerformanceInfo.GetTotalMemoryInMiB(); var ramUsage = 100 - 100.0 * availableMemory / totalMemory; Color ramColor; if (ramUsage < 50) { ramColor = Color.FromArgb(0, 255, 0); } else if (ramUsage < 75) { ramColor = Color.Yellow; } else if (ramUsage < 85) { ramColor = Color.Orange; } else { ramColor = Color.Red; } client.SetKey(0, 2, ramColor); }
static void startupSequence(RgbClient client) { var sequenceColors = new Color[] { Color.Red, Color.Green, Color.Blue, Color.Yellow, Color.White }; foreach (var color in sequenceColors) { client.SetAllKeys(color); client.Flush(); Thread.Sleep(200); } }
internal void Render(RgbClient client) { var p = _currentPings.OrderByDescending(n => n).ToArray(); drawPing(client, 17, 2, p[0]); drawPing(client, 18, 2, p[1]); drawPing(client, 19, 2, p[2]); drawPing(client, 17, 3, p[3]); drawPing(client, 18, 3, p[4]); drawPing(client, 19, 3, p[5]); drawPing(client, 17, 4, p[6]); drawPing(client, 18, 4, p[7]); drawPing(client, 19, 4, p[8]); }
static void renderProviders(RgbClient client) { var cpuProvider = new CpuInfoProvider(); var ramProvider = new RamInfoProvider(); var pingProvider = new PingInfoProvider("8.8.8.8"); var extendedPingProvider = new ExtendedPingInfoProvider("8.8.8.8"); var lastRefresh = DateTime.MinValue; var wasDisconnected = true; while (true) { try { var currentRefreshTime = DateTime.Now; if (wasDisconnected || (currentRefreshTime - lastRefresh).TotalSeconds > 30) { // refresh background (e.g. when waking up) Thread.Sleep(1000); // prevent any race conditions client.ForgetKeys(); client.SetAllKeys(Color.White); wasDisconnected = false; } lastRefresh = currentRefreshTime; cpuProvider.Render(client); ramProvider.Render(client); pingProvider.Render(client); extendedPingProvider.Render(client); client.Flush(); Thread.Sleep(200); } catch (Exception) { Console.WriteLine("DISCONNECTED"); client.WaitForConnection(); wasDisconnected = true; Console.WriteLine("CONNECTED AGAIN"); } } }
static void Main(string[] args) { Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"); var usbDriver = new Usb4QDriver(verbose: false); // var qToolsDriver = new QToolsDriver(27301); var client = new RgbClient(usbDriver); // runUsbDemo(usbDriver); try { startupSequence(client); } catch (Exception) { Console.WriteLine("STARTUP SEQUENCE WAS SKIPPED"); } renderProviders(client); }