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();
}