From 20f906bf9be12375fe625f450ba3bc1d33e1c634 Mon Sep 17 00:00:00 2001 From: Megamouse Date: Sat, 6 Jul 2024 17:46:37 +0200 Subject: [PATCH] input: add battery LED flag and some getters --- rpcs3/Emu/Io/PadHandler.cpp | 55 -------------------------- rpcs3/Emu/Io/PadHandler.h | 25 ++++++------ rpcs3/Input/ds3_pad_handler.cpp | 1 + rpcs3/Input/ds4_pad_handler.cpp | 1 + rpcs3/Input/dualsense_pad_handler.cpp | 1 + rpcs3/Input/pad_thread.h | 2 + rpcs3/Input/sdl_pad_handler.cpp | 1 + rpcs3/Input/skateboard_pad_handler.cpp | 1 + rpcs3/Input/xinput_pad_handler.cpp | 1 + 9 files changed, 22 insertions(+), 66 deletions(-) diff --git a/rpcs3/Emu/Io/PadHandler.cpp b/rpcs3/Emu/Io/PadHandler.cpp index e8fd2d41b4..68a88f22b2 100644 --- a/rpcs3/Emu/Io/PadHandler.cpp +++ b/rpcs3/Emu/Io/PadHandler.cpp @@ -192,61 +192,6 @@ std::tuple PadHandlerBase::ConvertToSquirclePoint(u16 inX, u16 inY, u3 return std::tuple(newX, newY); } -std::string PadHandlerBase::name_string() const -{ - return m_name_string; -} - -usz PadHandlerBase::max_devices() const -{ - return m_max_devices; -} - -bool PadHandlerBase::has_config() const -{ - return b_has_config; -} - -bool PadHandlerBase::has_rumble() const -{ - return b_has_rumble; -} - -bool PadHandlerBase::has_motion() const -{ - return b_has_motion; -} - -bool PadHandlerBase::has_deadzones() const -{ - return b_has_deadzones; -} - -bool PadHandlerBase::has_led() const -{ - return b_has_led; -} - -bool PadHandlerBase::has_rgb() const -{ - return b_has_rgb; -} - -bool PadHandlerBase::has_player_led() const -{ - return b_has_player_led; -} - -bool PadHandlerBase::has_battery() const -{ - return b_has_battery; -} - -bool PadHandlerBase::has_pressure_intensity_button() const -{ - return b_has_pressure_intensity_button; -} - void PadHandlerBase::init_configs() { for (u32 i = 0; i < MAX_GAMEPADS; i++) diff --git a/rpcs3/Emu/Io/PadHandler.h b/rpcs3/Emu/Io/PadHandler.h index 9d65c39eaa..9ff4c36127 100644 --- a/rpcs3/Emu/Io/PadHandler.h +++ b/rpcs3/Emu/Io/PadHandler.h @@ -123,6 +123,7 @@ protected: bool b_has_rgb = false; bool b_has_player_led = false; bool b_has_battery = false; + bool b_has_battery_led = false; bool b_has_deadzones = false; bool b_has_rumble = false; bool b_has_motion = false; @@ -249,17 +250,19 @@ public: pad_handler m_type; bool m_is_init = false; - std::string name_string() const; - usz max_devices() const; - bool has_config() const; - bool has_rumble() const; - bool has_motion() const; - bool has_deadzones() const; - bool has_led() const; - bool has_rgb() const; - bool has_player_led() const; - bool has_battery() const; - bool has_pressure_intensity_button() const; + std::vector& bindings() { return m_bindings; } + std::string name_string() const { return m_name_string; } + usz max_devices() const { return m_max_devices; } + bool has_config() const { return b_has_config; } + bool has_rumble() const { return b_has_rumble; } + bool has_motion() const { return b_has_motion; } + bool has_deadzones() const { return b_has_deadzones; } + bool has_led() const { return b_has_led; } + bool has_rgb() const { return b_has_rgb; } + bool has_player_led() const { return b_has_player_led; } + bool has_battery() const { return b_has_battery; } + bool has_battery_led() const { return b_has_battery_led; } + bool has_pressure_intensity_button() const { return b_has_pressure_intensity_button; } u16 NormalizeStickInput(u16 raw_value, s32 threshold, s32 multiplier, bool ignore_threshold = false) const; void convert_stick_values(u16& x_out, u16& y_out, s32 x_in, s32 y_in, u32 deadzone, u32 anti_deadzone, u32 padsquircling) const; diff --git a/rpcs3/Input/ds3_pad_handler.cpp b/rpcs3/Input/ds3_pad_handler.cpp index 6fe7691b61..5279b92d53 100644 --- a/rpcs3/Input/ds3_pad_handler.cpp +++ b/rpcs3/Input/ds3_pad_handler.cpp @@ -53,6 +53,7 @@ ds3_pad_handler::ds3_pad_handler() b_has_motion = true; b_has_deadzones = true; b_has_battery = true; + b_has_battery_led = true; b_has_led = true; b_has_rgb = false; b_has_player_led = true; diff --git a/rpcs3/Input/ds4_pad_handler.cpp b/rpcs3/Input/ds4_pad_handler.cpp index 1813e0e3f4..427773afb7 100644 --- a/rpcs3/Input/ds4_pad_handler.cpp +++ b/rpcs3/Input/ds4_pad_handler.cpp @@ -113,6 +113,7 @@ ds4_pad_handler::ds4_pad_handler() b_has_led = true; b_has_rgb = true; b_has_battery = true; + b_has_battery_led = true; m_name_string = "DS4 Pad #"; m_max_devices = CELL_PAD_MAX_PORT_NUM; diff --git a/rpcs3/Input/dualsense_pad_handler.cpp b/rpcs3/Input/dualsense_pad_handler.cpp index 0fe5126e56..57c646f446 100644 --- a/rpcs3/Input/dualsense_pad_handler.cpp +++ b/rpcs3/Input/dualsense_pad_handler.cpp @@ -85,6 +85,7 @@ dualsense_pad_handler::dualsense_pad_handler() b_has_rgb = true; b_has_player_led = true; b_has_battery = true; + b_has_battery_led = true; m_name_string = "DualSense Pad #"; m_max_devices = CELL_PAD_MAX_PORT_NUM; diff --git a/rpcs3/Input/pad_thread.h b/rpcs3/Input/pad_thread.h index d9f1db4036..b1206f5491 100644 --- a/rpcs3/Input/pad_thread.h +++ b/rpcs3/Input/pad_thread.h @@ -34,6 +34,8 @@ public: void open_home_menu(); + std::map>& get_handlers() { return m_handlers; } + static std::shared_ptr GetHandler(pad_handler type); static void InitPadConfig(cfg_pad& cfg, pad_handler type, std::shared_ptr& handler); diff --git a/rpcs3/Input/sdl_pad_handler.cpp b/rpcs3/Input/sdl_pad_handler.cpp index 7477f2200e..725fe3842b 100644 --- a/rpcs3/Input/sdl_pad_handler.cpp +++ b/rpcs3/Input/sdl_pad_handler.cpp @@ -170,6 +170,7 @@ sdl_pad_handler::sdl_pad_handler() : PadHandlerBase(pad_handler::sdl) b_has_led = true; b_has_rgb = true; b_has_battery = true; + b_has_battery_led = true; m_trigger_threshold = trigger_max / 2; m_thumb_threshold = thumb_max / 2; diff --git a/rpcs3/Input/skateboard_pad_handler.cpp b/rpcs3/Input/skateboard_pad_handler.cpp index 64414c74eb..4f32ec848d 100644 --- a/rpcs3/Input/skateboard_pad_handler.cpp +++ b/rpcs3/Input/skateboard_pad_handler.cpp @@ -81,6 +81,7 @@ skateboard_pad_handler::skateboard_pad_handler() b_has_rgb = false; b_has_player_led = false; b_has_battery = false; + b_has_battery_led = false; b_has_pressure_intensity_button = false; m_name_string = "Skateboard #"; diff --git a/rpcs3/Input/xinput_pad_handler.cpp b/rpcs3/Input/xinput_pad_handler.cpp index 69ceb4efe5..6184877140 100644 --- a/rpcs3/Input/xinput_pad_handler.cpp +++ b/rpcs3/Input/xinput_pad_handler.cpp @@ -59,6 +59,7 @@ xinput_pad_handler::xinput_pad_handler() : PadHandlerBase(pad_handler::xinput) b_has_rumble = true; b_has_deadzones = true; b_has_battery = true; + b_has_battery_led = false; m_name_string = "XInput Pad #"; m_max_devices = XUSER_MAX_COUNT;