X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=gp2x%2Fusbjoy.c;h=7be18d59dbca6ab6a04c6ddd7916b0348646e48c;hb=b846453101c070b93938dd2224f0cca130a55e8c;hp=569f6151d1f8cd57bbf64dde082567eea8750ef9;hpb=720ee7f6244cb51cc123a7fd16832161db9a3b4d;p=libpicofe.git diff --git a/gp2x/usbjoy.c b/gp2x/usbjoy.c index 569f615..7be18d5 100644 --- a/gp2x/usbjoy.c +++ b/gp2x/usbjoy.c @@ -34,6 +34,8 @@ #include "usbjoy.h" +/* This is a try to support analog joys. Untested. */ +#define DEAD_ZONE (8*1024) /* Function: joy_open @@ -210,14 +212,16 @@ int joy_update (struct usbjoy * joy) { switch (events[i].type & ~JS_EVENT_INIT) { case JS_EVENT_AXIS: if (events[i].number == 0) { - if (events[i].value == 0) joy->stateaxes[JOYLEFT] = joy->stateaxes[JOYRIGHT] = 0; - else if (events[i].value < 0) joy->stateaxes[JOYLEFT] = 1; - else joy->stateaxes[JOYRIGHT] = 1; + joy->stateaxes[JOYLEFT] = joy->stateaxes[JOYRIGHT] = 0; + if (events[i].value < -DEAD_ZONE) joy->stateaxes[JOYLEFT] = 1; + else if (events[i].value > DEAD_ZONE) joy->stateaxes[JOYRIGHT] = 1; + joy->axevals[0] = events[i].value; } else if (events[i].number == 1) { - if (events[i].value == 0) joy->stateaxes[JOYUP] = joy->stateaxes[JOYDOWN] = 0; - else if (events[i].value < 0) joy->stateaxes[JOYUP] = 1; - else joy->stateaxes[JOYDOWN] = 1; + joy->stateaxes[JOYUP] = joy->stateaxes[JOYDOWN] = 0; + if (events[i].value < -DEAD_ZONE) joy->stateaxes[JOYUP] = 1; + else if (events[i].value > DEAD_ZONE) joy->stateaxes[JOYDOWN] = 1; + joy->axevals[1] = events[i].value; } event = 1; break; @@ -418,6 +422,7 @@ void gp2x_usbjoy_deinit (void) { int i; for (i=0; i