support alpha, numeric, f0..10, punctuation, math keys

master
Bel LaPointe 2023-03-24 13:49:12 -06:00
parent 9ce50f2622
commit 6536daee7f
4 changed files with 77 additions and 38 deletions

View File

@ -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

View File

@ -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{}

View File

@ -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' {

View File

@ -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)
)