diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4dc6349 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +hid-gadget-test diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5c9291c --- /dev/null +++ b/Makefile @@ -0,0 +1,5 @@ + +all: hid-gadget-test + +hid-gadget-test: hid-gadget-test.c + $(CC) -g -O -o $@ $< diff --git a/convert.sh b/convert.sh new file mode 100644 index 0000000..e151532 --- /dev/null +++ b/convert.sh @@ -0,0 +1,120 @@ +#!/bin/bash + +function convert() +{ + local kbcode="" + + if [ "$1" == " " ] + then + kbcode='space' + elif [ "$1" == "!" ] + then + kbcode='left-shift 1' + elif [ "$1" == "." ] + then + kbcode='period' + elif [ "$1" == "\`" ] + then + kbcode='backquote' + elif [ "$1" == "~" ] + then + kbcode='left-shift tilde' + elif [ "$1" == "+" ] + then + kbcode='kp-plus' + elif [ "$1" == "=" ] + then + kbcode='equal' + elif [ "$1" == "_" ] + then + kbcode='left-shift minus' + elif [ "$1" == "-" ] + then + kbcode='minus' + elif [ "$1" == "\"" ] + then + kbcode='left-shift quote' + elif [ "$1" == "'" ] + then + kbcode='quote' + elif [ "$1" == ":" ] + then + kbcode='left-shift semicolon' + elif [ "$1" == ";" ] + then + kbcode='semicolon' + elif [ "$1" == "<" ] + then + kbcode='left-shift comma' + elif [ "$1" == "," ] + then + kbcode='comma' + elif [ "$1" == ">" ] + then + kbcode='left-shift period' + elif [ "$1" == "?" ] + then + kbcode='left-shift slash' + elif [ "$1" == "\\" ] + then + kbcode='backslash' + elif [ "$1" == "|" ] + then + kbcode='left-shift backslash' + elif [ "$1" == "/" ] + then + kbcode='slash' + elif [ "$1" == "{" ] + then + kbcode='left-shift lbracket' + elif [ "$1" == "}" ] + then + kbcode='left-shift rbracket' + elif [ "$1" == "(" ] + then + kbcode='left-shift 9' + elif [ "$1" == ")" ] + then + kbcode='left-shift 0' + elif [ "$1" == "[" ] + then + kbcode='lbracket' + elif [ "$1" == "]" ] + then + kbcode='rbracket' + elif [ "$1" == "#" ] + then + kbcode='left-shift 3' + elif [ "$1" == "@" ] + then + kbcode='left-shift 2' + elif [ "$1" == "$" ] + then + kbcode='left-shift 4' + elif [ "$1" == "%" ] + then + kbcode='left-shift 5' + elif [ "$1" == "^" ] + then + kbcode='left-shift 6' + elif [ "$1" == "&" ] + then + kbcode='left-shift 7' + elif [ "$1" == "*" ] + then + kbcode='kp-multiply' + + else + case $1 in + [[:upper:]]) + tmp=$1 + kbcode="left-shift ${tmp,,}" + ;; + *) + kbcode="$1" + ;; + esac + fi + + echo "$kbcode" +} diff --git a/duckpi.sh b/duckpi.sh index a8b5a99..504e7ab 100644 --- a/duckpi.sh +++ b/duckpi.sh @@ -1,129 +1,14 @@ #!/bin/bash +export PATH=$PATH:$(pwd) defdelay=0 kb="/dev/hidg0 keyboard" last_cmd="" last_string="" line_num=0 -function convert() -{ - local kbcode="" - - if [ "$1" == " " ] - then - kbcode='space' - elif [ "$1" == "!" ] - then - kbcode='left-shift 1' - elif [ "$1" == "." ] - then - kbcode='period' - elif [ "$1" == "\`" ] - then - kbcode='backquote' - elif [ "$1" == "~" ] - then - kbcode='left-shift tilde' - elif [ "$1" == "+" ] - then - kbcode='kp-plus' - elif [ "$1" == "=" ] - then - kbcode='equal' - elif [ "$1" == "_" ] - then - kbcode='left-shift minus' - elif [ "$1" == "-" ] - then - kbcode='minus' - elif [ "$1" == "\"" ] - then - kbcode='left-shift quote' - elif [ "$1" == "'" ] - then - kbcode='quote' - elif [ "$1" == ":" ] - then - kbcode='left-shift semicolon' - elif [ "$1" == ";" ] - then - kbcode='semicolon' - elif [ "$1" == "<" ] - then - kbcode='left-shift comma' - elif [ "$1" == "," ] - then - kbcode='comma' - elif [ "$1" == ">" ] - then - kbcode='left-shift period' - elif [ "$1" == "?" ] - then - kbcode='left-shift slash' - elif [ "$1" == "\\" ] - then - kbcode='backslash' - elif [ "$1" == "|" ] - then - kbcode='left-shift backslash' - elif [ "$1" == "/" ] - then - kbcode='slash' - elif [ "$1" == "{" ] - then - kbcode='left-shift lbracket' - elif [ "$1" == "}" ] - then - kbcode='left-shift rbracket' - elif [ "$1" == "(" ] - then - kbcode='left-shift 9' - elif [ "$1" == ")" ] - then - kbcode='left-shift 0' - elif [ "$1" == "[" ] - then - kbcode='lbracket' - elif [ "$1" == "]" ] - then - kbcode='rbracket' - elif [ "$1" == "#" ] - then - kbcode='left-shift 3' - elif [ "$1" == "@" ] - then - kbcode='left-shift 2' - elif [ "$1" == "$" ] - then - kbcode='left-shift 4' - elif [ "$1" == "%" ] - then - kbcode='left-shift 5' - elif [ "$1" == "^" ] - then - kbcode='left-shift 6' - elif [ "$1" == "&" ] - then - kbcode='left-shift 7' - elif [ "$1" == "*" ] - then - kbcode='kp-multiply' - - else - case $1 in - [[:upper:]]) - tmp=$1 - kbcode="left-shift ${tmp,,}" - ;; - *) - kbcode="$1" - ;; - esac - fi - - echo "$kbcode" -} +scriptdir=$(dirname "$BASH_SOURCE") +. $scriptdir/convert.sh while IFS='' read -r line || [[ -n "$line" ]]; do ((line_num++)) @@ -138,49 +23,49 @@ while IFS='' read -r line || [[ -n "$line" ]]; do if [ "$kbcode" != "" ] then - echo "$kbcode" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$kbcode" | hid-gadget-test $kb > /dev/null fi done elif [ "$cmd" == "ENTER" ] then last_cmd="enter" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$cmd" == "DELAY" ] then last_cmd="UNS" ((info = info*1000)) - /home/pi/usleep $info + sleep $info elif [ "$cmd" == "WINDOWS" -o "$cmd" == "GUI" ] then last_cmd="left-meta ${info,,}" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$cmd" == "MENU" -o "$cmd" == "APP" ] then last_cmd="left-shift f10" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$cmd" == "DOWNARROW" -o "$cmd" == "DOWN" ] then last_cmd="down" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$cmd" == "LEFTARROW" -o "$cmd" == "LEFT" ] then last_cmd="left" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$cmd" == "RIGHTARROW" -o "$cmd" == "RIGHT" ] then last_cmd="right" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$cmd" == "UPARROW" -o "$cmd" == "UP" ] then last_cmd="up" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$cmd" == "DEFAULT_DELAY" -o "$cmd" == "DEFAULTDELAY" ] then @@ -190,23 +75,23 @@ while IFS='' read -r line || [[ -n "$line" ]]; do elif [ "$cmd" == "BREAK" -o "$cmd" == "PAUSE" ] then last_cmd="pause" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$cmd" == "ESC" -o "$cmd" == "ESCAPE" ] then last_cmd="escape" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$cmd" == "PRINTSCREEN" ] then last_cmd="print" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$cmd" == "CAPSLOCK" -o "$cmd" == "DELETE" -o "$cmd" == "END" -o "$cmd" == "HOME" -o "$cmd" == "INSERT" -o "$cmd" == "NUMLOCK" -o "$cmd" == "PAGEUP" -o "$cmd" == "PAGEDOWN" -o "$cmd" == "SCROLLLOCK" -o "$cmd" == "SPACE" -o "$cmd" == "TAB" \ -o "$cmd" == "F1" -o "$cmd" == "F2" -o "$cmd" == "F3" -o "$cmd" == "F4" -o "$cmd" == "F5" -o "$cmd" == "F6" -o "$cmd" == "F7" -o "$cmd" == "F8" -o "$cmd" == "F9" -o "$cmd" == "F10" -o "$cmd" == "F11" -o "$cmd" == "F12" ] then last_cmd="${cmd,,}" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$cmd" == "REM" ] then @@ -217,38 +102,38 @@ while IFS='' read -r line || [[ -n "$line" ]]; do if [ "$info" == "DELETE" -o "$info" == "END" -o "$info" == "HOME" -o "$info" == "INSERT" -o "$info" == "PAGEUP" -o "$info" == "PAGEDOWN" -o "$info" == "SPACE" -o "$info" == "TAB" ] then last_cmd="left-shift ${info,,}" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == *"WINDOWS"* -o "$info" == *"GUI"* ] then read -r gui char <<< "$info" last_cmd="left-shift left-meta ${char,,}" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "DOWNARROW" -o "$info" == "DOWN" ] then last_cmd="left-shift down" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "LEFTARROW" -o "$info" == "LEFT" ] then last_cmd="left-shift left" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "RIGHTARROW" -o "$info" == "RIGHT" ] then last_cmd="left-shift right" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "UPARROW" -o "$info" == "UP" ] then last_cmd="left-shift up" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "F1" -o "$info" == "F2" -o "$info" == "F3" -o "$info" == "F4" -o "$info" == "F5" -o "$info" == "F6" -o "$info" == "F7" -o "$info" == "F8" -o "$info" == "F9" -o "$info" == "F10" -o "$info" == "F11" -o "$info" == "F12" ] then last_cmd="left-shift ${info,,}" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null else echo "($line_num) Parse error: Disallowed $cmd $info" fi @@ -258,26 +143,26 @@ while IFS='' read -r line || [[ -n "$line" ]]; do if [ "$info" == "BREAK" -o "$info" == "PAUSE" ] then last_cmd="left-ctrl pause" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "F1" -o "$info" == "F2" -o "$info" == "F3" -o "$info" == "F4" -o "$info" == "F5" -o "$info" == "F6" -o "$info" == "F7" -o "$info" == "F8" -o "$info" == "F9" -o "$info" == "F10" -o "$info" == "F11" -o "$info" == "F12" ] then last_cmd="left-ctrl ${cmd,,}" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "ESC" -o "$info" == "ESCAPE" ] then last_cmd="left-ctrl escape" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "" ] then last_cmd="left-ctrl" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null else last_cmd="left-ctrl ${info,,}" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null fi elif [ "$cmd" == "ALT" ] @@ -286,53 +171,53 @@ while IFS='' read -r line || [[ -n "$line" ]]; do -o "$info" == "F1" -o "$info" == "F2" -o "$info" == "F3" -o "$info" == "F4" -o "$info" == "F5" -o "$info" == "F6" -o "$info" == "F7" -o "$info" == "F8" -o "$info" == "F9" -o "$info" == "F10" -o "$info" == "F11" -o "$info" == "F12" ] then last_cmd="left-alt ${info,,}" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "ESC" -o "$info" == "ESCAPE" ] then last_cmd="left-alt escape" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "" ] then last_cmd="left-alt" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null else last_cmd="left-alt ${info,,}" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null fi elif [ "$cmd" == "ALT-SHIFT" ] then last_cmd="left-shift left-alt" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$cmd" == "CTRL-ALT" ] then if [ "$info" == "BREAK" -o "$info" == "PAUSE" ] then last_cmd="left-ctrl left-alt pause" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "END" -o "$info" == "SPACE" -o "$info" == "TAB" -o "$info" == "DELETE" -o "$info" == "F1" -o "$info" == "F2" -o "$info" == "F3" -o "$info" == "F4" -o "$info" == "F5" -o "$info" == "F6" -o "$info" == "F7" -o "$info" == "F8" -o "$info" == "F9" -o "$info" == "F10" -o "$info" == "F11" -o "$info" == "F12" ] then last_cmd="left-ctrl left-alt ${cmd,,}" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "ESC" -o "$info" == "ESCAPE" ] then last_cmd="left-ctrl left-alt escape" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "" ] then last_cmd="left-ctrl left-alt" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null else last_cmd="left-ctrl left-alt ${info,,}" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null fi elif [ "$cmd" == "CTRL-SHIFT" ] @@ -340,26 +225,26 @@ while IFS='' read -r line || [[ -n "$line" ]]; do if [ "$info" == "BREAK" -o "$info" == "PAUSE" ] then last_cmd="left-ctrl left-shift pause" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "END" -o "$info" == "SPACE" -o "$info" == "TAB" -o "$info" == "DELETE" -o "$info" == "F1" -o "$info" == "F2" -o "$info" == "F3" -o "$info" == "F4" -o "$info" == "F5" -o "$info" == "F6" -o "$info" == "F7" -o "$info" == "F8" -o "$info" == "F9" -o "$info" == "F10" -o "$info" == "F11" -o "$info" == "F12" ] then last_cmd="left-ctrl left-shift ${cmd,,}" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "ESC" -o "$info" == "ESCAPE" ] then last_cmd="left-ctrl left-shift escape" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null elif [ "$info" == "" ] then last_cmd="left-ctrl left-shift" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null else last_cmd="left-ctrl left-shift ${info,,}" - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null fi elif [ "$cmd" == "REPEAT" ] @@ -376,13 +261,13 @@ while IFS='' read -r line || [[ -n "$line" ]]; do if [ "$kbcode" != "" ] then - echo "$kbcode" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$kbcode" | hid-gadget-test $kb > /dev/null fi done else - echo "$last_cmd" | /home/pi/hid-gadget-test $kb > /dev/null + echo "$last_cmd" | hid-gadget-test $kb > /dev/null fi - /home/pi/usleep $defdelay + sleep $defdelay done fi @@ -390,5 +275,5 @@ while IFS='' read -r line || [[ -n "$line" ]]; do then echo "($line_num) Parse error: Unexpected $cmd." fi - /home/pi/usleep $defdelay + sleep $defdelay done < "$1" diff --git a/g_hid.ko b/g_hid.ko deleted file mode 100644 index d8798df..0000000 Binary files a/g_hid.ko and /dev/null differ diff --git a/hid-gadget-test b/hid-gadget-test deleted file mode 100644 index 6100079..0000000 Binary files a/hid-gadget-test and /dev/null differ diff --git a/usleep b/usleep deleted file mode 100644 index 279f662..0000000 Binary files a/usleep and /dev/null differ diff --git a/usleep.c b/usleep.c deleted file mode 100644 index b6735be..0000000 --- a/usleep.c +++ /dev/null @@ -1,5 +0,0 @@ -#include -#include -int main(int argc, char **argv) { - usleep( atol( argv[1] ) ); -}