public VirtualError EnableFeeding(uint userIndex)
        {
            bool success;

            if (userIndex < 1 || userIndex > 4)
            {
                return(VirtualError.Index);
            }
            if (!ViGEmClient.isVBusExists())
            {
                return(VirtualError.Missing);
            }
            if (ViGEmClient.isControllerExists(userIndex))
            {
                if (ViGEmClient.isControllerOwned(userIndex))
                {
                    return(VirtualError.None);
                }
                success = ViGEmClient.UnPlugForce(userIndex);
                if (!success)
                {
                    return(VirtualError.Other);
                }
            }
            success = ViGEmClient.PlugIn(userIndex);
            if (success)
            {
                return(VirtualError.None);
            }
            return(VirtualError.Other);
        }