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;
            }
        }