SDL: Added SDL_HIDAPI_DISABLED so it can be disabled like other SDL subsystems

From b8327a4a48edfc9f6750e39766323e87d3ce1b09 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 8 Nov 2021 07:19:45 -0800
Subject: [PATCH] Added SDL_HIDAPI_DISABLED so it can be disabled like other
 SDL subsystems

---
 include/SDL_config.h.cmake      | 1 +
 include/SDL_config.h.in         | 1 +
 include/SDL_config_emscripten.h | 1 +
 include/SDL_config_minimal.h    | 3 +++
 include/SDL_config_os2.h        | 4 +---
 include/SDL_config_psp.h        | 3 +++
 include/SDL_config_winrt.h      | 3 +++
 include/SDL_hidapi.h            | 4 ++--
 src/hidapi/SDL_hidapi.c         | 8 ++++----
 src/hidapi/android/hid.cpp      | 4 ++--
 src/hidapi/ios/hid.m            | 4 ++--
 11 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake
index 4e63379942..0bf1421c9a 100644
--- a/include/SDL_config.h.cmake
+++ b/include/SDL_config.h.cmake
@@ -266,6 +266,7 @@
 #cmakedefine SDL_FILE_DISABLED @SDL_FILE_DISABLED@
 #cmakedefine SDL_JOYSTICK_DISABLED @SDL_JOYSTICK_DISABLED@
 #cmakedefine SDL_HAPTIC_DISABLED @SDL_HAPTIC_DISABLED@
+#cmakedefine SDL_HIDAPI_DISABLED @SDL_HIDAPI_DISABLED@
 #cmakedefine SDL_SENSOR_DISABLED @SDL_SENSOR_DISABLED@
 #cmakedefine SDL_LOADSO_DISABLED @SDL_LOADSO_DISABLED@
 #cmakedefine SDL_RENDER_DISABLED @SDL_RENDER_DISABLED@
diff --git a/include/SDL_config.h.in b/include/SDL_config.h.in
index 51731b448b..5c5cb29af7 100644
--- a/include/SDL_config.h.in
+++ b/include/SDL_config.h.in
@@ -253,6 +253,7 @@
 #undef SDL_FILE_DISABLED
 #undef SDL_JOYSTICK_DISABLED
 #undef SDL_HAPTIC_DISABLED
+#undef SDL_HIDAPI_DISABLED
 #undef SDL_SENSOR_DISABLED
 #undef SDL_LOADSO_DISABLED
 #undef SDL_RENDER_DISABLED
diff --git a/include/SDL_config_emscripten.h b/include/SDL_config_emscripten.h
index 5e624d3528..a57e5c608d 100644
--- a/include/SDL_config_emscripten.h
+++ b/include/SDL_config_emscripten.h
@@ -134,6 +134,7 @@
 
 #define SDL_CPUINFO_DISABLED 1
 #define SDL_HAPTIC_DISABLED 1
+#define SDL_HIDAPI_DISABLED 1
 #ifndef __EMSCRIPTEN_PTHREADS__
 #define SDL_THREADS_DISABLED 1
 #endif
diff --git a/include/SDL_config_minimal.h b/include/SDL_config_minimal.h
index fe0ced8693..8d9ce16ccc 100644
--- a/include/SDL_config_minimal.h
+++ b/include/SDL_config_minimal.h
@@ -64,6 +64,9 @@ typedef unsigned long uintptr_t;
 /* Enable the stub haptic driver (src/haptic/dummy/\*.c) */
 #define SDL_HAPTIC_DISABLED 1
 
+/* Enable the stub HIDAPI */
+#define SDL_HIDAPI_DISABLED 1
+
 /* Enable the stub sensor driver (src/sensor/dummy/\*.c) */
 #define SDL_SENSOR_DISABLED 1
 
diff --git a/include/SDL_config_os2.h b/include/SDL_config_os2.h
index 516ab6d162..56025fed0a 100644
--- a/include/SDL_config_os2.h
+++ b/include/SDL_config_os2.h
@@ -33,14 +33,12 @@
 
 #define SDL_POWER_DISABLED  1
 #define SDL_HAPTIC_DISABLED 1
+#define SDL_HIDAPI_DISABLED 1
 
 #define SDL_SENSOR_DUMMY 1
 #define SDL_VIDEO_DRIVER_DUMMY 1
 #define SDL_VIDEO_DRIVER_OS2 1
 #define SDL_JOYSTICK_OS2 1
-#define SDL_DISABLE_HIDAPI 1
-/*#undef SDL_JOYSTICK_HIDAPI */
-/*#undef SDL_JOYSTICK_VIRTUAL */
 
 /* Enable OpenGL support */
 /* #undef SDL_VIDEO_OPENGL */
diff --git a/include/SDL_config_psp.h b/include/SDL_config_psp.h
index 53d4ca6925..56d1ad6813 100644
--- a/include/SDL_config_psp.h
+++ b/include/SDL_config_psp.h
@@ -158,6 +158,9 @@
 /* PSP doesn't have haptic device (src/haptic/dummy/\*.c) */
 #define SDL_HAPTIC_DISABLED    1
 
