|
|
|
@ -50,16 +50,26 @@ typedef struct _GLFWobjenumWin32 |
|
|
|
|
|
|
|
|
|
// Define local copies of the necessary GUIDs
|
|
|
|
|
//
|
|
|
|
|
static const GUID _glfw_IID_IDirectInput8W = {0xbf798031,0x483a,0x4da2,{0xaa,0x99,0x5d,0x64,0xed,0x36,0x97,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_XAxis = {0xa36d02e0,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_YAxis = {0xa36d02e1,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_ZAxis = {0xa36d02e2,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_RxAxis = {0xa36d02f4,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_RyAxis = {0xa36d02f5,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_RzAxis = {0xa36d02e3,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_Slider = {0xa36d02e4,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_Button = {0xa36d02f0,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_POV = {0xa36d02f2,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_IID_IDirectInput8W = |
|
|
|
|
{0xbf798031,0x483a,0x4da2,{0xaa,0x99,0x5d,0x64,0xed,0x36,0x97,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_XAxis = |
|
|
|
|
{0xa36d02e0,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_YAxis = |
|
|
|
|
{0xa36d02e1,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_ZAxis = |
|
|
|
|
{0xa36d02e2,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_RxAxis = |
|
|
|
|
{0xa36d02f4,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_RyAxis = |
|
|
|
|
{0xa36d02f5,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_RzAxis = |
|
|
|
|
{0xa36d02e3,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_Slider = |
|
|
|
|
{0xa36d02e4,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_Button = |
|
|
|
|
{0xa36d02f0,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
static const GUID _glfw_GUID_POV = |
|
|
|
|
{0xa36d02f2,0xc9f3,0x11cf,{0xbf,0xc7,0x44,0x45,0x53,0x54,0x00,0x00}}; |
|
|
|
|
|
|
|
|
|
#define IID_IDirectInput8W _glfw_IID_IDirectInput8W |
|
|
|
|
#define GUID_XAxis _glfw_GUID_XAxis |
|
|
|
@ -345,10 +355,12 @@ static BOOL CALLBACK deviceCallback(const DIDEVICEINSTANCE* di, void* user) |
|
|
|
|
|
|
|
|
|
for (jid = 0; jid <= GLFW_JOYSTICK_LAST; jid++) |
|
|
|
|
{ |
|
|
|
|
if (!_glfw.joysticks[jid].present) |
|
|
|
|
continue; |
|
|
|
|
if (memcmp(&_glfw.joysticks[jid].win32.guid, &di->guidInstance, sizeof(GUID)) == 0) |
|
|
|
|
return DIENUM_CONTINUE; |
|
|
|
|
_GLFWjoystick* js = _glfw.joysticks + jid; |
|
|
|
|
if (js->present) |
|
|
|
|
{ |
|
|
|
|
if (memcmp(&js->win32.guid, &di->guidInstance, sizeof(GUID)) == 0) |
|
|
|
|
return DIENUM_CONTINUE; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (supportsXInput(&di->guidProduct)) |
|
|
|
|