github.com/amitbet/vnc2video@v0.0.0-20190616012314-9d50b9dab1d9/keys.go (about) 1 package vnc2video 2 3 import "fmt" 4 5 // Key represents a VNC key press. 6 type Key uint32 7 8 //go:generate stringer -type=Key 9 10 // Keys is a slice of Key values. 11 type Keys []Key 12 13 var keymap = map[rune]Key{ 14 '-': Minus, 15 '0': Digit0, 16 '1': Digit1, 17 '2': Digit2, 18 '3': Digit3, 19 '4': Digit4, 20 '5': Digit5, 21 '6': Digit6, 22 '7': Digit7, 23 '8': Digit8, 24 '9': Digit9, 25 } 26 27 // IntToKeys returns Keys that represent the key presses required to type an int. 28 func IntToKeys(v int) Keys { 29 k := Keys{} 30 for _, c := range fmt.Sprintf("%d", v) { 31 k = append(k, keymap[c]) 32 } 33 return k 34 } 35 36 // Latin 1 (byte 3 = 0) 37 // ISO/IEC 8859-1 = Unicode U+0020..U+00FF 38 const ( 39 Space Key = iota + 0x0020 40 Exclaim // exclamation mark 41 QuoteDbl 42 NumberSign 43 Dollar 44 Percent 45 Ampersand 46 Apostrophe 47 ParenLeft 48 ParenRight 49 Asterisk 50 Plus 51 Comma 52 Minus 53 Period 54 Slash 55 Digit0 56 Digit1 57 Digit2 58 Digit3 59 Digit4 60 Digit5 61 Digit6 62 Digit7 63 Digit8 64 Digit9 65 Colon 66 Semicolon 67 Less 68 Equal 69 Greater 70 Question 71 At 72 A 73 B 74 C 75 D 76 E 77 F 78 G 79 H 80 I 81 J 82 K 83 L 84 M 85 N 86 O 87 P 88 Q 89 R 90 S 91 T 92 U 93 V 94 W 95 X 96 Y 97 Z 98 BracketLeft 99 Backslash 100 BracketRight 101 AsciiCircum 102 Underscore 103 Grave 104 SmallA 105 SmallB 106 SmallC 107 SmallD 108 SmallE 109 SmallF 110 SmallG 111 SmallH 112 SmallI 113 SmallJ 114 SmallK 115 SmallL 116 SmallM 117 SmallN 118 SmallO 119 SmallP 120 SmallQ 121 SmallR 122 SmallS 123 SmallT 124 SmallU 125 SmallV 126 SmallW 127 SmallX 128 SmallY 129 SmallZ 130 BraceLeft 131 Bar 132 BraceRight 133 AsciiTilde 134 ) 135 136 const ( 137 BackSpace Key = iota + 0xff08 138 Tab 139 Linefeed 140 Clear 141 _ 142 Return 143 ) 144 145 const ( 146 Pause Key = iota + 0xff13 147 ScrollLock 148 SysReq 149 Escape Key = 0xff1b 150 Delete Key = 0xffff 151 ) 152 153 const ( // Cursor control & motion. 154 Home Key = iota + 0xff50 155 Left 156 Up 157 Right 158 Down 159 PageUp 160 PageDown 161 End 162 Begin 163 ) 164 165 const ( // Misc functions. 166 Select Key = 0xff60 167 Print 168 Execute 169 Insert 170 Undo 171 Redo 172 Menu 173 Find 174 Cancel 175 Help 176 Break 177 ModeSwitch Key = 0xff7e 178 NumLock Key = 0xff7f 179 ) 180 181 const ( // Keypad functions. 182 KeypadSpace Key = 0xff80 183 KeypadTab Key = 0xff89 184 KeypadEnter Key = 0xff8d 185 ) 186 187 const ( // Keypad functions cont. 188 KeypadF1 Key = iota + 0xff91 189 KeypadF2 190 KeypadF3 191 KeypadF4 192 KeypadHome 193 KeypadLeft 194 KeypadUp 195 KeypadRight 196 KeypadDown 197 KeypadPrior 198 KeypadPageUp 199 KeypadNext 200 KeypadPageDown 201 KeypadEnd 202 KeypadBegin 203 KeypadInsert 204 KeypadDelete 205 KeypadMultiply 206 KeypadAdd 207 KeypadSeparator 208 KeypadSubtract 209 KeypadDecimal 210 KeypadDivide 211 Keypad0 212 Keypad1 213 Keypad2 214 Keypad3 215 Keypad4 216 Keypad5 217 Keypad6 218 Keypad7 219 Keypad8 220 Keypad9 221 KeypadEqual Key = 0xffbd 222 ) 223 224 const ( 225 F1 Key = iota + 0xffbe 226 F2 227 F3 228 F4 229 F5 230 F6 231 F7 232 F8 233 F9 234 F10 235 F11 236 F12 237 ) 238 239 const ( 240 ShiftLeft Key = iota + 0xffe1 241 ShiftRight 242 ControlLeft 243 ControlRight 244 CapsLock 245 ShiftLock 246 MetaLeft 247 MetaRight 248 AltLeft 249 AltRight 250 SuperLeft 251 SuperRight 252 HyperLeft 253 HyperRight 254 )