kekw

Dependencies:   mbed C12832_lcd MMA7660

Committer:
gri
Date:
Sun Jan 19 14:57:41 2020 +0000
Revision:
2:b07d155d316c
KEKw

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gri 2:b07d155d316c 1 /* asciihid.h */
gri 2:b07d155d316c 2 /* ASCII to HID Keyboard lookup table */
gri 2:b07d155d316c 3 /* Copyright (c) Phil Wright 2008 */
gri 2:b07d155d316c 4
gri 2:b07d155d316c 5 #ifndef HIDTABLE_H
gri 2:b07d155d316c 6 #define HIDTABLE_H
gri 2:b07d155d316c 7
gri 2:b07d155d316c 8 /* Default is UK keyboard layout */
gri 2:b07d155d316c 9 /* #define US_KEYBOARD */
gri 2:b07d155d316c 10
gri 2:b07d155d316c 11 /* Modifiers */
gri 2:b07d155d316c 12 #define SHIFT (1<<1)
gri 2:b07d155d316c 13
gri 2:b07d155d316c 14 typedef struct {
gri 2:b07d155d316c 15 unsigned char usage;
gri 2:b07d155d316c 16 unsigned char modifier;
gri 2:b07d155d316c 17 } KEYMAP;
gri 2:b07d155d316c 18
gri 2:b07d155d316c 19 #ifdef US_KEYBOARD
gri 2:b07d155d316c 20 /* US keyboard (as HID standard) */
gri 2:b07d155d316c 21 #define KEYMAP_SIZE (128)
gri 2:b07d155d316c 22 const KEYMAP keymap[KEYMAP_SIZE] = {
gri 2:b07d155d316c 23 {0, 0}, /* NUL */
gri 2:b07d155d316c 24 {0, 0}, /* SOH */
gri 2:b07d155d316c 25 {0, 0}, /* STX */
gri 2:b07d155d316c 26 {0, 0}, /* ETX */
gri 2:b07d155d316c 27 {0, 0}, /* EOT */
gri 2:b07d155d316c 28 {0, 0}, /* ENQ */
gri 2:b07d155d316c 29 {0, 0}, /* ACK */
gri 2:b07d155d316c 30 {0, 0}, /* BEL */
gri 2:b07d155d316c 31 {0x2a, 0}, /* BS */ /* Keyboard Delete (Backspace) */
gri 2:b07d155d316c 32 {0x2b, 0}, /* TAB */ /* Keyboard Tab */
gri 2:b07d155d316c 33 {0x28, 0}, /* LF */ /* Keyboard Return (Enter) */
gri 2:b07d155d316c 34 {0, 0}, /* VT */
gri 2:b07d155d316c 35 {0, 0}, /* FF */
gri 2:b07d155d316c 36 {0, 0}, /* CR */
gri 2:b07d155d316c 37 {0, 0}, /* SO */
gri 2:b07d155d316c 38 {0, 0}, /* SI */
gri 2:b07d155d316c 39 {0, 0}, /* DEL */
gri 2:b07d155d316c 40 {0, 0}, /* DC1 */
gri 2:b07d155d316c 41 {0, 0}, /* DC2 */
gri 2:b07d155d316c 42 {0, 0}, /* DC3 */
gri 2:b07d155d316c 43 {0, 0}, /* DC4 */
gri 2:b07d155d316c 44 {0, 0}, /* NAK */
gri 2:b07d155d316c 45 {0, 0}, /* SYN */
gri 2:b07d155d316c 46 {0, 0}, /* ETB */
gri 2:b07d155d316c 47 {0, 0}, /* CAN */
gri 2:b07d155d316c 48 {0, 0}, /* EM */
gri 2:b07d155d316c 49 {0, 0}, /* SUB */
gri 2:b07d155d316c 50 {0, 0}, /* ESC */
gri 2:b07d155d316c 51 {0, 0}, /* FS */
gri 2:b07d155d316c 52 {0, 0}, /* GS */
gri 2:b07d155d316c 53 {0, 0}, /* RS */
gri 2:b07d155d316c 54 {0, 0}, /* US */
gri 2:b07d155d316c 55 {0x2c, 0}, /* */
gri 2:b07d155d316c 56 {0x1e, SHIFT}, /* ! */
gri 2:b07d155d316c 57 {0x34, SHIFT}, /* " */
gri 2:b07d155d316c 58 {0x20, SHIFT}, /* # */
gri 2:b07d155d316c 59 {0x21, SHIFT}, /* $ */
gri 2:b07d155d316c 60 {0x22, SHIFT}, /* % */
gri 2:b07d155d316c 61 {0x24, SHIFT}, /* & */
gri 2:b07d155d316c 62 {0x34, 0}, /* ' */
gri 2:b07d155d316c 63 {0x26, SHIFT}, /* ( */
gri 2:b07d155d316c 64 {0x27, SHIFT}, /* ) */
gri 2:b07d155d316c 65 {0x25, SHIFT}, /* * */
gri 2:b07d155d316c 66 {0x2e, SHIFT}, /* + */
gri 2:b07d155d316c 67 {0x36, 0}, /* , */
gri 2:b07d155d316c 68 {0x2d, 0}, /* - */
gri 2:b07d155d316c 69 {0x37, 0}, /* . */
gri 2:b07d155d316c 70 {0x38, 0}, /* / */
gri 2:b07d155d316c 71 {0x27, 0}, /* 0 */
gri 2:b07d155d316c 72 {0x1e, 0}, /* 1 */
gri 2:b07d155d316c 73 {0x1f, 0}, /* 2 */
gri 2:b07d155d316c 74 {0x20, 0}, /* 3 */
gri 2:b07d155d316c 75 {0x21, 0}, /* 4 */
gri 2:b07d155d316c 76 {0x22, 0}, /* 5 */
gri 2:b07d155d316c 77 {0x23, 0}, /* 6 */
gri 2:b07d155d316c 78 {0x24, 0}, /* 7 */
gri 2:b07d155d316c 79 {0x25, 0}, /* 8 */
gri 2:b07d155d316c 80 {0x26, 0}, /* 9 */
gri 2:b07d155d316c 81 {0x33, SHIFT}, /* : */
gri 2:b07d155d316c 82 {0x33, 0}, /* ; */
gri 2:b07d155d316c 83 {0x36, SHIFT}, /* < */
gri 2:b07d155d316c 84 {0x2e, 0}, /* = */
gri 2:b07d155d316c 85 {0x37, SHIFT}, /* > */
gri 2:b07d155d316c 86 {0x38, SHIFT}, /* ? */
gri 2:b07d155d316c 87 {0x1f, SHIFT}, /* @ */
gri 2:b07d155d316c 88 {0x04, SHIFT}, /* A */
gri 2:b07d155d316c 89 {0x05, SHIFT}, /* B */
gri 2:b07d155d316c 90 {0x06, SHIFT}, /* C */
gri 2:b07d155d316c 91 {0x07, SHIFT}, /* D */
gri 2:b07d155d316c 92 {0x08, SHIFT}, /* E */
gri 2:b07d155d316c 93 {0x09, SHIFT}, /* F */
gri 2:b07d155d316c 94 {0x0a, SHIFT}, /* G */
gri 2:b07d155d316c 95 {0x0b, SHIFT}, /* H */
gri 2:b07d155d316c 96 {0x0c, SHIFT}, /* I */
gri 2:b07d155d316c 97 {0x0d, SHIFT}, /* J */
gri 2:b07d155d316c 98 {0x0e, SHIFT}, /* K */
gri 2:b07d155d316c 99 {0x0f, SHIFT}, /* L */
gri 2:b07d155d316c 100 {0x10, SHIFT}, /* M */
gri 2:b07d155d316c 101 {0x11, SHIFT}, /* N */
gri 2:b07d155d316c 102 {0x12, SHIFT}, /* O */
gri 2:b07d155d316c 103 {0x13, SHIFT}, /* P */
gri 2:b07d155d316c 104 {0x14, SHIFT}, /* Q */
gri 2:b07d155d316c 105 {0x15, SHIFT}, /* R */
gri 2:b07d155d316c 106 {0x16, SHIFT}, /* S */
gri 2:b07d155d316c 107 {0x17, SHIFT}, /* T */
gri 2:b07d155d316c 108 {0x18, SHIFT}, /* U */
gri 2:b07d155d316c 109 {0x19, SHIFT}, /* V */
gri 2:b07d155d316c 110 {0x1a, SHIFT}, /* W */
gri 2:b07d155d316c 111 {0x1b, SHIFT}, /* X */
gri 2:b07d155d316c 112 {0x1c, SHIFT}, /* Y */
gri 2:b07d155d316c 113 {0x1d, SHIFT}, /* Z */
gri 2:b07d155d316c 114 {0x2f, 0}, /* [ */
gri 2:b07d155d316c 115 {0x31, 0}, /* \ */
gri 2:b07d155d316c 116 {0x30, 0}, /* ] */
gri 2:b07d155d316c 117 {0x23, SHIFT}, /* ^ */
gri 2:b07d155d316c 118 {0x2d, SHIFT}, /* _ */
gri 2:b07d155d316c 119 {0x35, 0}, /* ` */
gri 2:b07d155d316c 120 {0x04, 0}, /* a */
gri 2:b07d155d316c 121 {0x05, 0}, /* b */
gri 2:b07d155d316c 122 {0x06, 0}, /* c */
gri 2:b07d155d316c 123 {0x07, 0}, /* d */
gri 2:b07d155d316c 124 {0x08, 0}, /* e */
gri 2:b07d155d316c 125 {0x09, 0}, /* f */
gri 2:b07d155d316c 126 {0x0a, 0}, /* g */
gri 2:b07d155d316c 127 {0x0b, 0}, /* h */
gri 2:b07d155d316c 128 {0x0c, 0}, /* i */
gri 2:b07d155d316c 129 {0x0d, 0}, /* j */
gri 2:b07d155d316c 130 {0x0e, 0}, /* k */
gri 2:b07d155d316c 131 {0x0f, 0}, /* l */
gri 2:b07d155d316c 132 {0x10, 0}, /* m */
gri 2:b07d155d316c 133 {0x11, 0}, /* n */
gri 2:b07d155d316c 134 {0x12, 0}, /* o */
gri 2:b07d155d316c 135 {0x13, 0}, /* p */
gri 2:b07d155d316c 136 {0x14, 0}, /* q */
gri 2:b07d155d316c 137 {0x15, 0}, /* r */
gri 2:b07d155d316c 138 {0x16, 0}, /* s */
gri 2:b07d155d316c 139 {0x17, 0}, /* t */
gri 2:b07d155d316c 140 {0x18, 0}, /* u */
gri 2:b07d155d316c 141 {0x19, 0}, /* v */
gri 2:b07d155d316c 142 {0x1a, 0}, /* w */
gri 2:b07d155d316c 143 {0x1b, 0}, /* x */
gri 2:b07d155d316c 144 {0x1c, 0}, /* y */
gri 2:b07d155d316c 145 {0x1d, 0}, /* z */
gri 2:b07d155d316c 146 {0x2f, SHIFT}, /* { */
gri 2:b07d155d316c 147 {0x31, SHIFT}, /* | */
gri 2:b07d155d316c 148 {0x30, SHIFT}, /* } */
gri 2:b07d155d316c 149 {0x35, SHIFT}, /* ~ */
gri 2:b07d155d316c 150 {0,0}, /* DEL */
gri 2:b07d155d316c 151 };
gri 2:b07d155d316c 152
gri 2:b07d155d316c 153 #else
gri 2:b07d155d316c 154 /* UK keyboard */
gri 2:b07d155d316c 155 #define KEYMAP_SIZE (128)
gri 2:b07d155d316c 156 const KEYMAP keymap[KEYMAP_SIZE] = {
gri 2:b07d155d316c 157 {0, 0}, /* NUL */
gri 2:b07d155d316c 158 {0, 0}, /* SOH */
gri 2:b07d155d316c 159 {0, 0}, /* STX */
gri 2:b07d155d316c 160 {0, 0}, /* ETX */
gri 2:b07d155d316c 161 {0, 0}, /* EOT */
gri 2:b07d155d316c 162 {0, 0}, /* ENQ */
gri 2:b07d155d316c 163 {0, 0}, /* ACK */
gri 2:b07d155d316c 164 {0, 0}, /* BEL */
gri 2:b07d155d316c 165 {0x2a, 0}, /* BS */ /* Keyboard Delete (Backspace) */
gri 2:b07d155d316c 166 {0x2b, 0}, /* TAB */ /* Keyboard Tab */
gri 2:b07d155d316c 167 {0x28, 0}, /* LF */ /* Keyboard Return (Enter) */
gri 2:b07d155d316c 168 {0, 0}, /* VT */
gri 2:b07d155d316c 169 {0, 0}, /* FF */
gri 2:b07d155d316c 170 {0, 0}, /* CR */
gri 2:b07d155d316c 171 {0, 0}, /* SO */
gri 2:b07d155d316c 172 {0, 0}, /* SI */
gri 2:b07d155d316c 173 {0, 0}, /* DEL */
gri 2:b07d155d316c 174 {0, 0}, /* DC1 */
gri 2:b07d155d316c 175 {0, 0}, /* DC2 */
gri 2:b07d155d316c 176 {0, 0}, /* DC3 */
gri 2:b07d155d316c 177 {0, 0}, /* DC4 */
gri 2:b07d155d316c 178 {0, 0}, /* NAK */
gri 2:b07d155d316c 179 {0, 0}, /* SYN */
gri 2:b07d155d316c 180 {0, 0}, /* ETB */
gri 2:b07d155d316c 181 {0, 0}, /* CAN */
gri 2:b07d155d316c 182 {0, 0}, /* EM */
gri 2:b07d155d316c 183 {0, 0}, /* SUB */
gri 2:b07d155d316c 184 {0, 0}, /* ESC */
gri 2:b07d155d316c 185 {0, 0}, /* FS */
gri 2:b07d155d316c 186 {0, 0}, /* GS */
gri 2:b07d155d316c 187 {0, 0}, /* RS */
gri 2:b07d155d316c 188 {0, 0}, /* US */
gri 2:b07d155d316c 189 {0x2c, 0}, /* */
gri 2:b07d155d316c 190 {0x1e, SHIFT}, /* ! */
gri 2:b07d155d316c 191 {0x1f, SHIFT}, /* " */
gri 2:b07d155d316c 192 {0x32, 0}, /* # */
gri 2:b07d155d316c 193 {0x21, SHIFT}, /* $ */
gri 2:b07d155d316c 194 {0x22, SHIFT}, /* % */
gri 2:b07d155d316c 195 {0x24, SHIFT}, /* & */
gri 2:b07d155d316c 196 {0x34, 0}, /* ' */
gri 2:b07d155d316c 197 {0x26, SHIFT}, /* ( */
gri 2:b07d155d316c 198 {0x27, SHIFT}, /* ) */
gri 2:b07d155d316c 199 {0x25, SHIFT}, /* * */
gri 2:b07d155d316c 200 {0x2e, SHIFT}, /* + */
gri 2:b07d155d316c 201 {0x36, 0}, /* , */
gri 2:b07d155d316c 202 {0x2d, 0}, /* - */
gri 2:b07d155d316c 203 {0x37, 0}, /* . */
gri 2:b07d155d316c 204 {0x38, 0}, /* / */
gri 2:b07d155d316c 205 {0x27, 0}, /* 0 */
gri 2:b07d155d316c 206 {0x1e, 0}, /* 1 */
gri 2:b07d155d316c 207 {0x1f, 0}, /* 2 */
gri 2:b07d155d316c 208 {0x20, 0}, /* 3 */
gri 2:b07d155d316c 209 {0x21, 0}, /* 4 */
gri 2:b07d155d316c 210 {0x22, 0}, /* 5 */
gri 2:b07d155d316c 211 {0x23, 0}, /* 6 */
gri 2:b07d155d316c 212 {0x24, 0}, /* 7 */
gri 2:b07d155d316c 213 {0x25, 0}, /* 8 */
gri 2:b07d155d316c 214 {0x26, 0}, /* 9 */
gri 2:b07d155d316c 215 {0x33, SHIFT}, /* : */
gri 2:b07d155d316c 216 {0x33, 0}, /* ; */
gri 2:b07d155d316c 217 {0x36, SHIFT}, /* < */
gri 2:b07d155d316c 218 {0x2e, 0}, /* = */
gri 2:b07d155d316c 219 {0x37, SHIFT}, /* > */
gri 2:b07d155d316c 220 {0x38, SHIFT}, /* ? */
gri 2:b07d155d316c 221 {0x34, SHIFT}, /* @ */
gri 2:b07d155d316c 222 {0x04, SHIFT}, /* A */
gri 2:b07d155d316c 223 {0x05, SHIFT}, /* B */
gri 2:b07d155d316c 224 {0x06, SHIFT}, /* C */
gri 2:b07d155d316c 225 {0x07, SHIFT}, /* D */
gri 2:b07d155d316c 226 {0x08, SHIFT}, /* E */
gri 2:b07d155d316c 227 {0x09, SHIFT}, /* F */
gri 2:b07d155d316c 228 {0x0a, SHIFT}, /* G */
gri 2:b07d155d316c 229 {0x0b, SHIFT}, /* H */
gri 2:b07d155d316c 230 {0x0c, SHIFT}, /* I */
gri 2:b07d155d316c 231 {0x0d, SHIFT}, /* J */
gri 2:b07d155d316c 232 {0x0e, SHIFT}, /* K */
gri 2:b07d155d316c 233 {0x0f, SHIFT}, /* L */
gri 2:b07d155d316c 234 {0x10, SHIFT}, /* M */
gri 2:b07d155d316c 235 {0x11, SHIFT}, /* N */
gri 2:b07d155d316c 236 {0x12, SHIFT}, /* O */
gri 2:b07d155d316c 237 {0x13, SHIFT}, /* P */
gri 2:b07d155d316c 238 {0x14, SHIFT}, /* Q */
gri 2:b07d155d316c 239 {0x15, SHIFT}, /* R */
gri 2:b07d155d316c 240 {0x16, SHIFT}, /* S */
gri 2:b07d155d316c 241 {0x17, SHIFT}, /* T */
gri 2:b07d155d316c 242 {0x18, SHIFT}, /* U */
gri 2:b07d155d316c 243 {0x19, SHIFT}, /* V */
gri 2:b07d155d316c 244 {0x1a, SHIFT}, /* W */
gri 2:b07d155d316c 245 {0x1b, SHIFT}, /* X */
gri 2:b07d155d316c 246 {0x1c, SHIFT}, /* Y */
gri 2:b07d155d316c 247 {0x1d, SHIFT}, /* Z */
gri 2:b07d155d316c 248 {0x2f, 0}, /* [ */
gri 2:b07d155d316c 249 {0x64, 0}, /* \ */
gri 2:b07d155d316c 250 {0x30, 0}, /* ] */
gri 2:b07d155d316c 251 {0x23, SHIFT}, /* ^ */
gri 2:b07d155d316c 252 {0x2d, SHIFT}, /* _ */
gri 2:b07d155d316c 253 {0x35, 0}, /* ` */
gri 2:b07d155d316c 254 {0x04, 0}, /* a */
gri 2:b07d155d316c 255 {0x05, 0}, /* b */
gri 2:b07d155d316c 256 {0x06, 0}, /* c */
gri 2:b07d155d316c 257 {0x07, 0}, /* d */
gri 2:b07d155d316c 258 {0x08, 0}, /* e */
gri 2:b07d155d316c 259 {0x09, 0}, /* f */
gri 2:b07d155d316c 260 {0x0a, 0}, /* g */
gri 2:b07d155d316c 261 {0x0b, 0}, /* h */
gri 2:b07d155d316c 262 {0x0c, 0}, /* i */
gri 2:b07d155d316c 263 {0x0d, 0}, /* j */
gri 2:b07d155d316c 264 {0x0e, 0}, /* k */
gri 2:b07d155d316c 265 {0x0f, 0}, /* l */
gri 2:b07d155d316c 266 {0x10, 0}, /* m */
gri 2:b07d155d316c 267 {0x11, 0}, /* n */
gri 2:b07d155d316c 268 {0x12, 0}, /* o */
gri 2:b07d155d316c 269 {0x13, 0}, /* p */
gri 2:b07d155d316c 270 {0x14, 0}, /* q */
gri 2:b07d155d316c 271 {0x15, 0}, /* r */
gri 2:b07d155d316c 272 {0x16, 0}, /* s */
gri 2:b07d155d316c 273 {0x17, 0}, /* t */
gri 2:b07d155d316c 274 {0x18, 0}, /* u */
gri 2:b07d155d316c 275 {0x19, 0}, /* v */
gri 2:b07d155d316c 276 {0x1a, 0}, /* w */
gri 2:b07d155d316c 277 {0x1b, 0}, /* x */
gri 2:b07d155d316c 278 {0x1c, 0}, /* y */
gri 2:b07d155d316c 279 {0x1d, 0}, /* z */
gri 2:b07d155d316c 280 {0x2f, SHIFT}, /* { */
gri 2:b07d155d316c 281 {0x64, SHIFT}, /* | */
gri 2:b07d155d316c 282 {0x30, SHIFT}, /* } */
gri 2:b07d155d316c 283 {0x32, SHIFT}, /* ~ */
gri 2:b07d155d316c 284 {0,0}, /* DEL */
gri 2:b07d155d316c 285 };
gri 2:b07d155d316c 286 #endif
gri 2:b07d155d316c 287
gri 2:b07d155d316c 288
gri 2:b07d155d316c 289 #endif