public void CheckLedChange() { Stopwatch sw = Stopwatch.StartNew(); var client = new OpenRGBClient(name: "OpenRGB.NET Test: CheckLedChange"); var controllerCount = client.GetControllerCount(); var devices = new Device[controllerCount]; for (int i = 0; i < controllerCount; i++) { devices[i] = client.GetControllerData(i); } for (int i = 0; i < controllerCount; i++) { var device = devices[i]; var originalColors = Color.GetHueRainbow(device.Leds.Length); client.UpdateLeds(i, originalColors.ToArray()); var updatedColors = client.GetControllerData(i).Colors; Assert.True(updatedColors.SequenceEqual(originalColors)); } client.Dispose(); sw.Stop(); Output.WriteLine($"Time elapsed: {(double)sw.ElapsedTicks / Stopwatch.Frequency * 1000} ms."); }
public void UpdateZoneTypes() { //This delay is needed due to a threading bug in OpenRGB //https://gitlab.com/CalcProgrammer1/OpenRGB/-/issues/376 //https://gitlab.com/CalcProgrammer1/OpenRGB/-/issues/350 Thread.Sleep(150); Stopwatch sw = Stopwatch.StartNew(); var client = new OpenRGBClient(name: "OpenRGB.NET Test: UpdateZoneTypes"); var controllerCount = client.GetControllerCount(); var devices = new Device[controllerCount]; for (int i = 0; i < controllerCount; i++) { devices[i] = client.GetControllerData(i); } for (int i = 0; i < controllerCount; i++) { var device = devices[i]; for (int j = 0; j < device.Zones.Length; j++) { var zone = device.Zones[j]; switch (zone.Type) { case Enums.ZoneType.Linear: var colors = Color.GetHueRainbow((int)zone.LedCount); client.UpdateZone(i, j, colors.ToArray()); break; case Enums.ZoneType.Single: client.UpdateZone(i, j, new[] { new Color(255, 0, 0) }); break; case Enums.ZoneType.Matrix: var yeet = 2 * Math.PI / zone.MatrixMap.Width; var rainbow = Color.GetHueRainbow((int)zone.MatrixMap.Width).ToArray(); //var rainbow = Color.GetSinRainbow((int)zone.MatrixMap.Width).ToArray(); var matrix = Enumerable.Range(0, (int)zone.LedCount).Select(_ => new Color()).ToArray(); for (int k = 0; k < zone.MatrixMap.Width; k++) { for (int l = 0; l < zone.MatrixMap.Height; l++) { var index = zone.MatrixMap.Matrix[l, k]; if (index != uint.MaxValue) { matrix[index] = rainbow[k].Clone(); } } } client.UpdateZone(i, j, matrix); break; } } } client.Dispose(); sw.Stop(); Output.WriteLine($"Time elapsed: {(double)sw.ElapsedTicks / Stopwatch.Frequency * 1000} ms."); }
public void ClientConnectToServer() { Stopwatch sw = Stopwatch.StartNew(); OpenRGBClient client = new OpenRGBClient(name: "OpenRGB.NET Test: ClientConnectToServer"); client.Connect(); client.Dispose(); sw.Stop(); Output.WriteLine($"Time elapsed: {(double)sw.ElapsedTicks / Stopwatch.Frequency * 1000} ms."); }
public void UseAfterDispose() { Stopwatch sw = Stopwatch.StartNew(); var client = new OpenRGBClient(); client.Dispose(); Assert.Throws <ObjectDisposedException>(() => client.GetControllerCount()); Output.WriteLine($"Time elapsed: {(double)sw.ElapsedTicks / Stopwatch.Frequency * 1000} ms."); }
public void ListController() { Stopwatch sw = Stopwatch.StartNew(); OpenRGBClient client = new OpenRGBClient(name: "OpenRGB.NET Test: ListController"); int nbController = client.GetControllerCount(); for (int i = 0; i < nbController; i++) { Device controller = client.GetControllerData(i); Assert.True(!string.IsNullOrWhiteSpace(controller.Name)); } client.Dispose(); sw.Stop(); Output.WriteLine($"Time elapsed: {(double)sw.ElapsedTicks / Stopwatch.Frequency * 1000} ms."); }
public override void Shutdown() { if (!IsInitialized) { return; } foreach (var d in _devices) { try { _openRgb.UpdateLeds(d.Index, d.OrgbDevice.Colors); } catch { //we tried. } } _openRgb?.Dispose(); _openRgb = null; IsInitialized = false; }
public void Dispose() { _client?.Dispose(); GC.SuppressFinalize(this); }