chiark / gitweb /
hostside/evdev-manip-ebwikeb: bessar runs udev so find the right hiddev to open
[trains.git] / hostside / evdev-manip-ebwikeb
1 #!/bin/sh
2 set -e
3
4 supp () { s="$s --redaction $* --suppress"; }
5
6 supp  EV REL REL Y
7 supp  EV REL REL X
8 supp  0x01 02
9 supp  0x01 02
10 supp  EV MSC
11 supp  0x0c 01
12 supp  0xffbc 88 0xffbc 00
13
14 set +e
15 while sleep 1; do
16     (
17     set -e
18     evdevs="$(perl </proc/bus/input/devices -ne '
19         if (m/^$/) {
20             if ($v{"N: Name"} eq "\"MLK Ebuyer 2.4GHz\"" and
21                 $v{"S: Sysfs"} =~ m,^/class/input/input\d+$, and
22                 $v{"H: Handlers"} =~ m,\b(event\d+)\b,) {
23                 print "--evdev /dev/input/$1\n" or die $!;
24             } else {
25 #print STDERR "$v{\"N: Name\"}|$v{\"P: Phys\"}|$v{\"S: Sysfs\"}<\n";
26             }
27             next;
28         }
29         m/^(\w+\: \w+)\=(.*)$/ or die;
30         $v{$1}= $2;
31     ')"
32
33     hiddevs=`
34         set -e
35         cd /dev/usb
36         for hiddev in hiddev*; do
37             vendor=\`cat /sys/class/usb/$hiddev/device/../idVendor\`
38             product=\`cat /sys/class/usb/$hiddev/device/../idProduct\`
39             case \"$vendor:$product\" in
40             \"04fc:05d8\")
41                  echo "--hiddev /dev/usb/$hiddev"
42                  exit 0
43                  ;;
44             esac
45         done
46     `
47     
48     evdev-manip --redact $s "$@" $evdevs $hiddevs
49     )
50 done