private void updateDevices() { for (int i = 0; i < DEVICE_COUNT; i++) { JoystickCapabilities c = Joystick.GetCapabilities(i); if (c.IsConnected && c.ButtonCount + c.AxisCount + c.HatCount > 0) { // if the capabilities have changed, the device has changed, so record the new default state if (!deviceIsConnected[i] || !c.Equals(lastCapabilities[i])) { firstState[i] = Joystick.GetState(i); lastCapabilities[i] = c; } deviceIsConnected[i] = true; } else { deviceIsConnected[i] = false; } } }