Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }