diff --git a/rpcs3/Emu/Io/PadHandler.cpp b/rpcs3/Emu/Io/PadHandler.cpp index a1c6740574..808696fb3b 100644 --- a/rpcs3/Emu/Io/PadHandler.cpp +++ b/rpcs3/Emu/Io/PadHandler.cpp @@ -15,8 +15,8 @@ PadHandlerBase::PadHandlerBase(pad_handler type) : m_type(type) // Search an unordered map for a string value and return found keycode int PadHandlerBase::FindKeyCode(const std::unordered_map& map, const cfg::string& name, bool fallback) { - std::string def = name.def; - std::string nam = name.to_string(); + const std::string def = name.def; + const std::string nam = name.to_string(); int def_code = -1; for (auto it = map.begin(); it != map.end(); ++it) @@ -40,8 +40,8 @@ int PadHandlerBase::FindKeyCode(const std::unordered_map& map, long PadHandlerBase::FindKeyCode(const std::unordered_map& map, const cfg::string& name, bool fallback) { - std::string def = name.def; - std::string nam = name.to_string(); + const std::string def = name.def; + const std::string nam = name.to_string(); long def_code = -1; for (auto it = map.begin(); it != map.end(); ++it) @@ -422,7 +422,7 @@ bool PadHandlerBase::bindPadToDevice(std::shared_ptr pad, const std::string if (!pad_device) return false; - int index = static_cast(bindings.size()); + const int index = static_cast(bindings.size()); m_pad_configs[index].load(); pad_device->config = &m_pad_configs[index]; pad_config* profile = pad_device->config; @@ -546,12 +546,12 @@ void PadHandlerBase::get_mapping(const std::shared_ptr& device, const bool pressed; // m_keyCodeMin is the mapped key for left or down - u32 key_min = pad->m_sticks[i].m_keyCodeMin; + const u32 key_min = pad->m_sticks[i].m_keyCodeMin; u16 val_min = button_values[key_min]; TranslateButtonPress(device, key_min, pressed, val_min, true); // m_keyCodeMax is the mapped key for right or up - u32 key_max = pad->m_sticks[i].m_keyCodeMax; + const u32 key_max = pad->m_sticks[i].m_keyCodeMax; u16 val_max = button_values[key_max]; TranslateButtonPress(device, key_max, pressed, val_max, true); diff --git a/rpcs3/Input/keyboard_pad_handler.cpp b/rpcs3/Input/keyboard_pad_handler.cpp index 6308bf5582..0eca31e686 100644 --- a/rpcs3/Input/keyboard_pad_handler.cpp +++ b/rpcs3/Input/keyboard_pad_handler.cpp @@ -1,4 +1,5 @@ #include "keyboard_pad_handler.h" +#include "pad_thread.h" #include "Emu/Io/pad_config.h" #include "Input/product_info.h" @@ -11,7 +12,7 @@ constexpr auto qstr = QString::fromStdString; bool keyboard_pad_handler::Init() { - std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now(); + const std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now(); m_last_mouse_move_left = now; m_last_mouse_move_right = now; m_last_mouse_move_up = now; @@ -67,6 +68,11 @@ void keyboard_pad_handler::init_config(pad_config* cfg, const std::string& name) void keyboard_pad_handler::Key(const u32 code, bool pressed, u16 value) { + if (!pad::g_enabled) + { + return; + } + value = Clamp0To255(value); for (auto pad : bindings) @@ -99,10 +105,10 @@ void keyboard_pad_handler::Key(const u32 code, bool pressed, u16 value) for (int i = 0; i < static_cast(pad->m_sticks.size()); i++) { - bool is_max = pad->m_sticks[i].m_keyCodeMax == code; - bool is_min = pad->m_sticks[i].m_keyCodeMin == code; + const bool is_max = pad->m_sticks[i].m_keyCodeMax == code; + const bool is_min = pad->m_sticks[i].m_keyCodeMin == code; - u16 normalized_value = std::max(1, static_cast(std::floor(value / 2.0))); + const u16 normalized_value = std::max(1, static_cast(std::floor(value / 2.0))); if (is_max) m_stick_max[i] = pressed ? 128 + normalized_value : 128; @@ -220,7 +226,7 @@ void keyboard_pad_handler::processKeyEvent(QKeyEvent* event, bool pressed) if (list.isEmpty()) return; - bool is_num_key = list.contains("Num"); + const bool is_num_key = list.contains("Num"); if (is_num_key) list.removeAll("Num"); @@ -240,8 +246,7 @@ void keyboard_pad_handler::processKeyEvent(QKeyEvent* event, bool pressed) }; // We need to ignore keys when using rpcs3 keyboard shortcuts - int key = event->key(); - switch (key) + switch (event->key()) { case Qt::Key_Escape: break; @@ -405,7 +410,7 @@ void keyboard_pad_handler::mouseMoveEvent(QMouseEvent* event) void keyboard_pad_handler::mouseWheelEvent(QWheelEvent* event) { - QPoint direction = event->angleDelta(); + const QPoint direction = event->angleDelta(); if (direction.isNull()) { @@ -415,7 +420,8 @@ void keyboard_pad_handler::mouseWheelEvent(QWheelEvent* event) if (const int x = direction.x()) { - bool to_left = event->inverted() ? x < 0 : x > 0; + const bool to_left = event->inverted() ? x < 0 : x > 0; + if (to_left) { Key(mouse::wheel_left, true); @@ -429,7 +435,8 @@ void keyboard_pad_handler::mouseWheelEvent(QWheelEvent* event) } if (const int y = direction.y()) { - bool to_up = event->inverted() ? y < 0 : y > 0; + const bool to_up = event->inverted() ? y < 0 : y > 0; + if (to_up) { Key(mouse::wheel_up, true); @@ -457,8 +464,7 @@ std::string keyboard_pad_handler::GetMouseName(const QMouseEvent* event) std::string keyboard_pad_handler::GetMouseName(u32 button) { - auto it = mouse_list.find(button); - if (it != mouse_list.end()) + if (auto it = mouse_list.find(button); it != mouse_list.end()) return it->second; return "FAIL"; } @@ -582,7 +588,7 @@ bool keyboard_pad_handler::bindPadToDevice(std::shared_ptr pad, const std:: if (device != "Keyboard") return false; - int index = static_cast(bindings.size()); + const int index = static_cast(bindings.size()); m_pad_configs[index].load(); pad_config* p_profile = &m_pad_configs[index]; if (p_profile == nullptr) @@ -793,6 +799,7 @@ void keyboard_pad_handler::ThreadProc() // Next activation is set to distant future to avoid activating this on every proc const auto update_threshold = now - std::chrono::milliseconds(100); const auto distant_future = now + std::chrono::hours(24); + if (update_threshold >= m_last_wheel_move_up) { Key(mouse::wheel_up, false);