diff --git a/UnleashedRecomp/hid/driver/sdl_hid.cpp b/UnleashedRecomp/hid/driver/sdl_hid.cpp index f76ead5..fa09ffe 100644 --- a/UnleashedRecomp/hid/driver/sdl_hid.cpp +++ b/UnleashedRecomp/hid/driver/sdl_hid.cpp @@ -38,20 +38,23 @@ public: SDL_GameControllerType GetControllerType() const { - return SDL_GameControllerTypeForIndex(index); + return SDL_GameControllerGetType(controller); } hid::EInputDevice GetInputDevice() const { switch (GetControllerType()) { - case SDL_CONTROLLER_TYPE_PS3: - case SDL_CONTROLLER_TYPE_PS4: - case SDL_CONTROLLER_TYPE_PS5: - return hid::EInputDevice::PlayStation; + case SDL_CONTROLLER_TYPE_PS3: + case SDL_CONTROLLER_TYPE_PS4: + case SDL_CONTROLLER_TYPE_PS5: + return hid::EInputDevice::PlayStation; + case SDL_CONTROLLER_TYPE_XBOX360: + case SDL_CONTROLLER_TYPE_XBOXONE: + return hid::EInputDevice::Xbox; + default: + return hid::EInputDevice::Unknown; } - - return hid::EInputDevice::Xbox; } void Close() @@ -134,6 +137,7 @@ public: } }; + std::array g_controllers; Controller* g_activeController; @@ -310,6 +314,8 @@ void hid::Init() SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE, "1"); SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_WII, "1"); SDL_SetHint(SDL_HINT_XINPUT_ENABLED, "1"); + SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_STEAM, "1"); + SDL_SetHint(SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS, "0"); SDL_InitSubSystem(SDL_INIT_EVENTS); @@ -318,6 +324,7 @@ void hid::Init() SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER); } + uint32_t hid::GetState(uint32_t dwUserIndex, XAMINPUT_STATE* pState) { static uint32_t packet; diff --git a/UnleashedRecomp/hid/hid.h b/UnleashedRecomp/hid/hid.h index 730694a..28736f0 100644 --- a/UnleashedRecomp/hid/hid.h +++ b/UnleashedRecomp/hid/hid.h @@ -7,7 +7,8 @@ namespace hid Keyboard, Mouse, Xbox, - PlayStation + PlayStation, + Unknown }; enum class EInputDeviceExplicit