X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fmain.c;h=fd2517ca86b5e712d976a968cddced3e28a3b19c;hb=504567b5ac92176370b0bfbda1399a1787b073c5;hp=c39e0ffea30cfd4b92b90f19a9ac3328746aa91d;hpb=3c1dc0f43eade1f8e59f74ffcc41153ed0dff15f;p=sball diff --git a/src/main.c b/src/main.c index c39e0ff..fd2517c 100644 --- a/src/main.c +++ b/src/main.c @@ -1,11 +1,20 @@ #include #include +#include #include #include #include #include #include "sball.h" +#ifdef __FreeBSD__ +#define DEFDEV "/dev/ttyu0" +#elif defined(__sgi__) +#define DEFDEV "/dev/ttyd1" +#else +#define DEFDEV "/dev/ttyS0" +#endif + static void sighandler(int s); static struct sball *sb; @@ -15,15 +24,26 @@ int main(int argc, char **argv) { int fd; fd_set rdset; + const char *dev = DEFDEV; signal(SIGINT, sighandler); - if(!(sb = sball_open(argv[1] ? argv[1] : "/dev/ttyS0"))) { - fprintf(stderr, "Failed to open spaceball at %s\n", argv[1] ? argv[1] : "/dev/ttyS0"); + if(argv[1]) { + if(strcmp(argv[1], "btest") == 0) { + sball_button_test(); + return 0; + } + dev = argv[1]; + } + + if(!(sb = sball_open(dev))) { + fprintf(stderr, "Failed to open spaceball at %s\n", dev); return 1; } fd = sball_fd(sb); + printf("Monitoring device, ctrl-c to quit\n"); + while(!quit) { FD_ZERO(&rdset); FD_SET(fd, &rdset); @@ -33,7 +53,9 @@ int main(int argc, char **argv) sball_read(sb); } } + } + putchar('\n'); sball_close(sb); return 0;