Input: fix evdev buttons

This commit is contained in:
Megamouse 2019-06-13 07:42:11 +02:00
parent 595ad15499
commit ac3982d2b0
2 changed files with 8 additions and 5 deletions

View File

@ -552,8 +552,11 @@ int evdev_joystick_handler::GetButtonInfo(const input_event& evt, const EvdevDev
m_is_button_or_trigger = true; m_is_button_or_trigger = true;
// get the button value and return its code // get the button value and return its code
if (code < BTN_MISC) if (button_list.find(code) == button_list.end())
{
LOG_ERROR(GENERAL, "Evdev button %s (%d) is unknown. Please add it to the button list.", libevdev_event_code_get_name(EV_KEY, code), code);
return -1; return -1;
}
value = val > 0 ? 255 : 0; value = val > 0 ? 255 : 0;
return code; return code;

View File

@ -81,6 +81,9 @@ class evdev_joystick_handler final : public PadHandlerBase
// Unique button names for the config files and our pad settings dialog // Unique button names for the config files and our pad settings dialog
const std::unordered_map<u32, std::string> button_list = const std::unordered_map<u32, std::string> button_list =
{ {
// Xbox One S Controller returns some buttons as key when connected through bluetooth
{ KEY_BACK , "Back Key" },
{ KEY_HOMEPAGE , "Homepage Key"},
//{ BTN_MISC , "Misc" }, same as BTN_0 //{ BTN_MISC , "Misc" }, same as BTN_0
{ BTN_0 , "0" }, { BTN_0 , "0" },
{ BTN_1 , "1" }, { BTN_1 , "1" },
@ -198,10 +201,7 @@ class evdev_joystick_handler final : public PadHandlerBase
{ BTN_TRIGGER_HAPPY37 , "Happy 37" }, { BTN_TRIGGER_HAPPY37 , "Happy 37" },
{ BTN_TRIGGER_HAPPY38 , "Happy 38" }, { BTN_TRIGGER_HAPPY38 , "Happy 38" },
{ BTN_TRIGGER_HAPPY39 , "Happy 39" }, { BTN_TRIGGER_HAPPY39 , "Happy 39" },
{ BTN_TRIGGER_HAPPY40 , "Happy 40" }, { BTN_TRIGGER_HAPPY40 , "Happy 40" }
// Xbox One S Controller returns some buttons as key when connected through bluetooth
{ KEY_BACK , "Back Key" },
{ KEY_HOMEPAGE , "Homepage Key"},
}; };
// Unique positive axis names for the config files and our pad settings dialog // Unique positive axis names for the config files and our pad settings dialog