From cf52f90db9a3d3e9f61e125e4dacc863ceeadb43 Mon Sep 17 00:00:00 2001 From: Katharine Chui Date: Thu, 1 May 2025 16:27:34 +0200 Subject: [PATCH] refactor map and vector iteration --- rpcs3/Emu/Io/LogitechG27.cpp | 27 +++++------ .../emulated_logitech_g27_settings_dialog.cpp | 46 ++++++++++--------- 2 files changed, 38 insertions(+), 35 deletions(-) diff --git a/rpcs3/Emu/Io/LogitechG27.cpp b/rpcs3/Emu/Io/LogitechG27.cpp index bd97de3b44..7fb986915c 100644 --- a/rpcs3/Emu/Io/LogitechG27.cpp +++ b/rpcs3/Emu/Io/LogitechG27.cpp @@ -105,11 +105,12 @@ bool usb_device_logitech_g27::open_device() static void clear_sdl_joysticks(std::map>& joysticks) { - for (auto joystick_type = joysticks.begin(); joystick_type != joysticks.end(); joystick_type++) + for (auto joystick_type : joysticks) { - for (auto joystick = joystick_type->second.begin(); joystick != joystick_type->second.end(); joystick++) + for (auto joystick : joystick_type.second) { - SDL_CloseJoystick(*joystick); + if (joystick) + SDL_CloseJoystick(joystick); } } joysticks.clear(); @@ -164,23 +165,23 @@ static bool sdl_joysticks_equal(std::map>& { return false; } - for (auto left_joysticks_of_type = left.begin(); left_joysticks_of_type != left.end(); left_joysticks_of_type++) + for (auto left_joysticks_of_type : left) { - auto right_joysticks_of_type = right.find(left_joysticks_of_type->first); + auto right_joysticks_of_type = right.find(left_joysticks_of_type.first); if (right_joysticks_of_type == right.end()) { return false; } - if (left_joysticks_of_type->second.size() != right_joysticks_of_type->second.size()) + if (left_joysticks_of_type.second.size() != right_joysticks_of_type->second.size()) { return false; } - for (auto left_joystick = left_joysticks_of_type->second.begin(); left_joystick != left_joysticks_of_type->second.end(); left_joystick++) + for (auto left_joystick : left_joysticks_of_type.second) { bool found = false; - for (auto right_joystick = right_joysticks_of_type->second.begin(); right_joystick != right_joysticks_of_type->second.end(); right_joystick++) + for (auto right_joystick : right_joysticks_of_type->second) { - if (*left_joystick == *right_joystick) + if (left_joystick == right_joystick) { found = true; break; @@ -632,9 +633,9 @@ static int16_t fetch_sdl_axis_avg(std::map> // TODO account for deadzone and only pick up active devices int32_t sdl_joysticks_total_value = 0; - for (auto joystick = joysticks_of_type->second.begin(); joystick != joysticks_of_type->second.end(); joystick++) + for (auto joystick : joysticks_of_type->second) { - sdl_joysticks_total_value += fetch_sdl_as_axis(*joystick, mapping); + sdl_joysticks_total_value += fetch_sdl_as_axis(joystick, mapping); } return sdl_joysticks_total_value / joysticks_of_type->second.size(); @@ -654,9 +655,9 @@ static bool sdl_to_logitech_g27_button(std::mapsecond.begin(); joystick != joysticks_of_type->second.end(); joystick++) + for (auto joystick : joysticks_of_type->second) { - pressed = pressed || fetch_sdl_as_button(*joystick, mapping); + pressed = pressed || fetch_sdl_as_button(joystick, mapping); } return pressed; } diff --git a/rpcs3/rpcs3qt/emulated_logitech_g27_settings_dialog.cpp b/rpcs3/rpcs3qt/emulated_logitech_g27_settings_dialog.cpp index eac8b708b6..b95a0c5aec 100644 --- a/rpcs3/rpcs3qt/emulated_logitech_g27_settings_dialog.cpp +++ b/rpcs3/rpcs3qt/emulated_logitech_g27_settings_dialog.cpp @@ -178,9 +178,9 @@ public: sprintf(text_buf, "Input %s for %s, timeout in %d %s", this->m_is_axis ? "axis" : "button/hat", this->m_name.c_str(), timeout_sec, timeout_sec >= 2 ? "seconds" : "second"); this->m_setting_dialog->set_state_text(text_buf); - for (auto new_joystick_state = new_joystick_states.begin(); new_joystick_state != new_joystick_states.end(); new_joystick_state++) + for (auto new_joystick_state : new_joystick_states) { - auto last_joystick_state = this->m_last_joystick_states.find(new_joystick_state->first); + auto last_joystick_state = this->m_last_joystick_states.find(new_joystick_state.first); if (last_joystick_state == this->m_last_joystick_states.end()) { continue; @@ -189,20 +189,20 @@ public: if (this->m_is_axis) { const static int16_t axis_change_threshold = 0x7FFF / 5; - if (last_joystick_state->second.axes.size() != new_joystick_state->second.axes.size()) + if (last_joystick_state->second.axes.size() != new_joystick_state.second.axes.size()) { - logitech_g27_cfg_log.error("during input state change diff, number of axes on %04x:%04x changed", new_joystick_state->first >> 16, new_joystick_state->first & 0xFFFF); + logitech_g27_cfg_log.error("during input state change diff, number of axes on %04x:%04x changed", new_joystick_state.first >> 16, new_joystick_state.first & 0xFFFF); continue; } - for (std::vector::size_type i = 0; i < new_joystick_state->second.axes.size(); i++) + for (std::vector::size_type i = 0; i < new_joystick_state.second.axes.size(); i++) { - int32_t diff = std::abs(last_joystick_state->second.axes[i] - new_joystick_state->second.axes[i]); + int32_t diff = std::abs(last_joystick_state->second.axes[i] - new_joystick_state.second.axes[i]); if (diff > axis_change_threshold) { this->m_mapping_in_progress = false; this->m_setting_dialog->set_state_text(DEFAULT_STATUS); this->m_setting_dialog->enable(); - this->m_mapping.device_type_id = new_joystick_state->first; + this->m_mapping.device_type_id = new_joystick_state.first; this->m_mapping.type = MAPPING_AXIS; this->m_mapping.id = i; this->m_mapping.hat = HAT_NONE; @@ -212,41 +212,41 @@ public: } else { - if (last_joystick_state->second.buttons.size() != new_joystick_state->second.buttons.size()) + if (last_joystick_state->second.buttons.size() != new_joystick_state.second.buttons.size()) { - logitech_g27_cfg_log.error("during input state change diff, number of buttons on %04x:%04x changed", new_joystick_state->first >> 16, new_joystick_state->first & 0xFFFF); + logitech_g27_cfg_log.error("during input state change diff, number of buttons on %04x:%04x changed", new_joystick_state.first >> 16, new_joystick_state.first & 0xFFFF); continue; } - if (last_joystick_state->second.hats.size() != new_joystick_state->second.hats.size()) + if (last_joystick_state->second.hats.size() != new_joystick_state.second.hats.size()) { - logitech_g27_cfg_log.error("during input state change diff, number of hats on %04x:%04x changed", new_joystick_state->first >> 16, new_joystick_state->first & 0xFFFF); + logitech_g27_cfg_log.error("during input state change diff, number of hats on %04x:%04x changed", new_joystick_state.first >> 16, new_joystick_state.first & 0xFFFF); continue; } - for (std::vector::size_type i = 0; i < new_joystick_state->second.buttons.size(); i++) + for (std::vector::size_type i = 0; i < new_joystick_state.second.buttons.size(); i++) { - if (last_joystick_state->second.buttons[i] != new_joystick_state->second.buttons[i]) + if (last_joystick_state->second.buttons[i] != new_joystick_state.second.buttons[i]) { this->m_mapping_in_progress = false; this->m_setting_dialog->set_state_text(DEFAULT_STATUS); this->m_setting_dialog->enable(); - this->m_mapping.device_type_id = new_joystick_state->first; + this->m_mapping.device_type_id = new_joystick_state.first; this->m_mapping.type = MAPPING_BUTTON; this->m_mapping.id = i; this->m_mapping.hat = HAT_NONE; break; } } - for (std::vector::size_type i = 0; i < new_joystick_state->second.hats.size(); i++) + for (std::vector::size_type i = 0; i < new_joystick_state.second.hats.size(); i++) { - if (last_joystick_state->second.hats[i] != new_joystick_state->second.hats[i] && new_joystick_state->second.hats[i] != HAT_NONE) + if (last_joystick_state->second.hats[i] != new_joystick_state.second.hats[i] && new_joystick_state.second.hats[i] != HAT_NONE) { this->m_mapping_in_progress = false; this->m_setting_dialog->set_state_text(DEFAULT_STATUS); this->m_setting_dialog->enable(); - this->m_mapping.device_type_id = new_joystick_state->first; + this->m_mapping.device_type_id = new_joystick_state.first; this->m_mapping.type = MAPPING_HAT; this->m_mapping.id = i; - this->m_mapping.hat = new_joystick_state->second.hats[i]; + this->m_mapping.hat = new_joystick_state.second.hats[i]; break; } } @@ -696,9 +696,10 @@ emulated_logitech_g27_settings_dialog::emulated_logitech_g27_settings_dialog(QWi emulated_logitech_g27_settings_dialog::~emulated_logitech_g27_settings_dialog() { - for (auto joystick_handle = m_joystick_handles.begin(); joystick_handle != m_joystick_handles.end(); joystick_handle++) + for (auto joystick_handle : m_joystick_handles) { - SDL_CloseJoystick(*joystick_handle); + if (joystick_handle) + SDL_CloseJoystick(joystick_handle); } } @@ -808,9 +809,10 @@ const std::map& emulated_logitech_g27_settings_dialog: } } - for (auto joystick_handle = m_joystick_handles.begin(); joystick_handle != m_joystick_handles.end(); joystick_handle++) + for (auto joystick_handle : m_joystick_handles) { - SDL_CloseJoystick(*joystick_handle); + if (joystick_handle) + SDL_CloseJoystick(joystick_handle); } m_joystick_handles = new_joystick_handles;