X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Fgp2x%2Fusbjoy.c;h=d92e8f66462fbb63179328e67b1f1f7a42d0a481;hb=16b0afd0294a8acde173e2973f9a35eafe0bd185;hp=7be18d59dbca6ab6a04c6ddd7916b0348646e48c;hpb=626f7c37bb663946e1fffd2e51442e45a86cab72;p=picodrive.git diff --git a/platform/gp2x/usbjoy.c b/platform/gp2x/usbjoy.c index 7be18d5..d92e8f6 100644 --- a/platform/gp2x/usbjoy.c +++ b/platform/gp2x/usbjoy.c @@ -57,8 +57,8 @@ struct usbjoy *joy_open(int joynumber) char path [128]; struct usbjoy * joy = NULL; struct js_event event; +#ifdef __GP2X__ static char insmod_done = 0; - // notaz: on my system I get unresolved input_* symbols, so have to 'insmod input' too // also we should insmod only once, not on every joy_open() call. if (!insmod_done) { @@ -66,13 +66,18 @@ struct usbjoy *joy_open(int joynumber) system ("insmod joydev"); // Loads joydev module insmod_done = 1; } +#endif if (joynumber == 0) { } else if (joynumber > 0) { sprintf (path, "/dev/input/js%d", joynumber-1); fd = open(path, O_RDONLY, 0); - if (fd > 0) { + if (fd == -1) { + sprintf (path, "/dev/js%d", joynumber-1); + fd = open(path, O_RDONLY, 0); + } + if (fd != -1) { joy = (struct usbjoy *) malloc(sizeof(*joy)); if (joy == NULL) { close(fd); return NULL; } memset(joy, 0, sizeof(*joy));