From 068fb9d5c67ff26c9fa2240d4b27ca04af57ab3c Mon Sep 17 00:00:00 2001 From: Megamouse Date: Tue, 13 May 2025 19:39:15 +0200 Subject: [PATCH] SDL/input: Log GUID --- rpcs3/Input/sdl_pad_handler.cpp | 14 ++++++++++++-- rpcs3/Input/sdl_pad_handler.h | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/rpcs3/Input/sdl_pad_handler.cpp b/rpcs3/Input/sdl_pad_handler.cpp index a9f1f0dc02..21a59cba2c 100644 --- a/rpcs3/Input/sdl_pad_handler.cpp +++ b/rpcs3/Input/sdl_pad_handler.cpp @@ -11,6 +11,15 @@ LOG_CHANNEL(sdl_log, "SDL"); +template <> +void fmt_class_string::format(std::string& out, u64 arg) +{ + const SDL_GUID& guid = get_object(arg); + char str[sizeof(SDL_GUID) * 2 + 1] {}; + SDL_GUIDToString(guid, str, sizeof(str)); + fmt::append(out, "%s", str); +} + sdl_pad_handler::sdl_pad_handler() : PadHandlerBase(pad_handler::sdl) { button_list = @@ -258,6 +267,7 @@ SDLDevice::sdl_info sdl_pad_handler::get_sdl_info(SDL_JoystickID id) info.type = SDL_GetGamepadType(info.gamepad); info.real_type = SDL_GetRealGamepadType(info.gamepad); + info.guid = SDL_GetGamepadGUIDForID(id); info.vid = SDL_GetGamepadVendor(info.gamepad); info.pid = SDL_GetGamepadProduct(info.gamepad); info.product_version = SDL_GetGamepadProductVersion(info.gamepad); @@ -291,8 +301,8 @@ SDLDevice::sdl_info sdl_pad_handler::get_sdl_info(SDL_JoystickID id) } } - sdl_log.notice("Found game pad %d: type=%d, real_type=%d, name='%s', path='%s', serial='%s', vid=0x%x, pid=0x%x, product_version=0x%x, firmware_version=0x%x, has_led=%d, has_player_led=%d, has_mono_led=%d, has_rumble=%d, has_rumble_triggers=%d, has_accel=%d, has_gyro=%d", - id, static_cast(info.type), static_cast(info.real_type), info.name, info.path, info.serial, info.vid, info.pid, info.product_version, info.firmware_version, info.has_led, info.has_player_led, info.has_mono_led, info.has_rumble, info.has_rumble_triggers, info.has_accel, info.has_gyro); + sdl_log.error("Found game pad %d: type=%d, real_type=%d, name='%s', guid='%s', path='%s', serial='%s', vid=0x%x, pid=0x%x, product_version=0x%x, firmware_version=0x%x, has_led=%d, has_player_led=%d, has_mono_led=%d, has_rumble=%d, has_rumble_triggers=%d, has_accel=%d, has_gyro=%d", + id, static_cast(info.type), static_cast(info.real_type), info.name, info.guid, info.path, info.serial, info.vid, info.pid, info.product_version, info.firmware_version, info.has_led, info.has_player_led, info.has_mono_led, info.has_rumble, info.has_rumble_triggers, info.has_accel, info.has_gyro); if (info.has_accel) { diff --git a/rpcs3/Input/sdl_pad_handler.h b/rpcs3/Input/sdl_pad_handler.h index 58ddcfda63..0fb5633a81 100644 --- a/rpcs3/Input/sdl_pad_handler.h +++ b/rpcs3/Input/sdl_pad_handler.h @@ -36,6 +36,7 @@ public: SDL_Gamepad* gamepad = nullptr; SDL_GamepadType type = SDL_GamepadType::SDL_GAMEPAD_TYPE_UNKNOWN; SDL_GamepadType real_type = SDL_GamepadType::SDL_GAMEPAD_TYPE_UNKNOWN; + SDL_GUID guid {}; int power_level = 0; int last_power_level = 0;