private void Process() { while (!_closed) { _permit.Wait(); if (!_gamepad.IsConnected()) { Thread.Sleep(500); continue; } // update battery info GamePadBatteryLevel currentBatteryLevel = _gamepad.GetBatteryInfo(); if (_batteryLevel != currentBatteryLevel) { _batteryLevel = currentBatteryLevel; OnBatteryLevelChanged?.Invoke(_batteryLevel); } int dwResult = XInputWrapper.XInputGetState(_gamepad.GetNumber(), ref _state); if (dwResult == XInputWrapper.ERROR_SUCCESS) { // send input SetInput(_state, InputType.Clicked, Controller.GetProfile().RepeatMode); } Thread.Sleep(_delay); } }
public void UpdateBatteryLevel(GamePadBatteryLevel level) { switch (level) { case GamePadBatteryLevel.Empty: ImgStatus.SetImage(Resources.BatteryEmptyIcon); break; case GamePadBatteryLevel.Low: ImgStatus.SetImage(Resources.BatteryLowIcon); break; case GamePadBatteryLevel.Medium: ImgStatus.SetImage(Resources.BatteryMediumIcon); break; case GamePadBatteryLevel.Full: ImgStatus.SetImage(Resources.BatteryFullIcon); break; default: break; } }