public RazerConnectEffect(RazerConnectEffectConfig config) : base(config) { if (_instances++ == 0) { _manager = new RzChromaBroadcastManager(); } _colors = new LedColor[RzChromaBroadcastNative.BroadcastColorCount]; if (_manager != null && _manager.Initialized) { _manager.ColorChanged += OnColorUpdate; _manager.ConnectionChanged += OnConnectionUpdate; } }
protected override void Dispose(bool disposing) { base.Dispose(disposing); if (_manager != null) { _manager.ColorChanged -= OnColorUpdate; _manager.ConnectionChanged -= OnConnectionUpdate; } if (--_instances == 0) { _manager?.Dispose(); _manager = null; } }