1*288bf522SAndroid Build Coastguard Worker# Capture and display input events and coordinates 2*288bf522SAndroid Build Coastguard Worker# 3*288bf522SAndroid Build Coastguard Worker# Usage: ./capture.sh 4*288bf522SAndroid Build Coastguard Worker# 5*288bf522SAndroid Build Coastguard Worker 6*288bf522SAndroid Build Coastguard Worker# do a throw-away adb in case the server is out-of-date 7*288bf522SAndroid Build Coastguard Workeradb devices -l 2>&1 >/dev/null 8*288bf522SAndroid Build Coastguard Worker 9*288bf522SAndroid Build Coastguard Workerwhile [ $# -gt 0 ] 10*288bf522SAndroid Build Coastguard Workerdo 11*288bf522SAndroid Build Coastguard Worker case "$1" in 12*288bf522SAndroid Build Coastguard Worker (-d) DEVICE=$2; shift;; 13*288bf522SAndroid Build Coastguard Worker (*) 14*288bf522SAndroid Build Coastguard Worker echo Unknown option $1 15*288bf522SAndroid Build Coastguard Worker exit 1;; 16*288bf522SAndroid Build Coastguard Worker esac 17*288bf522SAndroid Build Coastguard Worker shift 18*288bf522SAndroid Build Coastguard Workerdone 19*288bf522SAndroid Build Coastguard Worker 20*288bf522SAndroid Build Coastguard Workerif [ "$DEVICE" = "" ]; then 21*288bf522SAndroid Build Coastguard Worker devInfo=$(adb devices -l | grep -v ^List | head -1) 22*288bf522SAndroid Build Coastguard Worker set -- $devInfo 23*288bf522SAndroid Build Coastguard Worker echo devInfo=$devInfo 24*288bf522SAndroid Build Coastguard Worker DEVICE=$(echo $4 | sed 's/product://') 25*288bf522SAndroid Build Coastguard Workerfi 26*288bf522SAndroid Build Coastguard Worker 27*288bf522SAndroid Build Coastguard Workerfunction convert { 28*288bf522SAndroid Build Coastguard Worker in=$1 29*288bf522SAndroid Build Coastguard Worker max=$2 30*288bf522SAndroid Build Coastguard Worker scale=$3 31*288bf522SAndroid Build Coastguard Worker if [ $max -eq 0 ]; then 32*288bf522SAndroid Build Coastguard Worker echo $in 33*288bf522SAndroid Build Coastguard Worker else 34*288bf522SAndroid Build Coastguard Worker ((out=in*scale/max)) 35*288bf522SAndroid Build Coastguard Worker echo $out 36*288bf522SAndroid Build Coastguard Worker fi 37*288bf522SAndroid Build Coastguard Worker} 38*288bf522SAndroid Build Coastguard Worker 39*288bf522SAndroid Build Coastguard Worker 40*288bf522SAndroid Build Coastguard Workercase $DEVICE in 41*288bf522SAndroid Build Coastguard Worker(shamu|hammerhead|bullhead|ariel) 42*288bf522SAndroid Build Coastguard Worker # no scaling necessary 43*288bf522SAndroid Build Coastguard Worker xmax=0 44*288bf522SAndroid Build Coastguard Worker ymax=0;; 45*288bf522SAndroid Build Coastguard Worker(volantis) 46*288bf522SAndroid Build Coastguard Worker xmax=3060 47*288bf522SAndroid Build Coastguard Worker xscale=1500 48*288bf522SAndroid Build Coastguard Worker ymax=2304 49*288bf522SAndroid Build Coastguard Worker yscale=1950;; 50*288bf522SAndroid Build Coastguard Worker(*) 51*288bf522SAndroid Build Coastguard Worker echo "Error: No display information available for $DEVICE" 52*288bf522SAndroid Build Coastguard Worker exit 1;; 53*288bf522SAndroid Build Coastguard Workeresac 54*288bf522SAndroid Build Coastguard Worker 55*288bf522SAndroid Build Coastguard Workerecho Capturing input for $DEVICE... 56*288bf522SAndroid Build Coastguard Workerstdbuf -o0 adb shell getevent -t | 57*288bf522SAndroid Build Coastguard Worker stdbuf -o0 grep "event.: 0003" | 58*288bf522SAndroid Build Coastguard Worker stdbuf -o0 grep "0003 003[0156a9]" | 59*288bf522SAndroid Build Coastguard Worker stdbuf -o0 tr ':[] 60*288bf522SAndroid Build Coastguard Worker' ' ' | while read line 61*288bf522SAndroid Build Coastguard Workerdo 62*288bf522SAndroid Build Coastguard Worker set -- $line 63*288bf522SAndroid Build Coastguard Worker code=$4 64*288bf522SAndroid Build Coastguard Worker value=$((16#$5)) 65*288bf522SAndroid Build Coastguard Worker case $code in 66*288bf522SAndroid Build Coastguard Worker (0035) x=$(convert $value $xmax $xscale);; 67*288bf522SAndroid Build Coastguard Worker (0036) y=$(convert $value $ymax $yscale);; 68*288bf522SAndroid Build Coastguard Worker (0030) tag="majorTouch";; 69*288bf522SAndroid Build Coastguard Worker (0031) tag="minorTouch";; 70*288bf522SAndroid Build Coastguard Worker (003a) tag="pressure";; 71*288bf522SAndroid Build Coastguard Worker (0039) tag="trackingId";; 72*288bf522SAndroid Build Coastguard Worker (--) echo unknown code=$code;; 73*288bf522SAndroid Build Coastguard Worker esac 74*288bf522SAndroid Build Coastguard Worker printf "%-10s %-4d %-4d\n" $tag $x $y 75done 76