Detect keyboard devices on Linux

This commit is contained in:
rdb 2015-12-19 20:09:07 +01:00
parent 687e080bdd
commit bfea37f64d
2 changed files with 15 additions and 2 deletions

View File

@ -274,6 +274,10 @@ init_device() {
}
}
if (test_bit(KEY_A, keys) && test_bit(KEY_Z, keys)) {
_flags |= IDF_has_keyboard;
}
// Check device type.
if (test_bit(BTN_GAMEPAD, keys)) {
_device_class = DC_gamepad;
@ -286,6 +290,9 @@ init_device() {
} else if (test_bit(BTN_WHEEL, keys)) {
_device_class = DC_steering_wheel;
} else if (_flags & IDF_has_keyboard) {
_device_class = DC_keyboard;
}
}

View File

@ -283,11 +283,17 @@ output(ostream &out) const {
}
if (_buttons.size() > 0) {
out << ", " << _buttons.size() << " buttons";
out << ", " << _buttons.size() << " button";
if (_buttons.size() != 1) {
out.put('s');
}
}
if (_controls.size() > 0) {
out << ", " << _controls.size() << " controls";
out << ", " << _controls.size() << " control";
if (_controls.size() != 1) {
out.put('s');
}
}
if (_flags & IDF_has_pointer) {