[PATCH 2/6] dinput: Move PIDVID internal guid to device.c.

Rémi Bernon rbernon at codeweavers.com
Mon Oct 11 03:10:56 CDT 2021


Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
 dlls/dinput/device.c              | 9 +++++++++
 dlls/dinput/device_private.h      | 2 +-
 dlls/dinput/joystick.c            | 8 --------
 dlls/dinput/joystick_hid.c        | 6 +++---
 dlls/dinput/joystick_linux.c      | 2 +-
 dlls/dinput/joystick_linuxinput.c | 2 +-
 dlls/dinput/joystick_osx.c        | 6 +++---
 7 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c
index 61f6effad19..484fe904c2e 100644
--- a/dlls/dinput/device.c
+++ b/dlls/dinput/device.c
@@ -36,6 +36,9 @@
 #include "winuser.h"
 #include "winerror.h"
 #include "dinput.h"
+#include "dinputd.h"
+
+#include "initguid.h"
 #include "device_private.h"
 #include "dinput_private.h"
 
@@ -43,6 +46,12 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(dinput);
 
+/* Windows uses this GUID for guidProduct on non-keyboard/mouse devices.
+ * Data1 contains the device VID (low word) and PID (high word).
+ * Data4 ends with the ASCII bytes "PIDVID".
+ */
+DEFINE_GUID( dinput_pidvid_guid, 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 'P', 'I', 'D', 'V', 'I', 'D' );
+
 static inline IDirectInputDeviceImpl *impl_from_IDirectInputDevice8W(IDirectInputDevice8W *iface)
 {
     return CONTAINING_RECORD(iface, IDirectInputDeviceImpl, IDirectInputDevice8W_iface);
diff --git a/dlls/dinput/device_private.h b/dlls/dinput/device_private.h
index 8aced6d84dd..2b939fd5a0c 100644
--- a/dlls/dinput/device_private.h
+++ b/dlls/dinput/device_private.h
@@ -128,7 +128,7 @@ typedef struct
     LPDIRECTINPUTEFFECT ref;
 } effect_list_item;
 
-extern const GUID DInput_PIDVID_Product_GUID DECLSPEC_HIDDEN;
+extern const GUID dinput_pidvid_guid DECLSPEC_HIDDEN;
 
 /* Various debug tools */
 extern void _dump_DIPROPHEADER(LPCDIPROPHEADER diph)  DECLSPEC_HIDDEN;
diff --git a/dlls/dinput/joystick.c b/dlls/dinput/joystick.c
index 979d5a5c7f2..afebaa022b7 100644
--- a/dlls/dinput/joystick.c
+++ b/dlls/dinput/joystick.c
@@ -52,14 +52,6 @@ static const WORD PID_XBOX_CONTROLLERS[] =  {
     0x0719, /* Xbox 360 Wireless Adapter */
 };
 
