Skip to content

Commit 8fea61e

Browse files
authored
Merge pull request #70 from giuseongit/it-keycodes
Add italian keycodes
2 parents a8864af + 4444ab5 commit 8fea61e

File tree

4 files changed

+342
-0
lines changed

4 files changed

+342
-0
lines changed

keyboard.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -709,6 +709,16 @@ func (d *Device) RunMacro(no uint8) error {
709709
k.Keyboard.Down(keycodes.KeyLeftShift)
710710
k.Keyboard.Press(kc ^ keycodes.ShiftMask)
711711
k.Keyboard.Up(keycodes.KeyLeftShift)
712+
case keycodes.TypeNormal | keycodes.AltGrMask:
713+
k.Keyboard.Down(keycodes.KeyRightAlt)
714+
k.Keyboard.Press(kc ^ keycodes.AltGrMask)
715+
k.Keyboard.Up(keycodes.KeyRightAlt)
716+
case keycodes.TypeNormal | keycodes.AltGrMask | keycodes.ShiftMask:
717+
k.Keyboard.Down(keycodes.KeyRightAlt)
718+
k.Keyboard.Down(keycodes.KeyLeftShift)
719+
k.Keyboard.Press(kc ^ keycodes.AltGrMask ^ keycodes.ShiftMask)
720+
k.Keyboard.Up(keycodes.KeyRightAlt)
721+
k.Keyboard.Up(keycodes.KeyLeftShift)
712722
default:
713723
//skip
714724
}

keycodes/italian/keycodes.go

