recommit previous changes to evdev.c

This commit is contained in:
Dave Airlie 2005-12-28 02:43:50 +00:00
parent ce7c0c8937
commit aeb770f645

View File

@ -112,7 +112,7 @@ EvdevRead (int evdevPort, void *closure)
{ {
KdMouseInfo *mi = closure; KdMouseInfo *mi = closure;
Kevdev *ke = mi->driver; Kevdev *ke = mi->driver;
int i, n, f = 0; int i, n;
struct input_event events[NUM_EVENTS]; struct input_event events[NUM_EVENTS];
n = read (evdevPort, &events, NUM_EVENTS * sizeof (struct input_event)); n = read (evdevPort, &events, NUM_EVENTS * sizeof (struct input_event));
@ -131,26 +131,46 @@ EvdevRead (int evdevPort, void *closure)
ErrorF ("key %d %d\n", events[i].code, events[i].value); ErrorF ("key %d %d\n", events[i].code, events[i].value);
else else
ErrorF ("key 0x%x %d\n", events[i].code, events[i].value); ErrorF ("key 0x%x %d\n", events[i].code, events[i].value);
switch (events[i].code) {
case BTN_LEFT: if (events[i].value==1) {
f = KD_BUTTON_1; switch (events[i].code) {
case BTN_LEFT:
flags |= KD_BUTTON_1;
break; break;
case BTN_RIGHT: case BTN_RIGHT:
f = KD_BUTTON_2; flags |= KD_BUTTON_3;
break; break;
case BTN_MIDDLE: case BTN_MIDDLE:
f = KD_BUTTON_3; flags |= KD_BUTTON_2;
break; break;
case BTN_FORWARD: case BTN_FORWARD:
f = KD_BUTTON_4; flags |= KD_BUTTON_4;
break; break;
case BTN_BACK: case BTN_BACK:
f = KD_BUTTON_5; flags |= KD_BUTTON_5;
break; break;
} }
flags |= f; }
KdEnqueueMouseEvent (mi, KD_MOUSE_DELTA | flags, 0, 0); else if (events[i].value==0) {
ErrorF("Flags is %x\n", flags); switch (events[i].code) {
case BTN_LEFT:
flags &= ~KD_BUTTON_1;
break;
case BTN_RIGHT:
flags &= ~KD_BUTTON_3;
break;
case BTN_MIDDLE:
flags &= ~KD_BUTTON_2;
break;
case BTN_FORWARD:
flags &= ~KD_BUTTON_4;
break;
case BTN_BACK:
flags &= ~KD_BUTTON_5;
break;
}
}
KdEnqueueMouseEvent (mi, KD_MOUSE_DELTA | flags, 0, 0);
break; break;
case EV_REL: case EV_REL:
ke->rel[events[i].code] += events[i].value; ke->rel[events[i].code] += events[i].value;
@ -166,12 +186,12 @@ EvdevRead (int evdevPort, void *closure)
int EvdevInputType; int EvdevInputType;
char *kdefaultEvdev[] = { char *kdefaultEvdev[] = {
// "/dev/input/event0", // "/dev/input/event0",
// "/dev/input/event1", "/dev/input/event1",
// "/dev/input/event2", // "/dev/input/event2",
// "/dev/input/event3", // "/dev/input/event3",
// "/dev/input/event4", // "/dev/input/event4",
"/dev/input/event5", // "/dev/input/event5",
}; };
#define NUM_DEFAULT_EVDEV (sizeof (kdefaultEvdev) / sizeof (kdefaultEvdev[0])) #define NUM_DEFAULT_EVDEV (sizeof (kdefaultEvdev) / sizeof (kdefaultEvdev[0]))
@ -477,12 +497,12 @@ EvdevRead1 (int evdevPort, void *closure)
} }
char *kdefaultEvdev1[] = { char *kdefaultEvdev1[] = {
// "/dev/input/event0", "/dev/input/event0",
// "/dev/input/event1", // "/dev/input/event1",
// "/dev/input/event2", // "/dev/input/event2",
"/dev/input/event3", // "/dev/input/event3",
// "/dev/input/event4", // "/dev/input/event4",
// "/dev/input/event5", // "/dev/input/event5",
}; };
#define NUM_DEFAULT_EVDEV1 (sizeof (kdefaultEvdev1) / sizeof (kdefaultEvdev1[0])) #define NUM_DEFAULT_EVDEV1 (sizeof (kdefaultEvdev1) / sizeof (kdefaultEvdev1[0]))