Browse Source

SDL_dinputjoystick.c (IsXInputDevice): adjust to be ANSI/UNICODE-agnostic

cf. bug #5435.
Ozkan Sezer 4 years ago
parent
commit
f09e0af7aa
1 changed files with 10 additions and 4 deletions
  1. 10 4
      src/joystick/windows/SDL_dinputjoystick.c

+ 10 - 4
src/joystick/windows/SDL_dinputjoystick.c

@@ -232,6 +232,12 @@ SetDIerror(const char *function, HRESULT code)
     return SDL_SetError("%s() DirectX error 0x%8.8lx", function, code);
 }
 
+#ifdef UNICODE
+#define SDL_tcsstr SDL_wcsstr
+#else
+#define SDL_tcsstr SDL_strstr
+#endif
+
 #if 0 /* Microsoft recommended implementation, but slower than checking raw devices */
 #define COBJMACROS
 #include <wbemidl.h>
@@ -241,7 +247,7 @@ static const IID CLSID_WbemLocator = { 0x4590f811, 0x1d3a, 0x11d0,{ 0x89, 0x1f,
 static const IID IID_IWbemLocator = { 0xdc12a687, 0x737f, 0x11cf,{ 0x88, 0x4d, 0x00, 0xaa, 0x00, 0x4b, 0x2e, 0x24 } };
 
 static SDL_bool
-WIN_IsXInputDevice(const WCHAR *name, const GUID* pGuidProductFromDirectInput)
+WIN_IsXInputDevice(const TCHAR *name, const GUID* pGuidProductFromDirectInput)
 {
     IWbemLocator*           pIWbemLocator = NULL;
     IEnumWbemClassObject*   pEnumDevices = NULL;
@@ -260,7 +266,7 @@ WIN_IsXInputDevice(const WCHAR *name, const GUID* pGuidProductFromDirectInput)
         return SDL_FALSE;
     }
 
-    if (SDL_wcsstr(name, L" XINPUT ") != NULL) {
+    if (SDL_tcsstr(name, TEXT(" XINPUT ")) != NULL) {
         /* This is a duplicate interface for a controller that will show up with XInput,
            e.g. Xbox One Elite Series 2 in Bluetooth mode.
          */
@@ -371,7 +377,7 @@ LCleanup:
 #endif /* 0 */
 
 static SDL_bool
-SDL_IsXInputDevice(const WCHAR *name, const GUID* pGuidProductFromDirectInput)
+SDL_IsXInputDevice(const TCHAR *name, const GUID* pGuidProductFromDirectInput)
 {
     UINT i;
 
@@ -379,7 +385,7 @@ SDL_IsXInputDevice(const WCHAR *name, const GUID* pGuidProductFromDirectInput)
         return SDL_FALSE;
     }
 
-    if (SDL_wcsstr(name, L" XINPUT ") != NULL) {
+    if (SDL_tcsstr(name, TEXT(" XINPUT ")) != NULL) {
         /* This is a duplicate interface for a controller that will show up with XInput,
            e.g. Xbox One Elite Series 2 in Bluetooth mode.
          */