public void Dispose() { surface.Dispose(); for (int i = 0; i < providers.Count; i++) { providers[i].Dispose(); } }
static void Main(string[] args) { try { OpenRGBDeviceProvider.Instance.DeviceDefinitions.Add(new OpenRGBServerDefinition { ClientName = "TestProgram", Ip = "127.0.0.1", Port = 6742 }); List <IRGBDeviceProvider> deviceProviders = new List <IRGBDeviceProvider> { OpenRGBDeviceProvider.Instance, WootingDeviceProvider.Instance }; using RGBSurface surface = new RGBSurface(); surface.RegisterUpdateTrigger(new TimerUpdateTrigger()); foreach (IRGBDeviceProvider dp in deviceProviders) { surface.Load(dp); } ListLedGroup ledgroup = new ListLedGroup(surface, surface.Leds); RainbowGradient gradient = new RainbowGradient(); gradient.AddDecorator(new MoveGradientDecorator(surface)); ledgroup.Brush = new TextureBrush(new LinearGradientTexture(new Size(1, 1), gradient)); foreach (IRGBDevice d in surface.Devices) { Console.WriteLine($"Found {d.DeviceInfo.DeviceName}"); } Console.ReadLine(); surface?.Dispose(); foreach (IRGBDeviceProvider dp in deviceProviders) { dp.Dispose(); } } catch (Exception e) { Console.WriteLine($"Exception: {e}"); } }
public void Stop() { try { if (!_started) { return; } if (_surface?.Devices != null) { for (var i = _surface.Devices.Count - 1; i >= 0; i--) { try { var device = _surface.Devices[i]; _surface.Detach(device); device.Dispose(); } catch (Exception ex) { _ = Task.Run(() => _logger?.WriteLog(ex?.ToString())); } } } CorsairDeviceProvider.Instance.Dispose(); CorsairDeviceProvider.Instance.Exception -= Instance_Exception; RazerDeviceProvider.Instance.Dispose(); RazerDeviceProvider.Instance.Exception -= Instance_Exception; LogitechDeviceProvider.Instance.Dispose(); LogitechDeviceProvider.Instance.Exception -= Instance_Exception; AsusDeviceProvider.Instance.Dispose(); AsusDeviceProvider.Instance.Exception -= Instance_Exception; _surface.Exception -= Surface_Exception; _surface.Dispose(); _surface = null; _started = false; } catch (Exception ex) { _ = Task.Run(() => _logger?.WriteLog(ex?.ToString())); } }
public void Dispose() { foreach (var device in _surface?.Devices) { try { device.Dispose(); } catch (Exception ex) { _ = Task.Run(() => _logger?.WriteLog(ex?.ToString())); } } _imageByteStream?.Dispose(); _imageByteStream = null; _surface.Exception -= Surface_Exception; _surface?.Dispose(); _surface = null; _started = false; GC.SuppressFinalize(this); }