summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2010-10-22 13:57:27 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2010-10-22 16:18:56 +1000
commit4381b70f5aa293400735e9b4e5a792408afa25a2 (patch)
tree0ba8a17d44d29cddfd43efe59638910cafed2201
parent6f6f460c2485d16d126a1ab5d939083c322dc3dd (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.c22
-rw-r--r--include/input.h4
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;