USB Mouse (relative) example for mbed NXP LPC11U24 beta

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers asciihid.h Source File

asciihid.h

00001 /* asciihid.h */
00002 /* ASCII to HID Keyboard lookup table */
00003 /* Copyright (c) Phil Wright 2008 */
00004 
00005 #ifndef HIDTABLE_H
00006 #define HIDTABLE_H
00007 
00008 /* Default is UK keyboard layout */
00009 /* #define US_KEYBOARD */
00010 
00011 /* Modifiers */
00012 #define SHIFT   (1<<1)
00013 #define CTRL    (1<<0)
00014 #define ALT     (1<<2)
00015 
00016 typedef struct {
00017     unsigned char usage;
00018     unsigned char modifier;
00019 } KEYMAP;
00020 
00021 #ifdef US_KEYBOARD
00022 /* US keyboard (as HID standard) */
00023 #define KEYMAP_SIZE (145)
00024 const KEYMAP keymap[KEYMAP_SIZE] = {
00025 {0, 0},             /* NUL */
00026 {0, 0},             /* SOH */
00027 {0, 0},             /* STX */
00028 {0, 0},             /* ETX */
00029 {0, 0},             /* EOT */
00030 {0, 0},             /* ENQ */
00031 {0, 0},             /* ACK */  
00032 {0, 0},             /* BEL */
00033 {0x2a, 0},          /* BS  */  /* Keyboard Delete (Backspace) */ 
00034 {0x2b, 0},          /* TAB */  /* Keyboard Tab */
00035 {0x28, 0},          /* LF  */  /* Keyboard Return (Enter) */
00036 {0, 0},             /* VT  */
00037 {0, 0},             /* FF  */
00038 {0, 0},             /* CR  */
00039 {0, 0},             /* SO  */
00040 {0, 0},             /* SI  */
00041 {0, 0},             /* DEL */
00042 {0, 0},             /* DC1 */
00043 {0, 0},             /* DC2 */
00044 {0, 0},             /* DC3 */
00045 {0, 0},             /* DC4 */
00046 {0, 0},             /* NAK */
00047 {0, 0},             /* SYN */
00048 {0, 0},             /* ETB */
00049 {0, 0},             /* CAN */
00050 {0, 0},             /* EM  */
00051 {0, 0},             /* SUB */
00052 {0, 0},             /* ESC */
00053 {0, 0},             /* FS  */
00054 {0, 0},             /* GS  */
00055 {0, 0},             /* RS  */
00056 {0, 0},             /* US  */
00057 {0x2c, 0},          /*   */
00058 {0x1e, SHIFT},      /* ! */
00059 {0x34, SHIFT},      /* " */
00060 {0x20, SHIFT},      /* # */
00061 {0x21, SHIFT},      /* $ */
00062 {0x22, SHIFT},      /* % */
00063 {0x24, SHIFT},      /* & */
00064 {0x34, 0},          /* ' */
00065 {0x26, SHIFT},      /* ( */
00066 {0x27, SHIFT},      /* ) */
00067 {0x25, SHIFT},      /* * */
00068 {0x2e, SHIFT},      /* + */
00069 {0x36, 0},          /* , */
00070 {0x2d, 0},          /* - */
00071 {0x37, 0},          /* . */
00072 {0x38, 0},          /* / */
00073 {0x27, 0},          /* 0 */
00074 {0x1e, 0},          /* 1 */
00075 {0x1f, 0},          /* 2 */
00076 {0x20, 0},          /* 3 */
00077 {0x21, 0},          /* 4 */
00078 {0x22, 0},          /* 5 */
00079 {0x23, 0},          /* 6 */
00080 {0x24, 0},          /* 7 */
00081 {0x25, 0},          /* 8 */
00082 {0x26, 0},          /* 9 */
00083 {0x33, SHIFT},      /* : */
00084 {0x33, 0},          /* ; */
00085 {0x36, SHIFT},      /* < */
00086 {0x2e, 0},          /* = */
00087 {0x37, SHIFT},      /* > */
00088 {0x38, SHIFT},      /* ? */
00089 {0x1f, SHIFT},      /* @ */
00090 {0x04, SHIFT},      /* A */
00091 {0x05, SHIFT},      /* B */
00092 {0x06, SHIFT},      /* C */
00093 {0x07, SHIFT},      /* D */
00094 {0x08, SHIFT},      /* E */
00095 {0x09, SHIFT},      /* F */
00096 {0x0a, SHIFT},      /* G */
00097 {0x0b, SHIFT},      /* H */
00098 {0x0c, SHIFT},      /* I */
00099 {0x0d, SHIFT},      /* J */
00100 {0x0e, SHIFT},      /* K */
00101 {0x0f, SHIFT},      /* L */
00102 {0x10, SHIFT},      /* M */
00103 {0x11, SHIFT},      /* N */
00104 {0x12, SHIFT},      /* O */
00105 {0x13, SHIFT},      /* P */
00106 {0x14, SHIFT},      /* Q */
00107 {0x15, SHIFT},      /* R */
00108 {0x16, SHIFT},      /* S */
00109 {0x17, SHIFT},      /* T */
00110 {0x18, SHIFT},      /* U */
00111 {0x19, SHIFT},      /* V */
00112 {0x1a, SHIFT},      /* W */
00113 {0x1b, SHIFT},      /* X */
00114 {0x1c, SHIFT},      /* Y */
00115 {0x1d, SHIFT},      /* Z */
00116 {0x2f, 0},          /* [ */
00117 {0x31, 0},          /* \ */
00118 {0x30, 0},          /* ] */
00119 {0x23, SHIFT},      /* ^ */
00120 {0x2d, SHIFT},      /* _ */
00121 {0x35, 0},          /* ` */
00122 {0x04, 0},          /* a */
00123 {0x05, 0},          /* b */
00124 {0x06, 0},          /* c */
00125 {0x07, 0},          /* d */
00126 {0x08, 0},          /* e */
00127 {0x09, 0},          /* f */
00128 {0x0a, 0},          /* g */
00129 {0x0b, 0},          /* h */
00130 {0x0c, 0},          /* i */
00131 {0x0d, 0},          /* j */
00132 {0x0e, 0},          /* k */
00133 {0x0f, 0},          /* l */
00134 {0x10, 0},          /* m */
00135 {0x11, 0},          /* n */
00136 {0x12, 0},          /* o */
00137 {0x13, 0},          /* p */
00138 {0x14, 0},          /* q */
00139 {0x15, 0},          /* r */
00140 {0x16, 0},          /* s */
00141 {0x17, 0},          /* t */
00142 {0x18, 0},          /* u */
00143 {0x19, 0},          /* v */
00144 {0x1a, 0},          /* w */
00145 {0x1b, 0},          /* x */
00146 {0x1c, 0},          /* y */
00147 {0x1d, 0},          /* z */
00148 {0x2f, SHIFT},      /* { */
00149 {0x31, SHIFT},      /* | */
00150 {0x30, SHIFT},      /* } */
00151 {0x35, SHIFT},      /* ~ */
00152 {0,0},              /* DEL */ 
00153 
00154 {0x3a, 0},          /* F1 */
00155 {0x3b, 0},          /* F2 */
00156 {0x3c, 0},          /* F3 */
00157 {0x3d, 0},          /* F4 */
00158 {0x3e, 0},          /* F5 */
00159 {0x3f, 0},          /* F6 */
00160 {0x40, 0},          /* F7 */
00161 {0x41, 0},          /* F8 */
00162 {0x42, 0},          /* F9 */
00163 {0x43, 0},          /* F10 */
00164 {0x44, 0},          /* F11 */
00165 {0x45, 0},          /* F12 */
00166 
00167 {0x46, 0},          /* PRINT_SCREEN */
00168 {0x49, 0},          /* INSERT */
00169 {0x4a, 0},          /* HOME */
00170 {0x4b, 0},          /* PAGE_UP */
00171 {0x4e, 0},          /* PAGE_DOWN */
00172 };
00173 
00174 #else
00175 /* UK keyboard */
00176 #define KEYMAP_SIZE (145)
00177 const KEYMAP keymap[KEYMAP_SIZE] = {
00178 {0, 0},             /* NUL */
00179 {0, 0},             /* SOH */
00180 {0, 0},             /* STX */
00181 {0, 0},             /* ETX */
00182 {0, 0},             /* EOT */
00183 {0, 0},             /* ENQ */
00184 {0, 0},             /* ACK */  
00185 {0, 0},             /* BEL */
00186 {0x2a, 0},          /* BS  */  /* Keyboard Delete (Backspace) */ 
00187 {0x2b, 0},          /* TAB */  /* Keyboard Tab */
00188 {0x28, 0},          /* LF  */  /* Keyboard Return (Enter) */
00189 {0, 0},             /* VT  */
00190 {0, 0},             /* FF  */
00191 {0, 0},             /* CR  */
00192 {0, 0},             /* SO  */
00193 {0, 0},             /* SI  */
00194 {0, 0},             /* DEL */
00195 {0, 0},             /* DC1 */
00196 {0, 0},             /* DC2 */
00197 {0, 0},             /* DC3 */
00198 {0, 0},             /* DC4 */
00199 {0, 0},             /* NAK */
00200 {0, 0},             /* SYN */
00201 {0, 0},             /* ETB */
00202 {0, 0},             /* CAN */
00203 {0, 0},             /* EM  */
00204 {0, 0},             /* SUB */
00205 {0, 0},             /* ESC */
00206 {0, 0},             /* FS  */
00207 {0, 0},             /* GS  */
00208 {0, 0},             /* RS  */
00209 {0, 0},             /* US  */
00210 {0x2c, 0},          /*   */
00211 {0x1e, SHIFT},      /* ! */
00212 {0x1f, SHIFT},      /* " */ 
00213 {0x32, 0},          /* # */ 
00214 {0x21, SHIFT},      /* $ */
00215 {0x22, SHIFT},      /* % */
00216 {0x24, SHIFT},      /* & */
00217 {0x34, 0},          /* ' */
00218 {0x26, SHIFT},      /* ( */
00219 {0x27, SHIFT},      /* ) */
00220 {0x25, SHIFT},      /* * */
00221 {0x2e, SHIFT},      /* + */
00222 {0x36, 0},          /* , */
00223 {0x2d, 0},          /* - */
00224 {0x37, 0},          /* . */
00225 {0x38, 0},          /* / */
00226 {0x27, 0},          /* 0 */
00227 {0x1e, 0},          /* 1 */
00228 {0x1f, 0},          /* 2 */
00229 {0x20, 0},          /* 3 */
00230 {0x21, 0},          /* 4 */
00231 {0x22, 0},          /* 5 */
00232 {0x23, 0},          /* 6 */
00233 {0x24, 0},          /* 7 */
00234 {0x25, 0},          /* 8 */
00235 {0x26, 0},          /* 9 */
00236 {0x33, SHIFT},      /* : */
00237 {0x33, 0},          /* ; */
00238 {0x36, SHIFT},      /* < */
00239 {0x2e, 0},          /* = */
00240 {0x37, SHIFT},      /* > */
00241 {0x38, SHIFT},      /* ? */
00242 {0x34, SHIFT},      /* @ */
00243 {0x04, SHIFT},      /* A */
00244 {0x05, SHIFT},      /* B */
00245 {0x06, SHIFT},      /* C */
00246 {0x07, SHIFT},      /* D */
00247 {0x08, SHIFT},      /* E */
00248 {0x09, SHIFT},      /* F */
00249 {0x0a, SHIFT},      /* G */
00250 {0x0b, SHIFT},      /* H */
00251 {0x0c, SHIFT},      /* I */
00252 {0x0d, SHIFT},      /* J */
00253 {0x0e, SHIFT},      /* K */
00254 {0x0f, SHIFT},      /* L */
00255 {0x10, SHIFT},      /* M */
00256 {0x11, SHIFT},      /* N */
00257 {0x12, SHIFT},      /* O */
00258 {0x13, SHIFT},      /* P */
00259 {0x14, SHIFT},      /* Q */
00260 {0x15, SHIFT},      /* R */
00261 {0x16, SHIFT},      /* S */
00262 {0x17, SHIFT},      /* T */
00263 {0x18, SHIFT},      /* U */
00264 {0x19, SHIFT},      /* V */
00265 {0x1a, SHIFT},      /* W */
00266 {0x1b, SHIFT},      /* X */
00267 {0x1c, SHIFT},      /* Y */
00268 {0x1d, SHIFT},      /* Z */
00269 {0x2f, 0},          /* [ */
00270 {0x64, 0},          /* \ */ 
00271 {0x30, 0},          /* ] */
00272 {0x23, SHIFT},      /* ^ */
00273 {0x2d, SHIFT},      /* _ */
00274 {0x35, 0},          /* ` */
00275 {0x04, 0},          /* a */
00276 {0x05, 0},          /* b */
00277 {0x06, 0},          /* c */
00278 {0x07, 0},          /* d */
00279 {0x08, 0},          /* e */
00280 {0x09, 0},          /* f */
00281 {0x0a, 0},          /* g */
00282 {0x0b, 0},          /* h */
00283 {0x0c, 0},          /* i */
00284 {0x0d, 0},          /* j */
00285 {0x0e, 0},          /* k */
00286 {0x0f, 0},          /* l */
00287 {0x10, 0},          /* m */
00288 {0x11, 0},          /* n */
00289 {0x12, 0},          /* o */
00290 {0x13, 0},          /* p */
00291 {0x14, 0},          /* q */
00292 {0x15, 0},          /* r */
00293 {0x16, 0},          /* s */
00294 {0x17, 0},          /* t */
00295 {0x18, 0},          /* u */
00296 {0x19, 0},          /* v */
00297 {0x1a, 0},          /* w */
00298 {0x1b, 0},          /* x */
00299 {0x1c, 0},          /* y */
00300 {0x1d, 0},          /* z */
00301 {0x2f, SHIFT},      /* { */
00302 {0x64, SHIFT},      /* | */ 
00303 {0x30, SHIFT},      /* } */
00304 {0x32, SHIFT},      /* ~ */ 
00305 {0,0},             /* DEL */
00306 
00307 {0x3a, 0},          /* F1 */
00308 {0x3b, 0},          /* F2 */
00309 {0x3c, 0},          /* F3 */
00310 {0x3d, 0},          /* F4 */
00311 {0x3e, 0},          /* F5 */
00312 {0x3f, 0},          /* F6 */
00313 {0x40, 0},          /* F7 */
00314 {0x41, 0},          /* F8 */
00315 {0x42, 0},          /* F9 */
00316 {0x43, 0},          /* F10 */
00317 {0x44, 0},          /* F11 */
00318 {0x45, 0},          /* F12 */
00319 
00320 {0x46, 0},          /* PRINT_SCREEN */
00321 {0x49, 0},          /* INSERT */
00322 {0x4a, 0},          /* HOME */
00323 {0x4b, 0},          /* PAGE_UP */
00324 {0x4e, 0},          /* PAGE_DOWN */
00325 };
00326 #endif
00327 
00328 
00329 #endif