-/* Windows uses this GUID for guidProduct on non-keyboard/mouse devices.
- * Data1 contains the device VID (low word) and PID (high word).
- * Data4 ends with the ASCII bytes "PIDVID".
- */
-const GUID DInput_PIDVID_Product_GUID = { /* device_pidvid-0000-0000-0000-504944564944 */
-    0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x50, 0x49, 0x44, 0x56, 0x49, 0x44}
-};
-
 static inline JoystickGenericImpl *impl_from_IDirectInputDevice8W(IDirectInputDevice8W *iface)
 {
     return CONTAINING_RECORD(CONTAINING_RECORD(iface, IDirectInputDeviceImpl, IDirectInputDevice8W_iface), JoystickGenericImpl, base);
diff --git a/dlls/dinput/joystick_hid.c b/dlls/dinput/joystick_hid.c
index 728b98591d2..63193554405 100644
--- a/dlls/dinput/joystick_hid.c
+++ b/dlls/dinput/joystick_hid.c
@@ -1737,7 +1737,7 @@ static BOOL hid_joystick_device_try_open( UINT32 handle, const WCHAR *path, HAND
 
     instance->guidInstance = hid_joystick_guid;
     instance->guidInstance.Data1 ^= handle;
-    instance->guidProduct = DInput_PIDVID_Product_GUID;
+    instance->guidProduct = dinput_pidvid_guid;
     instance->guidProduct.Data1 = MAKELONG( attrs->VendorID, attrs->ProductID );
     instance->guidFFDriver = GUID_NULL;
     instance->wUsagePage = caps->UsagePage;
@@ -2258,9 +2258,9 @@ static HRESULT hid_joystick_create_device( IDirectInputImpl *dinput, const GUID
     TRACE( "dinput %p, guid %s, out %p\n", dinput, debugstr_guid( guid ), out );
 
     *out = NULL;
-    instance.guidProduct.Data1 = DInput_PIDVID_Product_GUID.Data1;
+    instance.guidProduct.Data1 = dinput_pidvid_guid.Data1;
     instance.guidInstance.Data1 = hid_joystick_guid.Data1;
-    if (IsEqualGUID( &DInput_PIDVID_Product_GUID, &instance.guidProduct ))
+    if (IsEqualGUID( &dinput_pidvid_guid, &instance.guidProduct ))
         instance.guidProduct = *guid;
     else if (IsEqualGUID( &hid_joystick_guid, &instance.guidInstance ))
         instance.guidInstance = *guid;
diff --git a/dlls/dinput/joystick_linux.c b/dlls/dinput/joystick_linux.c
index 5b54e352c20..decd69b1e7e 100644
--- a/dlls/dinput/joystick_linux.c
+++ b/dlls/dinput/joystick_linux.c
@@ -315,7 +315,7 @@ static INT find_joystick_devices(void)
         else
         {
             /* Concatenate product_id with vendor_id to mimic Windows behaviour */
-            joydev.guid_product       = DInput_PIDVID_Product_GUID;
+            joydev.guid_product       = dinput_pidvid_guid;
             joydev.guid_product.Data1 = MAKELONG(joydev.vendor_id, joydev.product_id);
         }
 
diff --git a/dlls/dinput/joystick_linuxinput.c b/dlls/dinput/joystick_linuxinput.c
index 949fd1da081..c7f4cc486fd 100644
--- a/dlls/dinput/joystick_linuxinput.c
+++ b/dlls/dinput/joystick_linuxinput.c
@@ -320,7 +320,7 @@ static void find_joydevs(void)
             joydev.bus_type = device_id.bustype;
 
             /* Concatenate product_id with vendor_id to mimic Windows behaviour */
-            joydev.guid_product       = DInput_PIDVID_Product_GUID;
+            joydev.guid_product       = dinput_pidvid_guid;
             joydev.guid_product.Data1 = MAKELONG(joydev.vendor_id, joydev.product_id);
         }
 
diff --git a/dlls/dinput/joystick_osx.c b/dlls/dinput/joystick_osx.c
index 9ee45e8a445..5796daf8e11 100644
--- a/dlls/dinput/joystick_osx.c
+++ b/dlls/dinput/joystick_osx.c
@@ -1058,7 +1058,7 @@ static HRESULT joydev_enum_device(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINST
         /* Return joystick */
         lpddi->guidInstance = DInput_Wine_OsX_Joystick_GUID;
         lpddi->guidInstance.Data3 = id;
-        lpddi->guidProduct = DInput_PIDVID_Product_GUID;
+        lpddi->guidProduct = dinput_pidvid_guid;
         lpddi->guidProduct.Data1 = make_vid_pid(device);
         lpddi->dwDevType = get_device_type(version, is_joystick);
         lpddi->dwDevType |= DIDEVTYPE_HID;
@@ -1131,7 +1131,7 @@ static HRESULT alloc_device( REFGUID rguid, IDirectInputImpl *dinput, JoystickIm
 
     newDevice->generic.guidInstance = DInput_Wine_OsX_Joystick_GUID;
     newDevice->generic.guidInstance.Data3 = index;
-    newDevice->generic.guidProduct = DInput_PIDVID_Product_GUID;
+    newDevice->generic.guidProduct = dinput_pidvid_guid;
     newDevice->generic.guidProduct.Data1 = make_vid_pid(device);
     newDevice->generic.joy_polldev = poll_osx_device_state;
 
@@ -1309,7 +1309,7 @@ static unsigned short get_joystick_index(REFGUID guid)
     if(IsEqualGUID(&wine_joystick, &dev_guid)) return guid->Data3;
 
     prod_guid.Data1 = 0;
-    if(IsEqualGUID(&DInput_PIDVID_Product_GUID, &prod_guid))
+    if(IsEqualGUID(&dinput_pidvid_guid, &prod_guid))
     {
         joystick_devices_count = find_joystick_devices();
         for(i = 0; i < joystick_devices_count; i++)
-- 
2.33.0




More information about the wine-devel mailing list