diff options
Diffstat (limited to 'system/joystick')
-rw-r--r-- | system/joystick/README | 10 | ||||
-rw-r--r-- | system/joystick/joystick.SlackBuild | 72 | ||||
-rw-r--r-- | system/joystick/joystick.diff | 229 | ||||
-rw-r--r-- | system/joystick/joystick.info | 8 | ||||
-rw-r--r-- | system/joystick/slack-desc | 19 |
5 files changed, 338 insertions, 0 deletions
diff --git a/system/joystick/README b/system/joystick/README new file mode 100644 index 0000000000..922da3cdf4 --- /dev/null +++ b/system/joystick/README @@ -0,0 +1,10 @@ +jscal (a joystick calibration program, not to be confused with jscalibrator), +jstest and jsattach are 3 command-line tools which were included in Version 1 +of the Linux Joystick Driver. + +The included patch for jscal adds remapping axes and buttons functionality. + +If you wish to remap your joystick axes and/or buttons, run jscal with the -q +option: the output is a line of text containing the "jscal -u" (remap) command +with the current mappings, which you can save to a file and edit to suit your +needs. diff --git a/system/joystick/joystick.SlackBuild b/system/joystick/joystick.SlackBuild new file mode 100644 index 0000000000..7c73beb8bb --- /dev/null +++ b/system/joystick/joystick.SlackBuild @@ -0,0 +1,72 @@ +#!/bin/sh + +# Slackware build script for joystick + +# Written by Roberto Neri <rneri@libero.it> + +PRGNAM=joystick +VERSION=${VERSION:-1.2.15} +ARCH=${ARCH:-i486} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Patch to add remapping axes and buttons functionality +# see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=444142 +patch -i $CWD/$PRGNAM.diff -p2 --verbose + +make CFLAGS="$SLKCFLAGS" CPPFLAGS="" jsattach jscal jstest +strip --strip-unneeded jsattach jscal jstest + +mkdir -p $PKG/usr/bin +cp -a jsattach jscal jstest \ + $PKG/usr/bin + +gzip -9 jsattach.1 jscal.1 jstest.1 +mkdir -p $PKG/usr/man/man1 +cp -a jsattach.1.gz jscal.1.gz jstest.1.gz \ + $PKG/usr/man/man1 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ChangeLog COPYING joystick-api.txt joystick-parport.txt joystick.txt README \ + README-API README-parport TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +chmod 644 $PKG/usr/doc/$PRGNAM-$VERSION/* +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz diff --git a/system/joystick/joystick.diff b/system/joystick/joystick.diff new file mode 100644 index 0000000000..37e21bd07e --- /dev/null +++ b/system/joystick/joystick.diff @@ -0,0 +1,229 @@ +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 diff --git a/system/joystick/joystick.info b/system/joystick/joystick.info new file mode 100644 index 0000000000..7a05e9503a --- /dev/null +++ b/system/joystick/joystick.info @@ -0,0 +1,8 @@ +PRGNAM="joystick" +VERSION="1.2.15" +HOMEPAGE="http://atrey.karlin.mff.cuni.cz/~vojtech/joystick" +DOWNLOAD="ftp://atrey.karlin.mff.cuni.cz/pub/linux/joystick/joystick-1.2.15.tar.gz" +MD5SUM="023500eb6986e1a94aa1a0c30af729c2" +MAINTAINER="Roberto Neri" +EMAIL="rneri@libero.it" +APPROVED="rworkman" diff --git a/system/joystick/slack-desc b/system/joystick/slack-desc new file mode 100644 index 0000000000..9d591adf8d --- /dev/null +++ b/system/joystick/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +joystick: joystick (Testing and calibration tools for joysticks) +joystick: +joystick: Useful tools for using joysticks: +joystick: jsattach - attach a serial line to a joystick device +joystick: jscal - joystick calibration program +joystick: (patched to add remapping axes and buttons functionality) +joystick: jstest - joystick test program +joystick: +joystick: Homepage: http://atrey.karlin.mff.cuni.cz/~vojtech/joystick/ +joystick: +joystick: |