SDL: check for tpcshrd.h and define HAVE_TPCSHRD_H if it's available.

From 75ac944b9c0b5ad6444f72a784d2ddf4f21af7fe Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Thu, 6 Jan 2022 22:24:00 +0300
Subject: [PATCH] check for tpcshrd.h and define HAVE_TPCSHRD_H if it's
 available.

---
 CMakeLists.txt               |  1 +
 configure                    | 11 +++++++++++
 configure.ac                 |  4 ++++
 include/SDL_config.h.cmake   |  1 +
 include/SDL_config.h.in      |  1 +
 include/SDL_config_windows.h |  1 +
 include/SDL_config_winrt.h   |  1 +
 7 files changed, 20 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index afbddce05b8..9a61ba26bca 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1581,6 +1581,7 @@ elseif(WINDOWS)
   endif()
 
   # headers needed elsewhere
+  check_include_file(tpcshrd.h HAVE_TPCSHRD_H)
   check_include_file(mmdeviceapi.h HAVE_MMDEVICEAPI_H)
   check_include_file(audioclient.h HAVE_AUDIOCLIENT_H)
   check_include_file(sensorsapi.h HAVE_SENSORSAPI_H)
diff --git a/configure b/configure
index e9c5e240d90..d7c931668e3 100755
--- a/configure
+++ b/configure
@@ -26134,6 +26134,17 @@ $as_echo "#define SDL_HAPTIC_DINPUT 1" >>confdefs.h
                 have_haptic=yes
             fi
         fi
+        ac_fn_c_check_header_mongrel "$LINENO" "tpcshrd.h" "ac_cv_header_tpcshrd_h" "$ac_includes_default"
+if test "x$ac_cv_header_tpcshrd_h" = xyes; then :
+  have_tpcshrd_h=yes
+fi
+
+
+        if test x$have_tpcshrd_h = xyes; then
+
+$as_echo "#define HAVE_TPCSHRD_H 1" >>confdefs.h
+
+        fi
         # Set up files for the sensor library
         ac_fn_c_check_header_mongrel "$LINENO" "sensorsapi.h" "ac_cv_header_sensorsapi_h" "$ac_includes_default"
 if test "x$ac_cv_header_sensorsapi_h" = xyes; then :
diff --git a/configure.ac b/configure.ac
index 56377d5ba0d..fec064d9276 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3971,6 +3971,10 @@ case "$host" in
                 have_haptic=yes
             fi
         fi
+        AC_CHECK_HEADER(tpcshrd.h,have_tpcshrd_h=yes)
+        if test x$have_tpcshrd_h = xyes; then
+            AC_DEFINE(HAVE_TPCSHRD_H, 1, [ ])
+        fi
         # Set up files for the sensor library
         AC_CHECK_HEADER(sensorsapi.h,have_winsensors=yes,have_winsensors=no)
         if test x$have_winsensors = xyes; then
diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake
index 483de8a37e1..7f96bbe2f41 100644
--- a/include/SDL_config.h.cmake
+++ b/include/SDL_config.h.cmake
@@ -251,6 +251,7 @@
 
 #cmakedefine HAVE_MMDEVICEAPI_H @HAVE_MMDEVICEAPI_H@
 #cmakedefine HAVE_AUDIOCLIENT_H @HAVE_AUDIOCLIENT_H@
+#cmakedefine HAVE_TPCSHRD_H @HAVE_TPCSHRD_H@
 #cmakedefine HAVE_SENSORSAPI_H @HAVE_SENSORSAPI_H@
 
 #cmakedefine HAVE_XINPUT_GAMEPAD_EX @HAVE_XINPUT_GAMEPAD_EX@
diff --git a/include/SDL_config.h.in b/include/SDL_config.h.in
index 487512c43e6..0d981b410cd 100644
--- a/include/SDL_config.h.in
+++ b/include/SDL_config.h.in
@@ -240,6 +240,7 @@
 
 #undef HAVE_MMDEVICEAPI_H
 #undef HAVE_AUDIOCLIENT_H
+#undef HAVE_TPCSHRD_H
 #undef HAVE_SENSORSAPI_H
 
 /* SDL internal assertion support */
diff --git a/include/SDL_config_windows.h b/include/SDL_config_windows.h
index fbf823d8060..c9ed1cfeaad 100644
--- a/include/SDL_config_windows.h
+++ b/include/SDL_config_windows.h
@@ -103,6 +103,7 @@ typedef unsigned int uintptr_t;
 #endif
 #define HAVE_MMDEVICEAPI_H 1
 #define HAVE_AUDIOCLIENT_H 1
+#define HAVE_TPCSHRD_H 1
 #define HAVE_SENSORSAPI_H 1
 #if (defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64)) && (defined(_MSC_VER) && _MSC_VER >= 1600)
 #define HAVE_IMMINTRIN_H 1
diff --git a/include/SDL_config_winrt.h b/include/SDL_config_winrt.h
index 3c1aec1c90e..690ffe15914 100644
--- a/include/SDL_config_winrt.h
+++ b/include/SDL_config_winrt.h
@@ -100,6 +100,7 @@ typedef unsigned int uintptr_t;
 
 #define HAVE_MMDEVICEAPI_H 1
 #define HAVE_AUDIOCLIENT_H 1
+#define HAVE_TPCSHRD_H 1
 
 #define HAVE_LIBC 1
 #define STDC_HEADERS 1