private static void RemoveDevice(IController device) { device.Stop(); _allControllers.RemoveAll(dev => dev.Equals(device)); device = null; ControllersUpdated?.Invoke(); }
public static void SetActiveController(IController Controller) { _activeController?.SetLightbar(0, 0, 0); _activeController = Controller; ControllerChanged?.Invoke(); ControllersUpdated?.Invoke(); MainWindow.UpdateChildren(); }
public static void ScanDevices() { // Scan for devices lock (_allControllers) { if (Settings.Default.EnableDS4) { try { DS4Devices.findControllers(); var listDS4 = DS4Devices.getDS4Controllers(); foreach (var controller in listDS4) { if (_allControllers.Count(c => c.UnderlyingDevice == controller.HidDevice) == 0) { Logger.Write("Found new DS4 device: {0}", controller.MacAddress); _allControllers.Add(new DS4Input(controller.MacAddress)); ControllersUpdated?.Invoke(); } } } catch (ThreadAbortException ex) { } catch (Exception ex) { Logger.Write("DS4 driver error: ", ex); MessageBox.Show(string.Format(Resources.ErrorDriverDs4Disabled, ex.Message), Resources.ErrorDriverDisabledTitle, MessageBoxButton.OK, MessageBoxImage.Error); Settings.Default.EnableDS4 = false; Settings.Default.Save(); } } if (Settings.Default.EnableXbox) { // Scan for Xbox controllers try { for (int i = XboxController.FIRST_CONTROLLER_INDEX; i < XboxController.MAX_CONTROLLER_COUNT; i++) { XInputState stateController = new XInputState(); int result = XInput.XInputGetState(i, ref stateController); if (result == 0) // Controller found { var controller = XboxController.RetrieveController(i); if (_allControllers.Count(c => c.UnderlyingDevice == controller) == 0) { Logger.Write("Found new XInput device: {0}", i); _allControllers.Add(new XboxInput(i)); ControllersUpdated?.Invoke(); } } } } catch (ThreadAbortException ex) { } catch (Exception ex) { Logger.Write("XInput driver error: ", ex); MessageBox.Show(string.Format(Resources.ErrorDriverXboxDisabled, ex.Message), Resources.ErrorDriverDisabledTitle, MessageBoxButton.OK, MessageBoxImage.Error); Settings.Default.EnableXbox = false; Settings.Default.Save(); } } } }