+/* PSP doesn't have HIDAPI available */
+#define SDL_HIDAPI_DISABLED    1
+
 /* PSP can't load shared object (src/loadso/dummy/\*.c) */
 #define SDL_LOADSO_DISABLED    1
 
diff --git a/include/SDL_config_winrt.h b/include/SDL_config_winrt.h
index c6d5c135a9..2f23bafe9b 100644
--- a/include/SDL_config_winrt.h
+++ b/include/SDL_config_winrt.h
@@ -205,6 +205,9 @@ typedef unsigned int uintptr_t;
 #define SDL_HAPTIC_XINPUT   1
 #endif
 
+/* WinRT doesn't have HIDAPI available */
+#define SDL_HIDAPI_DISABLED    1
+
 /* Enable the dummy sensor driver */
 #define SDL_SENSOR_DUMMY  1
 
diff --git a/include/SDL_hidapi.h b/include/SDL_hidapi.h
index 374eb58190..a440f98837 100644
--- a/include/SDL_hidapi.h
+++ b/include/SDL_hidapi.h
@@ -55,8 +55,8 @@
     POSSIBILITY OF SUCH DAMAGE.
  *
  * If you would like a version of SDL without this code, you can build SDL
- * with SDL_DISABLE_HIDAPI defined. You might want to do this for example on
- * iOS or tvOS to avoid a dependency on the CoreBluetooth framework.
+ * with SDL_HIDAPI_DISABLED defined to 1. You might want to do this for example
+ * on iOS or tvOS to avoid a dependency on the CoreBluetooth framework.
  */
 
 #ifndef SDL_hidapi_h_
diff --git a/src/hidapi/SDL_hidapi.c b/src/hidapi/SDL_hidapi.c
index 70a53f2998..c4466b8d90 100644
--- a/src/hidapi/SDL_hidapi.c
+++ b/src/hidapi/SDL_hidapi.c
@@ -33,7 +33,7 @@
 #include "SDL_hidapi.h"
 #include "SDL_hidapi_c.h"
 
-#ifndef SDL_DISABLE_HIDAPI
+#if !SDL_HIDAPI_DISABLED
 
 /* Platform HIDAPI Implementation */
 
@@ -350,7 +350,7 @@ SDL_libusb_get_string_descriptor(libusb_device_handle *dev,
 
 #endif /* SDL_LIBUSB_DYNAMIC */
 
-#endif /* !SDL_DISABLE_HIDAPI */
+#endif /* !SDL_HIDAPI_DISABLED */
 
 /* Shared HIDAPI Implementation */
 
@@ -469,7 +469,7 @@ DeleteHIDDeviceWrapper(HIDDeviceWrapper *device)
         return retval; \
     }
 
-#ifndef SDL_DISABLE_HIDAPI
+#if !SDL_HIDAPI_DISABLED
 
 #define COPY_IF_EXISTS(var) \
     if (pSrc->var != NULL) { \
@@ -506,7 +506,7 @@ CopyHIDDeviceInfo(struct SDL_hid_device_info *pSrc, struct SDL_hid_device_info *
 #undef COPY_IF_EXISTS
 #undef WCOPY_IF_EXISTS
 
-#endif /* SDL_DISABLE_HIDAPI */
+#endif /* !SDL_HIDAPI_DISABLED */
 
 static SDL_bool SDL_hidapi_wasinit = SDL_FALSE;
 
diff --git a/src/hidapi/android/hid.cpp b/src/hidapi/android/hid.cpp
index bed88674d8..9bfb1a75f1 100644
--- a/src/hidapi/android/hid.cpp
+++ b/src/hidapi/android/hid.cpp
@@ -22,7 +22,7 @@
 //
 //          This layer glues the hidapi API to Android's USB and BLE stack.
 
-#ifndef SDL_DISABLE_HIDAPI
+#if !SDL_HIDAPI_DISABLED
 
 #define hid_init                        PLATFORM_hid_init
 #define hid_exit                        PLATFORM_hid_exit
@@ -1286,4 +1286,4 @@ int hid_exit(void)
 
 }
 
-#endif /* SDL_DISABLE_HIDAPI */
+#endif /* SDL_HIDAPI_DISABLED */
diff --git a/src/hidapi/ios/hid.m b/src/hidapi/ios/hid.m
index ba1aaa9e01..d8abfd3745 100644
--- a/src/hidapi/ios/hid.m
+++ b/src/hidapi/ios/hid.m
@@ -20,7 +20,7 @@
 */
 #include "../../SDL_internal.h"
 
-#ifndef SDL_DISABLE_HIDAPI
+#if !SDL_HIDAPI_DISABLED
 
 #define hid_init                        PLATFORM_hid_init
 #define hid_exit                        PLATFORM_hid_exit
@@ -961,4 +961,4 @@ int HID_API_EXPORT hid_read_timeout(hid_device *dev, unsigned char *data, size_t
 	return NULL;
 }
 
-#endif /* !SDL_DISABLE_HIDAPI */
+#endif /* !SDL_HIDAPI_DISABLED */