diff options
Diffstat (limited to 'system/joystick/joystick.diff')
-rw-r--r-- | system/joystick/joystick.diff | 229 |
1 files changed, 0 insertions, 229 deletions
diff --git a/system/joystick/joystick.diff b/system/joystick/joystick.diff deleted file mode 100644 index 37e21bd07e601..0000000000000 --- a/system/joystick/joystick.diff +++ /dev/null @@ -1,229 +0,0 @@ -Only in joystick-20051019: debian -Only in /home/kajla/usr/src/joystick/: .svn -diff -ur joystick-20051019/utils/jscal.c /home/kajla/usr/src/joystick/utils/jscal.c ---- joystick-20051019/utils/jscal.c 2004-10-19 09:51:52.000000000 +0200 -+++ /home/kajla/usr/src/joystick/utils/jscal.c 2007-09-26 12:56:33.000000000 +0200 -@@ -61,6 +61,8 @@ - - int fd; - struct js_corr corr[MAX_AXES]; -+__u8 axmap[ABS_MAX + 1]; -+__u16 buttonmap[(KEY_MAX - BTN_MISC + 1)]; - char axes, buttons, fuzz; - int version; - struct correction_data corda[MAX_AXES]; -@@ -163,6 +165,12 @@ - puts(" -V --version Prints the version numbers"); - puts(" -p --print-correction Prints the current settings as a jscal"); - puts(" command line"); -+ puts(" -q --print-mappings Print the current axis and button"); -+ puts(" mappings as a jscal command line"); -+ puts(" -u <n_of_axes,axmap1,axmap2,...,"); -+ puts(" n_of_buttons,btnmap1,btnmap2,"); -+ puts(" ...> --set-mappings Sets axis and button mappings to the"); -+ puts(" specified values"); - putchar('\n'); - } - -@@ -316,6 +324,42 @@ - (version >> 8) & 0xff, version & 0xff); - } - -+void print_mappings(char *devicename) -+{ -+ int i; -+ -+ if (ioctl(fd, JSIOCGAXES, &axes)) { -+ perror("jscal: error getting axes"); -+ exit(1); -+ } -+ if (ioctl(fd, JSIOCGBUTTONS, &buttons)) { -+ perror("jscal: error getting buttons"); -+ exit(1); -+ } -+ if (ioctl(fd, JSIOCGAXMAP, &axmap)) { -+ perror("jscal: error getting axis map"); -+ exit(1); -+ } -+ if (ioctl(fd, JSIOCGBTNMAP, &buttonmap)) { -+ perror("jscal: error getting button map"); -+ exit(1); -+ } -+ -+ printf("jscal -u %d", axes); -+ for (i = 0; i < axes; i++) -+ { -+ printf( ",%d", axmap[i]); -+ } -+ -+ printf(",%d", buttons); -+ for (i = 0; i < buttons; i++) -+ { -+ printf( ",%d", buttonmap[i]); -+ } -+ -+ printf(" %s\n",devicename); -+} -+ - void print_settings(char *devicename) - { - int i,j; -@@ -342,6 +386,107 @@ - printf(" %s\n",devicename); - } - -+// n axes n buttons -+// 10,0,1,2,5,6,16,17,40,41,42:13,288,289,290,291,292,293,294,295,296,297,298,299,300 -+void set_mappings(char *p) -+{ -+ int i; -+ int axes_on_cl = 0; -+ int btns_on_cl = 0; -+ int axis_mapping = 0; -+ int btn_mapping = 0; -+ -+ if (ioctl(fd, JSIOCGAXES, &axes)) { -+ perror("jscal: error getting axes"); -+ exit(1); -+ } -+ if (ioctl(fd, JSIOCGBUTTONS, &buttons)) { -+ perror("jscal: error getting buttons"); -+ exit(1); -+ } -+ -+ if (axes > MAX_AXES) axes = MAX_AXES; -+ -+ if (!p) { -+ fprintf(stderr, "jscal: missing argument for --set-mappings\n"); -+ exit(1); -+ } -+ -+ //axes -+ sscanf(p, "%d", &axes_on_cl); -+ p = strstr(p, ","); -+ -+ if (axes_on_cl != axes) { -+ fprintf(stderr, "jscal: joystick has %d axes and not %d as specified on command line\n", -+ axes, axes_on_cl); -+ exit(1); -+ } -+ -+ -+ for (i = 0; i < axes; i++) -+ { -+ if (!p) { -+ fprintf(stderr, "jscal: missing mapping for axis %d\n", i); -+ exit(1); -+ } -+ sscanf(++p, "%d", &axis_mapping); -+ p = strstr(p, ","); -+ -+ -+ if (axis_mapping > ABS_MAX + 1) { -+ fprintf(stderr, "jscal: invalid axis mapping for axis %d (max is %d)\n", i, ABS_MAX + 1); -+ exit(1); -+ } -+ axmap[i] = axis_mapping; -+ } -+ -+ //buttons -+ sscanf(++p, "%d", &btns_on_cl); -+ p = strstr(p, ","); -+ -+ if (btns_on_cl != buttons) { -+ fprintf(stderr, "jscal: joystick has %d buttons and not %d as specified on command line\n", -+ buttons, btns_on_cl); -+ exit(1); -+ } -+ -+ -+ for (i = 0; i < buttons; i++) -+ { -+ if (!p) { -+ fprintf(stderr, "jscal: missing mapping for button %d\n", i); -+ exit(1); -+ } -+ sscanf(++p, "%d", &btn_mapping); -+ p = strstr(p, ","); -+ -+ -+ if (btn_mapping > KEY_MAX) { -+ fprintf(stderr, "jscal: invalid button mapping for button %d (max is %d)\n", i, KEY_MAX); -+ exit(1); -+ } -+ if (btn_mapping < BTN_MISC) { -+ fprintf(stderr, "jscal: invalid button mapping for button %d (min is %d)\n", i, BTN_MISC); -+ exit(1); -+ } -+ buttonmap[i] = btn_mapping; -+ } -+ -+ if (p) { -+ fprintf(stderr, "jscal: too many values\n"); -+ exit(1); -+ } -+ -+ if (ioctl(fd, JSIOCSAXMAP, &axmap)) { -+ perror("jscal: error setting axis map"); -+ exit(1); -+ } -+ if (ioctl(fd, JSIOCSBTNMAP, &buttonmap)) { -+ perror("jscal: error setting button map"); -+ exit(1); -+ } -+} -+ - void set_correction(char *p) - { - int i,j; -@@ -461,14 +606,18 @@ - char *parameter = NULL; - int t; - -+ // /usr/include/getopt.h - static struct option long_options[] = - { - {"calibrate", no_argument, NULL, 'c'}, - {"help", no_argument, NULL, 'h'}, - {"set-correction", required_argument, NULL, 's'}, -+ {"set-mappings", required_argument, NULL, 'u'}, - {"test-center", no_argument, NULL, 't'}, - {"version", no_argument, NULL, 'V'}, -- {"print-correction", no_argument, NULL, 'p'} -+ {"print-correction", no_argument, NULL, 'p'}, -+ {"print-mappings", no_argument, NULL, 'q'}, -+ {NULL, no_argument, NULL, 0 } - }; - - if (argc == 1) { -@@ -477,10 +626,12 @@ - } - - do { -- t = getopt_long(argc, argv, "chps:vVt", long_options, &option_index); -+ t = getopt_long(argc, argv, "chpqu:s:vVt", long_options, &option_index); - switch (t) { - case 'p': -+ case 'q': - case 's': -+ case 'u': - case 'c': - case 't': - case 'V': -@@ -540,9 +691,15 @@ - case 'p': - print_settings(argv[argc -1]); - break; -+ case 'q': -+ print_mappings(argv[argc -1]); -+ break; - case 's': - set_correction(parameter); - break; -+ case 'u': -+ set_mappings(parameter); -+ break; - case 't': - test_center(); - break; -Only in /home/kajla/usr/src/joystick/utils: .svn |