diff --git a/stepmania/src/arch/InputHandler/InputHandler_Carbon.cpp b/stepmania/src/arch/InputHandler/InputHandler_Carbon.cpp index e34c424834..45ba61c04f 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Carbon.cpp +++ b/stepmania/src/arch/InputHandler/InputHandler_Carbon.cpp @@ -194,7 +194,7 @@ InputHandler_Carbon::InputHandler_Carbon() : m_Sem( "Input thread started" ), m_ } // Find the joysticks. - dict = GetMatchingDictionary( kHIDPage_GenericDesktop, kHIDUsage_GD_Joystick ); + dict = GetMatchingDictionary( kHIDPage_GenericDesktop, kHIDUsage_GD_Joystick|kHIDUsage_GD_GamePad ); ret = IOServiceAddMatchingNotification( m_NotifyPort, kIOFirstMatchNotification, dict, InputHandler_Carbon::DeviceAdded, this, &iter ); diff --git a/stepmania/src/archutils/Darwin/JoystickDevice.cpp b/stepmania/src/archutils/Darwin/JoystickDevice.cpp index 131de568f2..d9fd30e7b5 100644 --- a/stepmania/src/archutils/Darwin/JoystickDevice.cpp +++ b/stepmania/src/archutils/Darwin/JoystickDevice.cpp @@ -19,8 +19,16 @@ Joystick::Joystick() : id( DEVICE_NONE ), bool JoystickDevice::AddLogicalDevice( int usagePage, int usage ) { - if( usagePage != kHIDPage_GenericDesktop || usage != kHIDUsage_GD_Joystick ) + if( usagePage != kHIDPage_GenericDesktop ) return false; + switch( usage ) + { + case kHIDUsage_GD_Joystick: + case kHIDUsage_GD_GamePad: + break; + default: + return false; + } m_vSticks.push_back( Joystick() ); return true; }