diff options
author | Zephaniah E. Hull <warp@agamemnon.b5> | 2006-09-10 06:47:15 -0400 |
---|---|---|
committer | Zephaniah E. Hull <warp@agamemnon.b5> | 2006-09-10 06:47:15 -0400 |
commit | ab65184d472614d2664e6cd7bca2d6dbc28fad07 (patch) | |
tree | d46152f30e9f75b7a4fc75ed0de1cfd236fb8b12 /src/evdev_axes.c | |
parent | Replace the old two buffer approach to handling rel emulation of abs axes, (diff) | |
download | xf86-input-evdev-ab65184d472614d2664e6cd7bca2d6dbc28fad07.tar.gz xf86-input-evdev-ab65184d472614d2664e6cd7bca2d6dbc28fad07.tar.bz2 xf86-input-evdev-ab65184d472614d2664e6cd7bca2d6dbc28fad07.zip |
Fix compilation.
Diffstat (limited to 'src/evdev_axes.c')
-rw-r--r-- | src/evdev_axes.c | 45 |
1 files changed, 37 insertions, 8 deletions
diff --git a/src/evdev_axes.c b/src/evdev_axes.c index df6eb4b..28bcdc9 100644 --- a/src/evdev_axes.c +++ b/src/evdev_axes.c @@ -215,7 +215,29 @@ EvdevAxesRealSyn (InputInfoPtr pInfo, int absolute, int skip_xy) } static void -EvdevAxesAbsSyn (InputInfoPtr pInfo) +EvdevAxesAbsSynCfg (InputInfoPtr pInfo) +{ + evdevDevicePtr pEvdev = pInfo->private; + evdevStatePtr state = &pEvdev->state; + struct input_absinfo absinfo; + int i; + + for (i = 0; i < ABS_MAX; i++) { + if (!test_bit (i, pEvdev->bits.abs)) + continue; + + if (ioctl (pInfo->fd, EVIOCGABS(i), &absinfo) < 0) { + xf86Msg(X_ERROR, "ioctl EVIOCGABS (%d) failed: %s\n", i, strerror(errno)); + continue; + } + state->abs->min[state->abs->map[i]] = absinfo.minimum; + state->abs->max[state->abs->map[i]] = absinfo.maximum; + } + +} + +static void +EvdevAxesAbsSynRep (InputInfoPtr pInfo) { evdevDevicePtr pEvdev = pInfo->private; evdevStatePtr state = &pEvdev->state; @@ -263,7 +285,7 @@ EvdevAxesAbsSyn (InputInfoPtr pInfo) } static void -EvdevAxesRelSyn (InputInfoPtr pInfo) +EvdevAxesRelSynRep (InputInfoPtr pInfo) { evdevDevicePtr pEvdev = pInfo->private; evdevStatePtr state = &pEvdev->state; @@ -290,10 +312,17 @@ EvdevAxesRelSyn (InputInfoPtr pInfo) } void -EvdevAxesSyn (InputInfoPtr pInfo) +EvdevAxesSynRep (InputInfoPtr pInfo) +{ + EvdevAxesAbsSynRep (pInfo); + EvdevAxesRelSynRep (pInfo); +} + +void +EvdevAxesSynCfg (InputInfoPtr pInfo) { - EvdevAxesAbsSyn (pInfo); - EvdevAxesRelSyn (pInfo); + EvdevAxesAbsSynCfg (pInfo); +/* EvdevAxesRelSynCfg (pInfo);*/ } void @@ -316,7 +345,7 @@ EvdevAxesAbsProcess (InputInfoPtr pInfo, struct input_event *ev) state->abs->count++; if (!state->sync) - EvdevAxesAbsSyn (pInfo); + EvdevAxesAbsSynRep (pInfo); } void @@ -338,7 +367,7 @@ EvdevAxesRelProcess (InputInfoPtr pInfo, struct input_event *ev) state->rel->count++; if (!state->sync) - EvdevAxesRelSyn (pInfo); + EvdevAxesRelSynRep (pInfo); } int @@ -637,7 +666,7 @@ EvdevAxesInit (DeviceIntPtr device) return !Success; for (i = 0; i < axes; i++) { - xf86InitValuatorAxisStruct(device, i, 0, 0, 0, 0, 1); + xf86InitValuatorAxisStruct(device, i, 0, -1, 0, 0, 1); xf86InitValuatorDefaults(device, i); } |