From ab65184d472614d2664e6cd7bca2d6dbc28fad07 Mon Sep 17 00:00:00 2001 From: "Zephaniah E. Hull" Date: Sun, 10 Sep 2006 06:47:15 -0400 Subject: Fix compilation. --- src/evdev.c | 10 +++++++--- src/evdev.h | 9 ++++++++- src/evdev_axes.c | 45 +++++++++++++++++++++++++++++++++++++-------- 3 files changed, 52 insertions(+), 12 deletions(-) diff --git a/src/evdev.c b/src/evdev.c index 2d8d120..1b7fb86 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -117,9 +117,13 @@ EvdevReadInput(InputInfoPtr pInfo) case EV_SYN: if (ev.code == SYN_REPORT) { - EvdevAxesSyn (pInfo); - /* EvdevBtnSyn (pInfo); */ - /* EvdevKeySyn (pInfo); */ + EvdevAxesSynRep (pInfo); + /* EvdevBtnSynRep (pInfo); */ + /* EvdevKeySynRep (pInfo); */ + } else if (ev.code == SYN_CONFIG) { + EvdevAxesSynCfg (pInfo); + /* EvdevBtnSynCfg (pInfo); */ + /* EvdevKeySynCfg (pInfo); */ } break; } diff --git a/src/evdev.h b/src/evdev.h index db33546..0425482 100644 --- a/src/evdev.h +++ b/src/evdev.h @@ -117,6 +117,12 @@ #include #include +/* XInput 1.4+ compatability. */ +#ifndef SendCoreEvents +#define SendCoreEvents 59 +#define DontSendCoreEvents 60 +#endif + /* * Switch events @@ -264,7 +270,8 @@ int EvdevAxesNew0(InputInfoPtr pInfo); int EvdevAxesNew1(InputInfoPtr pInfo); void EvdevAxesAbsProcess (InputInfoPtr pInfo, struct input_event *ev); void EvdevAxesRelProcess (InputInfoPtr pInfo, struct input_event *ev); -void EvdevAxesSyn (InputInfoPtr pInfo); +void EvdevAxesSynRep (InputInfoPtr pInfo); +void EvdevAxesSynCfg (InputInfoPtr pInfo); int EvdevKeyInit (DeviceIntPtr device); int EvdevKeyNew (InputInfoPtr pInfo); 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); } -- cgit v1.2.3