evdev: optimize get_next_button_press pad id check

This commit is contained in:
Megamouse 2023-02-09 00:01:26 +01:00
parent d3b7a5146c
commit 4f75dc06b9

View File

@ -366,14 +366,17 @@ PadHandlerBase::connection evdev_joystick_handler::get_next_button_press(const s
std::string name;
} pressed_button{};
const bool is_xbox_360_controller = padId.find("Xbox 360") != umax;
const bool is_sony_controller = !is_xbox_360_controller && padId.find("Sony") != umax;
for (const auto& [code, name] : button_list)
{
// Handle annoying useless buttons
if (code == NO_BUTTON)
continue;
if (padId.find("Xbox 360") != umax && code >= BTN_TRIGGER_HAPPY)
if (is_xbox_360_controller && code >= BTN_TRIGGER_HAPPY)
continue;
if (padId.find("Sony") != umax && (code == BTN_TL2 || code == BTN_TR2))
if (is_sony_controller && (code == BTN_TL2 || code == BTN_TR2))
continue;
if (!get_blacklist && std::find(m_blacklist.begin(), m_blacklist.end(), name) != m_blacklist.end())