diff --git a/README.md b/README.md index 095037b..1204afa 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,9 @@ Think Dug's Twitch Chat Plays Each client needs 1 executable and 1 env file with a unique set of buttons +> 10 buttons per player +> `go doc key Undef | grep Key | grep -v Undef | wc -l` total (54) + The server cannot be a client because math. Maybe a VM on the client as a server would work tho. ```bash diff --git a/src/device/output/key/char.go b/src/device/output/key/char.go index 99caff5..4185559 100644 --- a/src/device/output/key/char.go +++ b/src/device/output/key/char.go @@ -38,6 +38,24 @@ var ( '8': N8, '9': N9, '0': N0, + '!': F1, + '@': F2, + '#': F3, + '$': F4, + '%': F5, + '^': F6, + '&': F7, + '*': F8, + '(': F9, + ')': F10, + ',': PComma, + '.': PPeriod, + '/': PFSlash, + ';': PSemicolon, + '[': POpenBracket, + ']': PCloseBracket, + '-': PMinus, + '=': PEqual, } keyToChar = func() map[Key]byte { result := map[Key]byte{} diff --git a/src/device/output/key/char_test.go b/src/device/output/key/char_test.go index 70ef594..b6ec4b8 100644 --- a/src/device/output/key/char_test.go +++ b/src/device/output/key/char_test.go @@ -12,7 +12,7 @@ func TestFromChar(t *testing.T) { if got := FromChar('A'); got != A { t.Error(got) } - if got := FromChar('!'); got != Undef { + if got := FromChar(byte(0)); got != Undef { t.Error(got) } if got := ToChar(A); got != 'a' { diff --git a/src/device/output/key/keys.go b/src/device/output/key/keys.go index 617c270..254750c 100644 --- a/src/device/output/key/keys.go +++ b/src/device/output/key/keys.go @@ -5,41 +5,59 @@ import "github.com/micmonay/keybd_event" type Key int const ( - Undef = Key(keybd_event.VK_SP11) - A = Key(keybd_event.VK_A) - B = Key(keybd_event.VK_B) - C = Key(keybd_event.VK_C) - D = Key(keybd_event.VK_D) - E = Key(keybd_event.VK_E) - F = Key(keybd_event.VK_F) - G = Key(keybd_event.VK_G) - H = Key(keybd_event.VK_H) - I = Key(keybd_event.VK_I) - J = Key(keybd_event.VK_J) - K = Key(keybd_event.VK_K) - L = Key(keybd_event.VK_L) - M = Key(keybd_event.VK_M) - N = Key(keybd_event.VK_N) - O = Key(keybd_event.VK_O) - P = Key(keybd_event.VK_P) - Q = Key(keybd_event.VK_Q) - R = Key(keybd_event.VK_R) - S = Key(keybd_event.VK_S) - T = Key(keybd_event.VK_T) - U = Key(keybd_event.VK_U) - V = Key(keybd_event.VK_V) - W = Key(keybd_event.VK_W) - X = Key(keybd_event.VK_X) - Y = Key(keybd_event.VK_Y) - Z = Key(keybd_event.VK_Z) - N1 = Key(keybd_event.VK_1) - N2 = Key(keybd_event.VK_2) - N3 = Key(keybd_event.VK_3) - N4 = Key(keybd_event.VK_4) - N5 = Key(keybd_event.VK_5) - N6 = Key(keybd_event.VK_6) - N7 = Key(keybd_event.VK_7) - N8 = Key(keybd_event.VK_8) - N9 = Key(keybd_event.VK_9) - N0 = Key(keybd_event.VK_0) + Undef = Key(keybd_event.VK_SP11) + A = Key(keybd_event.VK_A) + B = Key(keybd_event.VK_B) + C = Key(keybd_event.VK_C) + D = Key(keybd_event.VK_D) + E = Key(keybd_event.VK_E) + F = Key(keybd_event.VK_F) + G = Key(keybd_event.VK_G) + H = Key(keybd_event.VK_H) + I = Key(keybd_event.VK_I) + J = Key(keybd_event.VK_J) + K = Key(keybd_event.VK_K) + L = Key(keybd_event.VK_L) + M = Key(keybd_event.VK_M) + N = Key(keybd_event.VK_N) + O = Key(keybd_event.VK_O) + P = Key(keybd_event.VK_P) + Q = Key(keybd_event.VK_Q) + R = Key(keybd_event.VK_R) + S = Key(keybd_event.VK_S) + T = Key(keybd_event.VK_T) + U = Key(keybd_event.VK_U) + V = Key(keybd_event.VK_V) + W = Key(keybd_event.VK_W) + X = Key(keybd_event.VK_X) + Y = Key(keybd_event.VK_Y) + Z = Key(keybd_event.VK_Z) + N1 = Key(keybd_event.VK_1) + N2 = Key(keybd_event.VK_2) + N3 = Key(keybd_event.VK_3) + N4 = Key(keybd_event.VK_4) + N5 = Key(keybd_event.VK_5) + N6 = Key(keybd_event.VK_6) + N7 = Key(keybd_event.VK_7) + N8 = Key(keybd_event.VK_8) + N9 = Key(keybd_event.VK_9) + N0 = Key(keybd_event.VK_0) + F1 = Key(keybd_event.VK_F1) + F2 = Key(keybd_event.VK_F2) + F3 = Key(keybd_event.VK_F3) + F4 = Key(keybd_event.VK_F4) + F5 = Key(keybd_event.VK_F5) + F6 = Key(keybd_event.VK_F6) + F7 = Key(keybd_event.VK_F7) + F8 = Key(keybd_event.VK_F8) + F9 = Key(keybd_event.VK_F9) + F10 = Key(keybd_event.VK_F10) + PComma = Key(keybd_event.VK_COMMA) + PPeriod = Key(keybd_event.VK_Period) + PFSlash = Key(keybd_event.VK_BACKSLASH) + PSemicolon = Key(keybd_event.VK_SEMICOLON) + POpenBracket = Key(keybd_event.VK_LeftBracket) + PCloseBracket = Key(keybd_event.VK_RightBracket) + PMinus = Key(keybd_event.VK_MINUS) + PEqual = Key(keybd_event.VK_EQUAL) )