Merge pull request #335 from mrhelmut/HIDFix
Fix for multiple HID driver issues
This commit is contained in:
commit
933701f062
2 changed files with 18 additions and 4 deletions
|
@ -76,6 +76,8 @@ namespace OpenTK.Input
|
|||
|
||||
// Windows - XInput
|
||||
Add("78696e70757400000000000000000000,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,");
|
||||
// Windows - XInput (SDL2)
|
||||
Add("78696e70757401000000000000000000,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,");
|
||||
|
||||
// Windows
|
||||
Add("341a3608000000000000504944564944,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,");
|
||||
|
@ -88,6 +90,7 @@ namespace OpenTK.Input
|
|||
Add("4c056802000000000000504944564944,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,");
|
||||
Add("25090500000000000000504944564944,PS3 DualShock,a:b2,b:b1,back:b9,dpdown:h0.8,dpleft:h0.4,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b0,y:b3,");
|
||||
Add("4c05c405000000000000504944564944,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,");
|
||||
Add("05c4054c000000000000504944564944,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a5,rightx:a2,righty:a3,start:b9,x:b0,y:b3,");
|
||||
|
||||
// Mac OS X
|
||||
Add("0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,");
|
||||
|
|
|
@ -80,10 +80,13 @@ namespace OpenTK.Platform.Windows
|
|||
}
|
||||
|
||||
public void SetAxis(short collection, HIDPage page, short usage, short value)
|
||||
{
|
||||
if (page == HIDPage.GenericDesktop || page == HIDPage.Simulation) // set axis only when HIDPage is known by HidHelper.TranslateJoystickAxis() to avoid axis0 to be overwritten by unknown HIDPage
|
||||
{
|
||||
JoystickAxis axis = GetAxis(collection, page, usage);
|
||||
State.SetAxis(axis, value);
|
||||
}
|
||||
}
|
||||
|
||||
public void SetButton(short collection, HIDPage page, short usage, bool value)
|
||||
{
|
||||
|
@ -258,7 +261,7 @@ namespace OpenTK.Platform.Windows
|
|||
|
||||
// This is a new device, query its capabilities and add it
|
||||
// to the device list
|
||||
if (!QueryDeviceCaps(device))
|
||||
if (!QueryDeviceCaps(device) && !is_xinput)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
@ -351,6 +354,12 @@ namespace OpenTK.Platform.Windows
|
|||
{
|
||||
if (caps.LogicalMax == 8)
|
||||
return (HatPosition)value;
|
||||
else if (caps.LogicalMax == 7)
|
||||
{
|
||||
value++;
|
||||
value %= 9;
|
||||
return (HatPosition)value;
|
||||
}
|
||||
else
|
||||
return HatPosition.Centered;
|
||||
}
|
||||
|
@ -602,6 +611,8 @@ namespace OpenTK.Platform.Windows
|
|||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue