|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
From 33fc27712a13b7502804a2a3016ce490a89e000d Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
From: Martin Pitt <martin.pitt@ubuntu.com>
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
Date: Mon, 10 Mar 2014 08:54:22 +0100
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
Subject: [PATCH] input_id: Recognize buttonless joystick types
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
Input devices like rudders or pedals are joystick-like; they don't have
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
buttons, but axes like RX, THROTTLE, or RUDDER. These don't interfere with
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
other device types with absolute axes (touch screens, touchpads, and
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
accelerometers), so it's fairly safe to mark them as ID_INPUT_JOYSTICK and thus
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
hand out dynamic ACLs to the user.
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
https://bugs.freedesktop.org/show_bug.cgi?id=70734
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
(cherry picked from commit 2658624399b22a9c4a345a22c69886dc9417f801)
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
---
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
src/udev/udev-builtin-input_id.c | 19 +++++++++++++++----
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
1 file changed, 15 insertions(+), 4 deletions(-)
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
diff --git a/src/udev/udev-builtin-input_id.c b/src/udev/udev-builtin-input_id.c
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
index 828b349..3b2e897 100644
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
--- a/src/udev/udev-builtin-input_id.c
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+++ b/src/udev/udev-builtin-input_id.c
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
@@ -116,16 +116,27 @@ static void test_pointers (struct udev_device *dev,
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
udev_builtin_add_property(dev, test, "ID_INPUT_TABLET", "1");
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
else if (test_bit (BTN_TOOL_FINGER, bitmask_key) && !test_bit (BTN_TOOL_PEN, bitmask_key))
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
is_touchpad = 1;
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
- else if (test_bit (BTN_TRIGGER, bitmask_key) ||
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
- test_bit (BTN_A, bitmask_key) ||
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
- test_bit (BTN_1, bitmask_key))
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
- udev_builtin_add_property(dev, test, "ID_INPUT_JOYSTICK", "1");
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
else if (test_bit (BTN_MOUSE, bitmask_key))
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
/* This path is taken by VMware's USB mouse, which has
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
* absolute axes, but no touch/pressure button. */
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
is_mouse = 1;
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
else if (test_bit (BTN_TOUCH, bitmask_key))
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
udev_builtin_add_property(dev, test, "ID_INPUT_TOUCHSCREEN", "1");
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+ /* joysticks don't necessarily have to have buttons; e. g.
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+ * rudders/pedals are joystick-like, but buttonless; they have
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+ * other fancy axes */
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+ else if (test_bit (BTN_TRIGGER, bitmask_key) ||
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+ test_bit (BTN_A, bitmask_key) ||
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+ test_bit (BTN_1, bitmask_key) ||
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+ test_bit (ABS_RX, bitmask_abs) ||
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+ test_bit (ABS_RY, bitmask_abs) ||
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+ test_bit (ABS_RZ, bitmask_abs) ||
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+ test_bit (ABS_THROTTLE, bitmask_abs) ||
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+ test_bit (ABS_RUDDER, bitmask_abs) ||
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+ test_bit (ABS_WHEEL, bitmask_abs) ||
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+ test_bit (ABS_GAS, bitmask_abs) ||
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+ test_bit (ABS_BRAKE, bitmask_abs))
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
+ udev_builtin_add_property(dev, test, "ID_INPUT_JOYSTICK", "1");
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
}
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
|
|
Zbigniew Jędrzejewski-Szmek |
dd42fc |
if (test_bit (EV_REL, bitmask_ev) &&
|