aboutsummaryrefslogtreecommitdiff
path: root/src/emuWheel.c
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@redhat.com>2008-08-07 17:34:54 +0930
committerPeter Hutterer <peter.hutterer@redhat.com>2008-08-08 16:04:23 +0930
commit134829d911c698704595014ba402516ae9a2f36c (patch)
treee1251750fa92bfd21a5e6c88acccc401bb75d00d /src/emuWheel.c
parentAdd EVDEV_MAXBUTTONS instead of checking against 32. (diff)
downloadxf86-input-evdev-134829d911c698704595014ba402516ae9a2f36c.tar.gz
xf86-input-evdev-134829d911c698704595014ba402516ae9a2f36c.tar.bz2
xf86-input-evdev-134829d911c698704595014ba402516ae9a2f36c.zip
Simplify the property handler registration.
Instead of having separate handlers for each property, just handle all of them in one handler for emuMB, and one handler for emuWheel.
Diffstat (limited to 'src/emuWheel.c')
-rw-r--r--src/emuWheel.c106
1 files changed, 30 insertions, 76 deletions
diff --git a/src/emuWheel.c b/src/emuWheel.c
index 70ef41c..3c0b066 100644
--- a/src/emuWheel.c
+++ b/src/emuWheel.c
@@ -6,6 +6,7 @@
* Copyright 2002 by Paul Elliott
* (Ported from xf86-input-mouse, above copyrights taken from there)
* Copyright 2008 by Chris Salch
+* Copyright © 2008 Red Hat, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software
* and its documentation for any purpose is hereby granted without
@@ -42,6 +43,12 @@
#define WHEEL_NOT_CONFIGURED 0
+static const char *propname_wheel_emu = "Wheel Emulation";
+static const char *propname_wheel_xmap = "Wheel Emulation X Axis";
+static const char *propname_wheel_ymap = "Wheel Emulation Y Axis";
+static const char *propname_wheel_inertia = "Wheel Emulation Inertia";
+static const char *propname_wheel_button = "Wheel Emulation Button";
+
static Atom prop_wheel_emu;
static Atom prop_wheel_xmap;
static Atom prop_wheel_ymap;
@@ -295,8 +302,8 @@ EvdevWheelEmuPreInit(InputInfoPtr pInfo)
}
#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 3
-Atom
-EvdevWheelEmuInitProperty(DeviceIntPtr dev, char* name)
+void
+EvdevWheelEmuInitProperty(DeviceIntPtr dev)
{
InputInfoPtr pInfo = dev->public.devicePrivate;
EvdevPtr pEvdev = pInfo->private;
@@ -304,132 +311,79 @@ EvdevWheelEmuInitProperty(DeviceIntPtr dev, char* name)
INT32 valid_vals[] = { TRUE, FALSE};
if (!dev->button) /* don't init prop for keyboards */
- return 0;
+ return;
- prop_wheel_emu = MakeAtom(name, strlen(name), TRUE);
+ prop_wheel_emu = MakeAtom((char*)propname_wheel_emu, strlen(propname_wheel_emu), TRUE);
rc = XIChangeDeviceProperty(dev, prop_wheel_emu, XA_INTEGER, 8,
PropModeReplace, 1,
&pEvdev->emulateWheel.enabled,
FALSE, FALSE, FALSE);
if (rc != Success)
- return 0;
+ return;
rc = XIConfigureDeviceProperty(dev, prop_wheel_emu, FALSE, FALSE,
FALSE, 2, valid_vals);
if (rc != Success)
- return 0;
- return prop_wheel_emu;
-}
-
-Atom
-EvdevWheelEmuInitPropertyXMap(DeviceIntPtr dev, char* name)
-{
- InputInfoPtr pInfo = dev->public.devicePrivate;
- EvdevPtr pEvdev = pInfo->private;
- int rc = TRUE;
- int vals[2];
-
- if (!dev->button) /* don't init prop for keyboards */
- return 0;
+ return;
- vals[0] = pEvdev->emulateWheel.X.up_button;
- vals[1] = pEvdev->emulateWheel.X.down_button;
+ valid_vals[0] = pEvdev->emulateWheel.X.up_button;
+ valid_vals[1] = pEvdev->emulateWheel.X.down_button;
- prop_wheel_xmap = MakeAtom(name, strlen(name), TRUE);
+ prop_wheel_xmap = MakeAtom((char*)propname_wheel_xmap, strlen(propname_wheel_xmap), TRUE);
rc = XIChangeDeviceProperty(dev, prop_wheel_xmap, XA_INTEGER, 8,
- PropModeReplace, 2, vals,
+ PropModeReplace, 2, valid_vals,
FALSE, FALSE, FALSE);
if (rc != Success)
- return 0;
+ return;
rc = XIConfigureDeviceProperty(dev, prop_wheel_xmap, FALSE, FALSE,
FALSE, 0, NULL);
if (rc != Success)
- return 0;
- return prop_wheel_xmap;
-}
-
-Atom
-EvdevWheelEmuInitPropertyYMap(DeviceIntPtr dev, char* name)
-{
- InputInfoPtr pInfo = dev->public.devicePrivate;
- EvdevPtr pEvdev = pInfo->private;
- int rc = TRUE;
- int vals[2];
-
- if (!dev->button) /* don't init prop for keyboards */
- return 0;
+ return;
- vals[0] = pEvdev->emulateWheel.Y.up_button;
- vals[1] = pEvdev->emulateWheel.Y.down_button;
+ valid_vals[0] = pEvdev->emulateWheel.Y.up_button;
+ valid_vals[1] = pEvdev->emulateWheel.Y.down_button;
- prop_wheel_ymap = MakeAtom(name, strlen(name), TRUE);
+ prop_wheel_ymap = MakeAtom((char*)propname_wheel_ymap, strlen(propname_wheel_ymap), TRUE);
rc = XIChangeDeviceProperty(dev, prop_wheel_ymap, XA_INTEGER, 8,
- PropModeReplace, 2, vals,
+ PropModeReplace, 2, valid_vals,
FALSE, FALSE, FALSE);
if (rc != Success)
- return 0;
+ return;
rc = XIConfigureDeviceProperty(dev, prop_wheel_ymap, FALSE, FALSE,
FALSE, 0, NULL);
- if (rc != Success)
- return 0;
- return prop_wheel_ymap;
-}
-
-Atom
-EvdevWheelEmuInitPropertyInertia(DeviceIntPtr dev, char* name)
-{
- InputInfoPtr pInfo = dev->public.devicePrivate;
- EvdevPtr pEvdev = pInfo->private;
- int rc = TRUE;
-
- if (!dev->button) /* don't init prop for keyboards */
- return 0;
- prop_wheel_inertia = MakeAtom(name, strlen(name), TRUE);
+ prop_wheel_inertia = MakeAtom((char*)propname_wheel_inertia, strlen(propname_wheel_inertia), TRUE);
rc = XIChangeDeviceProperty(dev, prop_wheel_inertia, XA_INTEGER, 16,
PropModeReplace, 1,
&pEvdev->emulateWheel.inertia,
FALSE, FALSE, FALSE);
if (rc != Success)
- return 0;
+ return;
rc = XIConfigureDeviceProperty(dev, prop_wheel_inertia, FALSE, FALSE,
FALSE, 0, NULL);
if (rc != Success)
- return 0;
- return prop_wheel_inertia;
-}
-
-Atom
-EvdevWheelEmuInitPropertyButton(DeviceIntPtr dev, char* name)
-{
- InputInfoPtr pInfo = dev->public.devicePrivate;
- EvdevPtr pEvdev = pInfo->private;
- int rc = TRUE;
-
- if (!dev->button) /* don't init prop for keyboards */
- return 0;
+ return;
- prop_wheel_button = MakeAtom(name, strlen(name), TRUE);
+ prop_wheel_button = MakeAtom((char*)propname_wheel_button, strlen(propname_wheel_button), TRUE);
rc = XIChangeDeviceProperty(dev, prop_wheel_button, XA_INTEGER, 8,
PropModeReplace, 1,
&pEvdev->emulateWheel.button,
FALSE, FALSE, FALSE);
if (rc != Success)
- return 0;
+ return;
rc = XIConfigureDeviceProperty(dev, prop_wheel_button, FALSE, FALSE,
FALSE, 0, NULL);
if (rc != Success)
- return 0;
- return prop_wheel_button;
+ return;
}