public string RemoveDevice(string UniqueKey)
        {
            lock (Controllers)
            {
                //Console.WriteLine($"Removing {UniqueKey}");
                if (Controllers.ContainsKey(UniqueKey))
                {
                    XInputController ctrl = Controllers[UniqueKey];
                    string           UniqueControllerId = ctrl.ConnectionUniqueID;

                    ctrl.DeInitalize();
                    ctrl.Dispose();
                    Controllers.Remove(UniqueKey);

                    return(UniqueControllerId);
                }
            }
            return(null);
        }
        public IController NewDevice(IDevice device)
        {
            XInputDevice _device = device as XInputDevice;

            if (_device == null)
            {
                return(null);
            }

            {
                lock (Controllers)
                {
                    XInputController ctrl = new XInputController(_device);
                    Controllers[_device.UniqueKey] = ctrl;
                    ctrl.HalfInitalize();
                    return(ctrl);
                }
            }
        }