OpenBve.formMain.timerEvents_Tick C# (CSharp) Method

timerEvents_Tick() private method

private timerEvents_Tick ( object sender, EventArgs e ) : void
sender object
e EventArgs
return void
		private void timerEvents_Tick(object sender, EventArgs e)
		{
			Joysticks.RefreshJoysticks();
			if (textboxJoystickGrab.Focused & this.Tag == null & listviewControls.SelectedIndices.Count == 1)
			{
				int j = listviewControls.SelectedIndices[0];
				for (int k = 0; k < Joysticks.AttachedJoysticks.Length; k++)
				{
					int axes = OpenTK.Input.Joystick.GetCapabilities(k).AxisCount;
					for (int i = 0; i < axes; i++)
					{
						double a = OpenTK.Input.Joystick.GetState(k).GetAxis((JoystickAxis)i);
						if (a < -0.75)
						{
							Interface.CurrentControls[j].Device = k;
							Interface.CurrentControls[j].Component = Interface.JoystickComponent.Axis;
							Interface.CurrentControls[j].Element = i;
							Interface.CurrentControls[j].Direction = -1;
							radiobuttonJoystick.Focus();
							UpdateJoystickDetails();
							UpdateControlListElement(listviewControls.Items[j], j, true);
							return;
						}
						if (a > 0.75)
						{
							Interface.CurrentControls[j].Device = k;
							Interface.CurrentControls[j].Component = Interface.JoystickComponent.Axis;
							Interface.CurrentControls[j].Element = i;
							Interface.CurrentControls[j].Direction = 1;
							radiobuttonJoystick.Focus();
							UpdateJoystickDetails();
							UpdateControlListElement(listviewControls.Items[j], j, true);
							return;
						}
					}
					int buttons = OpenTK.Input.Joystick.GetCapabilities(k).ButtonCount;
					for (int i = 0; i < buttons; i++)
					{
						if (OpenTK.Input.Joystick.GetState(k).GetButton((JoystickButton)i) == ButtonState.Pressed)
						{
							Interface.CurrentControls[j].Device = k;
							Interface.CurrentControls[j].Component = Interface.JoystickComponent.Button;
							Interface.CurrentControls[j].Element = i;
							Interface.CurrentControls[j].Direction = 1;
							radiobuttonJoystick.Focus();
							UpdateJoystickDetails();
							UpdateControlListElement(listviewControls.Items[j], j, true);
							return;
						}
					}
					int hats = OpenTK.Input.Joystick.GetCapabilities(k).HatCount;
					for (int i = 0; i < hats; i++)
					{
						JoystickHatState hat = OpenTK.Input.Joystick.GetState(k).GetHat(JoystickHat.Hat0);
						if (hat.Position != HatPosition.Centered)
						{
							Interface.CurrentControls[j].Device = k;
							Interface.CurrentControls[j].Component = Interface.JoystickComponent.Hat;
							Interface.CurrentControls[j].Element = i;
							Interface.CurrentControls[j].Direction = (int)hat.Position;
							radiobuttonJoystick.Focus();
							UpdateJoystickDetails();
							UpdateControlListElement(listviewControls.Items[j], j, true);
							return;
						}
					}
				}
			}

			pictureboxJoysticks.Invalidate();

		}
formMain