Rebase against 10dcee21c4b28b7f1cedc9ade01c09616521b628

This commit is contained in:
Alistair Leslie-Hughes
2019-05-07 08:27:08 +10:00
parent 5f18c8565c
commit b105021410
10 changed files with 146 additions and 427 deletions

View File

@@ -1,27 +0,0 @@
From 7b59e0a7d0962899762b5b7a466d16b97d771df2 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 27 Apr 2019 12:53:06 +1000
Subject: [PATCH 3/7] dinput: Return E_NOINTERFACE from IDirectInputDevice2
QueryInterface
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/dinput/device.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c
index 63eb868..1317e91 100644
--- a/dlls/dinput/device.c
+++ b/dlls/dinput/device.c
@@ -1257,7 +1257,7 @@ HRESULT WINAPI IDirectInputDevice2WImpl_QueryInterface(LPDIRECTINPUTDEVICE8W ifa
}
WARN("Unsupported interface!\n");
- return E_FAIL;
+ return E_NOINTERFACE;
}
HRESULT WINAPI IDirectInputDevice2AImpl_QueryInterface(LPDIRECTINPUTDEVICE8A iface, REFIID riid, LPVOID *ppobj)
--
1.9.1

View File

@@ -1,28 +0,0 @@
From 1b1158f85ae61f348207460ce98b1977eee79b66 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 27 Apr 2019 13:10:01 +1000
Subject: [PATCH 4/7] dinput: Dont report we cannot open a device
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/dinput/joystick_linuxinput.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/dlls/dinput/joystick_linuxinput.c b/dlls/dinput/joystick_linuxinput.c
index fb6b305..7343a50 100644
--- a/dlls/dinput/joystick_linuxinput.c
+++ b/dlls/dinput/joystick_linuxinput.c
@@ -219,10 +219,7 @@ static void find_joydevs(void)
}
if (fd == -1)
- {
- WARN("Failed to open \"%s\": %d %s\n", buf, errno, strerror(errno));
continue;
- }
if (ioctl(fd, EVIOCGBIT(0, sizeof(joydev.evbits)), joydev.evbits) == -1)
{
--
1.9.1

View File

@@ -1,29 +0,0 @@
From 0e363558e654e25546127effe43a07c2b2038c9b Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 27 Apr 2019 13:23:46 +1000
Subject: [PATCH 5/7] dinput: Improve EnumDevice tracing
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/dinput/dinput_main.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/dinput/dinput_main.c b/dlls/dinput/dinput_main.c
index 7bf067f..4b41b71 100644
--- a/dlls/dinput/dinput_main.c
+++ b/dlls/dinput/dinput_main.c
@@ -467,9 +467,10 @@ static HRESULT WINAPI IDirectInputAImpl_EnumDevices(
for (i = 0; i < ARRAY_SIZE(dinput_devices); i++) {
if (!dinput_devices[i]->enum_deviceA) continue;
+
+ TRACE(" Checking device %u ('%s')\n", i, dinput_devices[i]->name);
for (j = 0, r = S_OK; SUCCEEDED(r); j++) {
devInstance.dwSize = sizeof(devInstance);
- TRACE(" - checking device %u ('%s')\n", i, dinput_devices[i]->name);
r = dinput_devices[i]->enum_deviceA(dwDevType, dwFlags, &devInstance, This->dwVersion, j);
if (r == S_OK)
if (enum_callback_wrapper(lpCallback, &devInstance, pvRef) == DIENUM_STOP)
--
1.9.1

View File

@@ -1,79 +0,0 @@
From e5eb27de156f7d250755fb3070c419e28e9d1957 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sun, 28 Apr 2019 12:11:56 +1000
Subject: [PATCH 6/7] dinput: Support DIDEVICEINSTANCE_DX3 for Mouse
GetDeviceInfo
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/dinput/mouse.c | 5 -----
dlls/dinput/tests/mouse.c | 30 ++++++++++++++++++++++++++++++
2 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/dlls/dinput/mouse.c b/dlls/dinput/mouse.c
index 0adba03..1e2b1d1 100644
--- a/dlls/dinput/mouse.c
+++ b/dlls/dinput/mouse.c
@@ -765,11 +765,6 @@ static HRESULT WINAPI SysMouseAImpl_GetDeviceInfo(
SysMouseImpl *This = impl_from_IDirectInputDevice8A(iface);
TRACE("(this=%p,%p)\n", This, pdidi);
- if (pdidi->dwSize != sizeof(DIDEVICEINSTANCEA)) {
- WARN(" dinput3 not supported yet...\n");
- return DI_OK;
- }
-
fill_mouse_dideviceinstanceA(pdidi, This->base.dinput->dwVersion);
return DI_OK;
diff --git a/dlls/dinput/tests/mouse.c b/dlls/dinput/tests/mouse.c
index c2d0226..c1a7ff7 100644
--- a/dlls/dinput/tests/mouse.c
+++ b/dlls/dinput/tests/mouse.c
@@ -198,6 +198,35 @@ static void test_acquire(IDirectInputA *pDI, HWND hwnd)
DestroyWindow( hwnd2 );
}
+static void test_GetDeviceInfo(IDirectInputA *pDI)
+{
+ HRESULT hr;
+ IDirectInputDeviceA *pMouse = NULL;
+ DIDEVICEINSTANCEA instA;
+ DIDEVICEINSTANCE_DX3A inst3A;
+
+ hr = IDirectInput_CreateDevice(pDI, &GUID_SysMouse, &pMouse, NULL);
+ ok(SUCCEEDED(hr), "IDirectInput_CreateDevice() failed: %08x\n", hr);
+ if (FAILED(hr)) return;
+
+ instA.dwSize = sizeof(instA);
+ hr = IDirectInputDevice_GetDeviceInfo(pMouse, &instA);
+ ok(SUCCEEDED(hr), "got %08x\n", hr);
+
+ inst3A.dwSize = sizeof(inst3A);
+ hr = IDirectInputDevice_GetDeviceInfo(pMouse, (DIDEVICEINSTANCEA *)&inst3A);
+ ok(SUCCEEDED(hr), "got %08x\n", hr);
+
+ ok(instA.dwSize != inst3A.dwSize, "got %d, %d \n", instA.dwSize, inst3A.dwSize);
+ ok(IsEqualGUID(&instA.guidInstance, &inst3A.guidInstance), "got %s, %s\n",
+ wine_dbgstr_guid(&instA.guidInstance), wine_dbgstr_guid(&inst3A.guidInstance) );
+ ok(IsEqualGUID(&instA.guidProduct, &inst3A.guidProduct), "got %s, %s\n",
+ wine_dbgstr_guid(&instA.guidProduct), wine_dbgstr_guid(&inst3A.guidProduct) );
+ ok(instA.dwDevType == inst3A.dwDevType, "got %d, %d\n", instA.dwDevType, inst3A.dwDevType);
+
+ if (pMouse) IUnknown_Release(pMouse);
+}
+
static void mouse_tests(void)
{
HRESULT hr;
@@ -224,6 +253,7 @@ static void mouse_tests(void)
test_set_coop(pDI, hwnd);
test_acquire(pDI, hwnd);
+ test_GetDeviceInfo(pDI);
DestroyWindow(hwnd);
}
--
1.9.1