/// <summary> /// Updates the status of the controller. /// </summary> public static void Update() { RefreshControllers(); if (ConnectedControllers.ContainsKey(activeControllerGuid)) { if (ControllerModel == ControllerModels.Unknown) { ControllerModel = GetControllerModel(activeControllerGuid, Joystick.GetCapabilities(ConnectedControllers[activeControllerGuid])); } IsControllerConnected = Joystick.GetState(ConnectedControllers[activeControllerGuid]).IsConnected; if (IsControllerConnected) { // A valid controller is connected, get input GetInput(); } } }
/// <summary> /// Refreshes the connected controllers. /// </summary> public static void RefreshControllers() { for (int i = 0; i < 10; i++) { Guid guid = Joystick.GetGuid(i); if (!ConnectedControllers.ContainsKey(guid)) { // New controller JoystickCapabilities capabilities = Joystick.GetCapabilities(i); ControllerModels model = GetControllerModel(guid, capabilities); if (Joystick.GetState(i).IsConnected&& model != ControllerModels.Unsupported) { ConnectedControllers.Add(guid, i); } } else { // Update the controller index ConnectedControllers[guid] = i; } } }