Browse Source

haptic: Deal with deprecated macOS symbol.

Ryan C. Gordon 2 years ago
parent
commit
9d67686a5b
2 changed files with 9 additions and 1 deletions
  1. 1 1
      src/haptic/darwin/SDL_syshaptic.c
  2. 8 0
      src/haptic/darwin/SDL_syshaptic_c.h

+ 1 - 1
src/haptic/darwin/SDL_syshaptic.c

@@ -167,7 +167,7 @@ SDL_SYS_HapticInit(void)
     }
 
     /* Now search I/O Registry for matching devices. */
-    result = IOServiceGetMatchingServices(kIOMasterPortDefault, match, &iter);
+    result = IOServiceGetMatchingServices(kIOMainPortDefault, match, &iter);
     if (result != kIOReturnSuccess) {
         return SDL_SetError("Haptic: Couldn't create a HID object iterator.");
     }

+ 8 - 0
src/haptic/darwin/SDL_syshaptic_c.h

@@ -19,6 +19,14 @@
   3. This notice may not be removed or altered from any source distribution.
 */
 
+/* Things named "Master" were renamed to "Main" in macOS 12.0's SDK. */
+#if MACOSX_COREAUDIO
+#include <AvailabilityMacros.h>
+#ifndef MAC_OS_VERSION_12_0
+#define kIOMainPortDefault kIOMasterPortDefault
+#endif
+#endif
+
 extern int MacHaptic_MaybeAddDevice( io_object_t device );
 extern int MacHaptic_MaybeRemoveDevice( io_object_t device );