Lines changed: 329 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,329 @@
1+
package italian
2+
3+
import (
4+
"machine/usb/hid/keyboard"
5+
6+
"github.com/sago35/tinygo-keyboard/keycodes"
7+
)
8+
9+
func init() {
10+
keycodes.CharToKeyCodeMap = &CharToKeyCodeMap
11+
}
12+
13+
// for Italian Keyboard
14+
// based on machine/usb/hid/keyboard/keycode.go
15+
const (
16+
KeyA = keycodes.TypeNormal | 0x04
17+
KeyB = keycodes.TypeNormal | 0x05
18+
KeyC = keycodes.TypeNormal | 0x06
19+
KeyD = keycodes.TypeNormal | 0x07
20+
KeyE = keycodes.TypeNormal | 0x08
21+
KeyF = keycodes.TypeNormal | 0x09
22+
KeyG = keycodes.TypeNormal | 0x0A
23+
KeyH = keycodes.TypeNormal | 0x0B
24+
KeyI = keycodes.TypeNormal | 0x0C
25+
KeyJ = keycodes.TypeNormal | 0x0D
26+
KeyK = keycodes.TypeNormal | 0x0E
27+
KeyL = keycodes.TypeNormal | 0x0F
28+
KeyM = keycodes.TypeNormal | 0x10
29+
KeyN = keycodes.TypeNormal | 0x11
30+
KeyO = keycodes.TypeNormal | 0x12
31+
KeyP = keycodes.TypeNormal | 0x13
32+
KeyQ = keycodes.TypeNormal | 0x14
33+
KeyR = keycodes.TypeNormal | 0x15
34+
KeyS = keycodes.TypeNormal | 0x16
35+
KeyT = keycodes.TypeNormal | 0x17
36+
KeyU = keycodes.TypeNormal | 0x18
37+
KeyV = keycodes.TypeNormal | 0x19
38+
KeyW = keycodes.TypeNormal | 0x1A
39+
KeyX = keycodes.TypeNormal | 0x1B
40+
KeyY = keycodes.TypeNormal | 0x1C
41+
KeyZ = keycodes.TypeNormal | 0x1D
42+
Key1 = keycodes.TypeNormal | 0x1E
43+
Key2 = keycodes.TypeNormal | 0x1F
44+
Key3 = keycodes.TypeNormal | 0x20
45+
Key4 = keycodes.TypeNormal | 0x21
46+
Key5 = keycodes.TypeNormal | 0x22
47+
Key6 = keycodes.TypeNormal | 0x23
48+
Key7 = keycodes.TypeNormal | 0x24
49+
Key8 = keycodes.TypeNormal | 0x25
50+
Key9 = keycodes.TypeNormal | 0x26
51+
Key0 = keycodes.TypeNormal | 0x27
52+
KeyEnter = keycodes.TypeNormal | 0x28
53+
KeyEsc = keycodes.TypeNormal | 0x29
54+
KeyBackspace = keycodes.TypeNormal | 0x2A
55+
KeyTab = keycodes.TypeNormal | 0x2B
56+
KeySpace = keycodes.TypeNormal | 0x2C
57+
KeySingleQuote = keycodes.TypeNormal | 0x2D
58+
KeyIGrave = keycodes.TypeNormal | 0x2E
59+
KeyEGrave = keycodes.TypeNormal | 0x2F
60+
KeyPlus = keycodes.TypeNormal | 0x30
61+
KeyUGrave = keycodes.TypeNormal | 0x32
62+
KeyOGrave = keycodes.TypeNormal | 0x33
63+
KeyAGrave = keycodes.TypeNormal | 0x34
64+
KeyBackslash = keycodes.TypeNormal | 0x35
65+
KeyComma = keycodes.TypeNormal | 0x36
66+
KeyPeriod = keycodes.TypeNormal | 0x37
67+
KeyMinus = keycodes.TypeNormal | 0x38
68+
KeyCapsLock = keycodes.TypeNormal | 0x39
69+
KeyF1 = keycodes.TypeNormal | 0x3A
70+
KeyF2 = keycodes.TypeNormal | 0x3B
71+
KeyF3 = keycodes.TypeNormal | 0x3C
72+
KeyF4 = keycodes.TypeNormal | 0x3D
73+
KeyF5 = keycodes.TypeNormal | 0x3E
74+
KeyF6 = keycodes.TypeNormal | 0x3F
75+
KeyF7 = keycodes.TypeNormal | 0x40
76+
KeyF8 = keycodes.TypeNormal | 0x41
77+
KeyF9 = keycodes.TypeNormal | 0x42
78+
KeyF10 = keycodes.TypeNormal | 0x43
79+
KeyF11 = keycodes.TypeNormal | 0x44
80+
KeyF12 = keycodes.TypeNormal | 0x45
81+
KeyPrintscreen = keycodes.TypeNormal | 0x46
82+
KeyScrollLock = keycodes.TypeNormal | 0x47
83+
KeyPause = keycodes.TypeNormal | 0x48
84+
KeyInsert = keycodes.TypeNormal | 0x49
85+
KeyHome = keycodes.TypeNormal | 0x4A
86+
KeyPageUp = keycodes.TypeNormal | 0x4B
87+
KeyDelete = keycodes.TypeNormal | 0x4C
88+
KeyEnd = keycodes.TypeNormal | 0x4D
89+
KeyPageDown = keycodes.TypeNormal | 0x4E
90+
KeyRight = keycodes.TypeNormal | 0x4F
91+
KeyLeft = keycodes.TypeNormal | 0x50
92+
KeyDown = keycodes.TypeNormal | 0x51
93+
KeyUp = keycodes.TypeNormal | 0x52
94+
KeyNumLock = keycodes.TypeNormal | 0x53
95+
KeypadSlash = keycodes.TypeNormal | 0x54
96+
KeypadAsterisk = keycodes.TypeNormal | 0x55
97+
KeypadMinus = keycodes.TypeNormal | 0x56
98+
KeypadPlus = keycodes.TypeNormal | 0x57
99+
KeypadEnter = keycodes.TypeNormal | 0x58
100+
Keypad1 = keycodes.TypeNormal | 0x59
101+
Keypad2 = keycodes.TypeNormal | 0x5A
102+
Keypad3 = keycodes.TypeNormal | 0x5B
103+
Keypad4 = keycodes.TypeNormal | 0x5C
104+
Keypad5 = keycodes.TypeNormal | 0x5D
105+
Keypad6 = keycodes.TypeNormal | 0x5E
106+
Keypad7 = keycodes.TypeNormal | 0x5F
107+
Keypad8 = keycodes.TypeNormal | 0x60
108+
Keypad9 = keycodes.TypeNormal | 0x61
109+
Keypad0 = keycodes.TypeNormal | 0x62
110+
KeypadPeriod = keycodes.TypeNormal | 0x63
111+
KeyLessThan = keycodes.TypeNormal | 0x64
112+
KeyMenu = keycodes.TypeNormal | 0x65
113+
KeyF13 = keycodes.TypeNormal | 0x68
114+
KeyF14 = keycodes.TypeNormal | 0x69
115+
KeyF15 = keycodes.TypeNormal | 0x6A
116+
KeyF16 = keycodes.TypeNormal | 0x6B
117+
KeyF17 = keycodes.TypeNormal | 0x6C
118+
KeyF18 = keycodes.TypeNormal | 0x6D
119+
KeyF19 = keycodes.TypeNormal | 0x6E
120+
KeyF20 = keycodes.TypeNormal | 0x6F
121+
KeyF21 = keycodes.TypeNormal | 0x70
122+
KeyF22 = keycodes.TypeNormal | 0x71
123+
KeyF23 = keycodes.TypeNormal | 0x72
124+
KeyF24 = keycodes.TypeNormal | 0x73
125+
KeyLeftCtrl = keycodes.TypeNormal | 0xE0
126+
KeyLeftShift = keycodes.TypeNormal | 0xE1
127+
KeyLeftAlt = keycodes.TypeNormal | 0xE2
128+
KeyWindows = keycodes.TypeNormal | 0xE3
129+
KeyRightCtrl = keycodes.TypeNormal | 0xE4
130+
KeyRightShift = keycodes.TypeNormal | 0xE5
131+
KeyRightAlt = keycodes.TypeNormal | 0xE6
132+
)
133+
134+
const (
135+
KeyMediaBrightnessUp = keycodes.KeyMediaBrightnessUp
136+
KeyMediaBrightnessDown = keycodes.KeyMediaBrightnessDown
137+
KeyMediaPlay = keycodes.KeyMediaPlay
138+
KeyMediaPause = keycodes.KeyMediaPause
139+
KeyMediaRecord = keycodes.KeyMediaRecord
140+
KeyMediaFastForward = keycodes.KeyMediaFastForward
141+
KeyMediaRewind = keycodes.KeyMediaRewind
142+
KeyMediaNextTrack = keycodes.KeyMediaNextTrack
143+
KeyMediaPrevTrack = keycodes.KeyMediaPrevTrack
144+
KeyMediaStop = keycodes.KeyMediaStop
145+
KeyMediaEject = keycodes.KeyMediaEject
146+
KeyMediaRandomPlay = keycodes.KeyMediaRandomPlay
147+
KeyMediaPlayPause = keycodes.KeyMediaPlayPause
148+
KeyMediaPlaySkip = keycodes.KeyMediaPlaySkip
149+
KeyMediaMute = keycodes.KeyMediaMute
150+
KeyMediaVolumeInc = keycodes.KeyMediaVolumeInc
151+
KeyMediaVolumeDec = keycodes.KeyMediaVolumeDec
152+
)
153+
154+
const (
155+
MouseLeft = keycodes.MouseLeft
156+
MouseRight = keycodes.MouseRight
157+
MouseMiddle = keycodes.MouseMiddle
158+
MouseBack = keycodes.MouseBack
159+
MouseForward = keycodes.MouseForward
160+
WheelDown = keycodes.WheelDown
161+
WheelUp = keycodes.WheelUp
162+
)
163+
164+
const (
165+
KeyMod0 = keycodes.KeyMod0
166+
KeyMod1 = keycodes.KeyMod1
167+
KeyMod2 = keycodes.KeyMod2
168+
KeyMod3 = keycodes.KeyMod3
169+
KeyMod4 = keycodes.KeyMod4
170+
KeyMod5 = keycodes.KeyMod5
171+
172+
KeyTo0 = keycodes.KeyTo0
173+
KeyTo1 = keycodes.KeyTo1
174+
KeyTo2 = keycodes.KeyTo2
175+
KeyTo3 = keycodes.KeyTo3
176+
KeyTo4 = keycodes.KeyTo4
177+
KeyTo5 = keycodes.KeyTo5
178+
)
179+
180+
const (
181+
KeyMacro0 = keycodes.KeyMacro0
182+
KeyMacro1 = keycodes.KeyMacro1
183+
KeyMacro2 = keycodes.KeyMacro2
184+
KeyMacro3 = keycodes.KeyMacro3
185+
KeyMacro4 = keycodes.KeyMacro4
186+
KeyMacro5 = keycodes.KeyMacro5
187+
KeyMacro6 = keycodes.KeyMacro6
188+
KeyMacro7 = keycodes.KeyMacro7
189+
KeyMacro8 = keycodes.KeyMacro8
190+
KeyMacro9 = keycodes.KeyMacro9
191+
KeyMacro10 = keycodes.KeyMacro10
192+
KeyMacro11 = keycodes.KeyMacro11
193+
KeyMacro12 = keycodes.KeyMacro12
194+
KeyMacro13 = keycodes.KeyMacro13
195+
KeyMacro14 = keycodes.KeyMacro14
196+
KeyMacro15 = keycodes.KeyMacro15
197+
)
198+
199+
var CharToKeyCodeMap = [256]keyboard.Keycode{
200+
keyboard.ASCII00,
201+
keyboard.ASCII01,
202+
keyboard.ASCII02,
203+
keyboard.ASCII03,
204+
keyboard.ASCII04,
205+
keyboard.ASCII05,
206+
keyboard.ASCII06,
207+
keyboard.ASCII07,
208+
keyboard.ASCII08,
209+
keyboard.ASCII09,
210+
keyboard.ASCII0A,
211+
keyboard.ASCII0B,
212+
keyboard.ASCII0C,
213+
keyboard.ASCII0D,
214+
keyboard.ASCII0E,
215+
keyboard.ASCII0F,
216+
keyboard.ASCII10,
217+
keyboard.ASCII11,
218+
keyboard.ASCII12,
219+
keyboard.ASCII13,
220+
keyboard.ASCII14,
221+
keyboard.ASCII15,
222+
keyboard.ASCII16,
223+
keyboard.ASCII17,
224+
keyboard.ASCII18,
225+
keyboard.ASCII19,
226+
keyboard.ASCII1A,
227+
keyboard.ASCII1B,
228+
keyboard.ASCII1C,
229+
keyboard.ASCII1D,
230+
keyboard.ASCII1E,
231+
keyboard.ASCII1F,
232+
233+
KeySpace, // 32 SPACE
234+
Key1 | keycodes.ShiftMask, // 33 !
235+
Key2 | keycodes.ShiftMask, // 34 "
236+
KeyAGrave | keycodes.AltGrMask, // 35 #
237+
Key4 | keycodes.ShiftMask, // 36 $
238+
Key5 | keycodes.ShiftMask, // 37 %
239+
Key6 | keycodes.ShiftMask, // 38 &
240+
KeySingleQuote, // 39 '
241+
Key8 | keycodes.ShiftMask, // 40 (
242+
Key9 | keycodes.ShiftMask, // 41 )
243+
KeyPlus | keycodes.ShiftMask, // 42 *
244+
KeyPlus, // 43 +
245+
KeyComma, // 44 ,
246+
KeyMinus, // 45 -
247+
KeyPeriod, // 46 .
248+
Key7 | keycodes.ShiftMask, // 47 /
249+
Key0, // 48 0
250+
Key1, // 49 1
251+
Key2, // 50 2
252+
Key3, // 51 3
253+
Key4, // 52 4
254+
Key5, // 53 5
255+
Key6, // 54 6
256+
Key7, // 55 7
257+
Key8, // 55 8
258+
Key9, // 57 9
259+
KeyPeriod | keycodes.ShiftMask, // 58 :
260+
KeyComma | keycodes.ShiftMask, // 59 ;
261+
KeyLessThan, // 60 <
262+
Key0 | keycodes.ShiftMask, // 61 =
263+
KeyLessThan | keycodes.ShiftMask, // 62 >
264+
KeySingleQuote | keycodes.ShiftMask, // 63 ?
265+
KeyOGrave | keycodes.AltGrMask, // 64 @
266+
KeyA | keycodes.ShiftMask, // 65 A
267+
KeyB | keycodes.ShiftMask, // 66 B
268+
KeyC | keycodes.ShiftMask, // 67 C
269+
KeyD | keycodes.ShiftMask, // 68 D
270+
KeyE | keycodes.ShiftMask, // 69 E
271+
KeyF | keycodes.ShiftMask, // 70 F
272+
KeyG | keycodes.ShiftMask, // 71 G
273+
KeyH | keycodes.ShiftMask, // 72 H
274+
KeyI | keycodes.ShiftMask, // 73 I
275+
KeyJ | keycodes.ShiftMask, // 74 J
276+
KeyK | keycodes.ShiftMask, // 75 K
277+
KeyL | keycodes.ShiftMask, // 76 L
278+
KeyM | keycodes.ShiftMask, // 77 M
279+
KeyN | keycodes.ShiftMask, // 78 N
280+
KeyO | keycodes.ShiftMask, // 79 O
281+
KeyP | keycodes.ShiftMask, // 80 P
282+
KeyQ | keycodes.ShiftMask, // 81 Q
283+
KeyR | keycodes.ShiftMask, // 82 R
284+
KeyS | keycodes.ShiftMask, // 83 S
285+
KeyT | keycodes.ShiftMask, // 84 T
286+
KeyU | keycodes.ShiftMask, // 85 U
287+
KeyV | keycodes.ShiftMask, // 86 V
288+
KeyW | keycodes.ShiftMask, // 87 W
289+
KeyX | keycodes.ShiftMask, // 88 X
290+
KeyY | keycodes.ShiftMask, // 89 Y
291+
KeyZ | keycodes.ShiftMask, // 90 Z
292+
KeyEGrave | keycodes.AltGrMask, // 91 [
293+
KeyBackslash, // 92 \
294+
KeyPlus | keycodes.AltGrMask, // 93 ]
295+
KeyIGrave | keycodes.ShiftMask, // 94 ^
296+
KeyMinus | keycodes.ShiftMask, // 95 _
297+
KeySingleQuote | keycodes.AltGrMask, // 96 `
298+
KeyA, // 97 a
299+
KeyB, // 98 b
300+
KeyC, // 99 c
301+
KeyD, // 100 d
302+
KeyE, // 101 e
303+
KeyF, // 102 f
304+
KeyG, // 103 g
305+
KeyH, // 104 h
306+
KeyI, // 105 i
307+
KeyJ, // 106 j
308+
KeyK, // 107 k
309+
KeyL, // 108 l
310+
KeyM, // 109 m
311+
KeyN, // 110 n
312+
KeyO, // 111 o
313+
KeyP, // 112 p
314+
KeyQ, // 113 q
315+
KeyR, // 114 r
316+
KeyS, // 115 s
317+
KeyT, // 116 t
318+
KeyU, // 117 u
319+
KeyV, // 118 v
320+
KeyW, // 119 w
321+
KeyX, // 120 x
322+
KeyY, // 121 y
323+
KeyZ, // 122 z
324+
KeyEGrave | keycodes.ShiftMask | keycodes.AltGrMask, // 123 {
325+
KeyBackslash | keycodes.ShiftMask, // 124 |
326+
KeyPlus | keycodes.ShiftMask | keycodes.AltGrMask, // 125 }
327+
KeyIGrave | keycodes.AltGrMask, // 126 ~
328+
KeyDelete, // 127 DEL
329+
}

keycodes/japanese/keycodes.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ const (
135135
KeyWindows = keycodes.TypeNormal | 0xE3
136136
KeyRightCtrl = keycodes.TypeNormal | 0xE4
137137
KeyRightShift = keycodes.TypeNormal | 0xE5
138+
KeyRightAlt = keycodes.TypeNormal | 0xE6
138139
)
139140

140141
const (

keycodes/keycodes.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ const (
4747
KeyWindows = TypeNormal | 0xE3
4848
KeyRightCtrl = TypeNormal | 0xE4
4949
KeyRightShift = TypeNormal | 0xE5
50+
KeyRightAlt = TypeNormal | 0xE6
5051

5152
KeyH = TypeNormal | 0x0B
5253
KeyBackspace = TypeNormal | 0x2A
@@ -95,6 +96,7 @@ const (
9596
// from machine/usb/hid/keyboard
9697
const (
9798
ShiftMask = 0x0400
99+
AltGrMask = 0x0800
98100
)
99101

100102
const (

0 commit comments

Comments
 (0)