diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2010-10-22 13:57:27 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2010-10-22 16:18:56 +1000 |
commit | 4381b70f5aa293400735e9b4e5a792408afa25a2 (patch) | |
tree | 0ba8a17d44d29cddfd43efe59638910cafed2201 | |
parent | 6f6f460c2485d16d126a1ab5d939083c322dc3dd (diff) |
input: add valuator_get_mode() helper.
Returns the mode of the specified valuator.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
-rw-r--r-- | dix/devices.c | 22 | ||||
-rw-r--r-- | include/input.h | 4 |
2 files changed, 26 insertions, 0 deletions
diff --git a/dix/devices.c b/dix/devices.c index 3548be4e4..45edd375c 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -2570,3 +2570,25 @@ AllocDevicePair (ClientPtr client, char* name, return Success; } +/** + * Return Relative or Absolute for the device. + */ +int valuator_get_mode(DeviceIntPtr dev, int axis) +{ + return (dev->valuator->axes[axis].mode & DeviceMode); +} + +/** + * Set the given mode for the axis. If axis is VALUATOR_MODE_ALL_AXES, then + * set the mode for all axes. + */ +void valuator_set_mode(DeviceIntPtr dev, int axis, int mode) +{ + if (axis != VALUATOR_MODE_ALL_AXES) + dev->valuator->axes[axis].mode = mode; + else { + int i; + for (i = 0; i < dev->valuator->numAxes; i++) + dev->valuator->axes[axis].mode = mode; + } +} diff --git a/include/input.h b/include/input.h index 76df4ff79..8feac28f5 100644 --- a/include/input.h +++ b/include/input.h @@ -546,6 +546,10 @@ extern _X_EXPORT void DDXRingBell( int pitch, int duration); +#define VALUATOR_MODE_ALL_AXES -1 +extern _X_HIDDEN int valuator_get_mode(DeviceIntPtr dev, int axis); +extern _X_HIDDEN void valuator_set_mode(DeviceIntPtr dev, int axis, int mode); + /* Set to TRUE by default - os/utils.c sets it to FALSE on user request, xfixes/cursor.c uses it to determine if the cursor is enabled */ extern Bool EnableCursor; |