main.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514
  1. /*
  2. CopyRight tobychui
  3. All Right Reserved
  4. */
  5. const keycodeMap= {
  6. "KEY_LEFT_CTRL" : 17,
  7. "KEY_LEFT_SHIFT" : 16,
  8. "KEY_LEFT_ALT" : 18,
  9. "KEY_RIGHT_CTRL" : 17,
  10. "KEY_RIGHT_SHIFT" : 16,
  11. "KEY_RIGHT_ALT" : 18,
  12. "KEY_UP_ARROW" : 38,
  13. "KEY_DOWN_ARROW" : 40,
  14. "KEY_LEFT_ARROW" : 37,
  15. "KEY_RIGHT_ARROW" : 39,
  16. "KEY_BACKSPACE" : 8,
  17. "KEY_TAB" : 9,
  18. "KEY_RETURN" : 13,
  19. "KEY_ESC" : 27,
  20. "KEY_INSERT" : 45,
  21. "KEY_DELETE" : 46,
  22. "KEY_PAGE_UP" : 33,
  23. "KEY_PAGE_DOWN" : 34,
  24. "KEY_HOME" : 36,
  25. "KEY_END" : 35,
  26. "KEY_CAPS_LOCK" : 20,
  27. "KEY_F1" : 112,
  28. "KEY_F2" : 113,
  29. "KEY_F3" : 114,
  30. "KEY_F4" : 115,
  31. "KEY_F5" : 116,
  32. "KEY_F6" : 117,
  33. "KEY_F7" : 118,
  34. "KEY_F8" : 119,
  35. "KEY_F9" : 120,
  36. "KEY_F10" : 121,
  37. "KEY_F11" : 122,
  38. "KEY_F12" : 123,
  39. "KEY_F13" : 0xFF,
  40. "KEY_F14" : 0xFF,
  41. "KEY_F15" : 0xFF,
  42. "KEY_F16" : 0xFF,
  43. "KEY_F17" : 0xFF,
  44. "KEY_F18" : 0xFF,
  45. "KEY_F19" : 0xFF,
  46. "KEY_F20" : 0xFF,
  47. "KEY_F21" : 0xFF,
  48. "KEY_F22" : 0xFF,
  49. "KEY_F23" : 0xFF,
  50. "KEY_F24" : 0xFF,
  51. }
  52. function remapValueToHIDKeyboardConst(value){
  53. //Handle special cases
  54. if (value == "Escape"){
  55. return "KEY_ESC";
  56. }else if (value == "Enter"){
  57. return "KEY_RETURN";
  58. }else if (value == "PageUp"){
  59. return "KEY_PAGE_UP";
  60. }else if (value == "PageDown"){
  61. return "KEY_PAGE_DOWN";
  62. }else if (value == "CapsLock"){
  63. return "KEY_CAPS_LOCK";
  64. }else if (value == "NumLock"){
  65. //Not supported
  66. }else if (value == "Pause"){
  67. //Not supported
  68. }else if (value == "ScrollLock"){
  69. //Not supported
  70. }else if (value == "PrintScreen"){
  71. //Not supported
  72. }
  73. //Replace space with underscore
  74. let matchingKey = value.split(" ").join("_");
  75. matchingKey = matchingKey.toUpperCase();
  76. console.log(value,keycodeMap["KEY_" + matchingKey] )
  77. if (keycodeMap["KEY_" + matchingKey] != undefined){
  78. //This key exists
  79. return "KEY_" + matchingKey;
  80. }else{
  81. //return its original form
  82. return `'${value}'`;
  83. }
  84. }
  85. //Extraced from ch55x arduino source code
  86. //https://github.com/DeqingSun/ch55xduino/blob/ch55xduino/ch55xduino/ch55x/libraries/Generic_Examples/examples/05.USB/HidMediaKeyboard/src/userUsbHidMediaKeyboard/USBHIDMediaKeyboard.h
  87. const mediaKeycode= {
  88. CONSUMER_POWER: 0x30,
  89. CONSUMER_SLEEP: 0x32,
  90. MEDIA_RECORD: 0xB2,
  91. MEDIA_FAST_FORWARD: 0xB3,
  92. MEDIA_REWIND: 0xB4,
  93. MEDIA_NEXT: 0xB5,
  94. MEDIA_PREVIOUS: 0xB6,
  95. MEDIA_PREV: 0xB6, // Alias
  96. MEDIA_STOP: 0xB7,
  97. MEDIA_PLAY_PAUSE: 0xCD,
  98. MEDIA_PAUSE: 0xB0,
  99. MEDIA_VOLUME_MUTE: 0xE2,
  100. MEDIA_VOL_MUTE: 0xE2, // Alias
  101. MEDIA_VOLUME_UP: 0xE9,
  102. MEDIA_VOL_UP: 0xE9, // Alias
  103. MEDIA_VOLUME_DOWN: 0xEA,
  104. MEDIA_VOL_DOWN: 0xEA, // Alias
  105. CONSUMER_BRIGHTNESS_UP: 0x006F,
  106. CONSUMER_BRIGHTNESS_DOWN: 0x0070,
  107. CONSUMER_SCREENSAVER: 0x19e,
  108. CONSUMER_PROGRAMMABLE_BUTTON_CONFIGURATION: 0x182,
  109. CONSUMER_CONTROL_CONFIGURATION: 0x183,
  110. CONSUMER_EMAIL_READER: 0x18A,
  111. CONSUMER_CALCULATOR: 0x192,
  112. CONSUMER_EXPLORER: 0x194,
  113. CONSUMER_BROWSER_HOME: 0x223,
  114. CONSUMER_BROWSER_BACK: 0x224,
  115. CONSUMER_BROWSER_FORWARD: 0x225,
  116. CONSUMER_BROWSER_REFRESH: 0x227,
  117. CONSUMER_BROWSER_BOOKMARKS: 0x22A,
  118. // Consumer_Page_(0x0C) 0x15
  119. HID_CONSUMER_UNASSIGNED : 0x00,
  120. HID_CONSUMER_NUMERIC_KEY_PAD: 0x02, // HID type NARY
  121. HID_CONSUMER_PROGRAMMABLE_BUTTONS: 0x03, // HID type NARY
  122. HID_CONSUMER_MICROPHONE_CA: 0x04,
  123. HID_CONSUMER_HEADPHONE_CA: 0x05,
  124. HID_CONSUMER_GRAPHIC_EQUALIZER_CA: 0x06,
  125. // Reserved: 0x07-1F
  126. HID_CONSUMER_PLUS_10: 0x20, // HID type OSC
  127. HID_CONSUMER_PLUS_100: 0x21, // HID type OSC
  128. HID_CONSUMER_AM_SLASH_PM: 0x22, // HID type OSC
  129. // Reserved: 0x23-3F
  130. HID_CONSUMER_POWER: 0x30, // HID type OOC
  131. HID_CONSUMER_RESET: 0x31, // HID type OSC
  132. HID_CONSUMER_SLEEP: 0x32, // HID type OSC
  133. HID_CONSUMER_SLEEP_AFTER: 0x33, // HID type OSC
  134. HID_CONSUMER_SLEEP_MODE: 0x34, // HID type RTC
  135. HID_CONSUMER_ILLUMINATION: 0x35, // HID type OOC
  136. HID_CONSUMER_FUNCTION_BUTTONS: 0x36, // HID type NARY
  137. // Reserved: 0x37-3F
  138. HID_CONSUMER_MENU: 0x40, // HID type OOC
  139. HID_CONSUMER_MENU_PICK: 0x41, // HID type OSC
  140. HID_CONSUMER_MENU_UP: 0x42, // HID type OSC
  141. HID_CONSUMER_MENU_DOWN: 0x43, // HID type OSC
  142. HID_CONSUMER_MENU_LEFT: 0x44, // HID type OSC
  143. HID_CONSUMER_MENU_RIGHT: 0x45, // HID type OSC
  144. HID_CONSUMER_MENU_ESCAPE: 0x46, // HID type OSC
  145. HID_CONSUMER_MENU_VALUE_INCREASE: 0x47, // HID type OSC
  146. HID_CONSUMER_MENU_VALUE_DECREASE: 0x48, // HID type OSC
  147. // Reserved 0x49-5F
  148. HID_CONSUMER_DATA_ON_SCREEN: 0x60, // HID type OOC
  149. HID_CONSUMER_CLOSED_CAPTION: 0x61, // HID type OOC
  150. HID_CONSUMER_CLOSED_CAPTION_SELECT: 0x62, // HID type OSC
  151. HID_CONSUMER_VCR_SLASH_TV: 0x63, // HID type OOC
  152. HID_CONSUMER_BROADCAST_MODE: 0x64, // HID type OSC
  153. HID_CONSUMER_SNAPSHOT: 0x65, // HID type OSC
  154. HID_CONSUMER_STILL: 0x66, // HID type OSC
  155. // Reserved 0x67-7F
  156. HID_CONSUMER_SELECTION: 0x80, // HID type NARY
  157. HID_CONSUMER_ASSIGN_SELECTION: 0x81, // HID type OSC
  158. HID_CONSUMER_MODE_STEP: 0x82, // HID type OSC
  159. HID_CONSUMER_RECALL_LAST: 0x83, // HID type OSC
  160. HID_CONSUMER_ENTER_CHANNEL: 0x84, // HID type OSC
  161. HID_CONSUMER_ORDER_MOVIE: 0x85, // HID type OSC
  162. HID_CONSUMER_CHANNEL: 0x86, // HID type LC
  163. HID_CONSUMER_MEDIA_SELECTION: 0x87, // HID type NARY
  164. HID_CONSUMER_MEDIA_SELECT_COMPUTER: 0x88, // HID type SEL
  165. HID_CONSUMER_MEDIA_SELECT_TV: 0x89, // HID type SEL
  166. HID_CONSUMER_MEDIA_SELECT_WWW: 0x8A, // HID type SEL
  167. HID_CONSUMER_MEDIA_SELECT_DVD: 0x8B, // HID type SEL
  168. HID_CONSUMER_MEDIA_SELECT_TELEPHONE: 0x8C, // HID type SEL
  169. HID_CONSUMER_MEDIA_SELECT_PROGRAM_GUIDE: 0x8D, // HID type SEL
  170. HID_CONSUMER_MEDIA_SELECT_VIDEO_PHONE: 0x8E, // HID type SEL
  171. HID_CONSUMER_MEDIA_SELECT_GAMES: 0x8F, // HID type SEL
  172. HID_CONSUMER_MEDIA_SELECT_MESSAGES: 0x90, // HID type SEL
  173. HID_CONSUMER_MEDIA_SELECT_CD: 0x91, // HID type SEL
  174. HID_CONSUMER_MEDIA_SELECT_VCR: 0x92, // HID type SEL
  175. HID_CONSUMER_MEDIA_SELECT_TUNER: 0x93, // HID type SEL
  176. HID_CONSUMER_QUIT: 0x94, // HID type OSC
  177. HID_CONSUMER_HELP: 0x95, // HID type OOC
  178. HID_CONSUMER_MEDIA_SELECT_TAPE: 0x96, // HID type SEL
  179. HID_CONSUMER_MEDIA_SELECT_CABLE: 0x97, // HID type SEL
  180. HID_CONSUMER_MEDIA_SELECT_SATELLITE: 0x98, // HID type SEL
  181. HID_CONSUMER_MEDIA_SELECT_SECURITY: 0x99, // HID type SEL
  182. HID_CONSUMER_MEDIA_SELECT_HOME: 0x9A, // HID type SEL
  183. HID_CONSUMER_MEDIA_SELECT_CALL: 0x9B, // HID type SEL
  184. HID_CONSUMER_CHANNEL_INCREMENT: 0x9C, // HID type OSC
  185. HID_CONSUMER_CHANNEL_DECREMENT: 0x9D, // HID type OSC
  186. HID_CONSUMER_MEDIA_SELECT_SAP: 0x9E, // HID type SEL
  187. // Reserved 0x9F
  188. HID_CONSUMER_VCR_PLUS: 0xA0, // HID type OSC
  189. HID_CONSUMER_ONCE: 0xA1, // HID type OSC
  190. HID_CONSUMER_DAILY: 0xA2, // HID type OSC
  191. HID_CONSUMER_WEEKLY: 0xA3, // HID type OSC
  192. HID_CONSUMER_MONTHLY: 0xA4, // HID type OSC
  193. // Reserved 0xA5-AF
  194. HID_CONSUMER_PLAY: 0xB0, // HID type OOC
  195. HID_CONSUMER_PAUSE: 0xB1, // HID type OOC
  196. HID_CONSUMER_RECORD: 0xB2, // HID type OOC
  197. HID_CONSUMER_FAST_FORWARD: 0xB3, // HID type OOC
  198. HID_CONSUMER_REWIND: 0xB4, // HID type OOC
  199. HID_CONSUMER_SCAN_NEXT_TRACK: 0xB5, // HID type OSC
  200. HID_CONSUMER_SCAN_PREVIOUS_TRACK: 0xB6, // HID type OSC
  201. HID_CONSUMER_STOP: 0xB7, // HID type OSC
  202. HID_CONSUMER_EJECT: 0xB8, // HID type OSC
  203. HID_CONSUMER_RANDOM_PLAY: 0xB9, // HID type OOC
  204. HID_CONSUMER_SELECT_DISC: 0xBA, // HID type NARY
  205. HID_CONSUMER_ENTER_DISC_MC: 0xBB,
  206. HID_CONSUMER_REPEAT: 0xBC, // HID type OSC
  207. HID_CONSUMER_TRACKING: 0xBD, // HID type LC
  208. HID_CONSUMER_TRACK_NORMAL: 0xBE, // HID type OSC
  209. HID_CONSUMER_SLOW_TRACKING: 0xBF, // HID type LC
  210. HID_CONSUMER_FRAME_FORWARD: 0xC0, // HID type RTC
  211. HID_CONSUMER_FRAME_BACK: 0xC1, // HID type RTC
  212. HID_CONSUMER_MARK: 0xC2, // HID type OSC
  213. HID_CONSUMER_CLEAR_MARK: 0xC3, // HID type OSC
  214. HID_CONSUMER_REPEAT_FROM_MARK: 0xC4, // HID type OOC
  215. HID_CONSUMER_RETURN_TO_MARK: 0xC5, // HID type OSC
  216. HID_CONSUMER_SEARCH_MARK_FORWARD: 0xC6, // HID type OSC
  217. HID_CONSUMER_SEARCH_MARK_BACKWARDS: 0xC7, // HID type OSC
  218. HID_CONSUMER_COUNTER_RESET: 0xC8, // HID type OSC
  219. HID_CONSUMER_SHOW_COUNTER: 0xC9, // HID type OSC
  220. HID_CONSUMER_TRACKING_INCREMENT: 0xCA, // HID type RTC
  221. HID_CONSUMER_TRACKING_DECREMENT: 0xCB, // HID type RTC
  222. HID_CONSUMER_STOP_SLASH_EJECT: 0xCC, // HID type OSC
  223. HID_CONSUMER_PLAY_SLASH_PAUSE: 0xCD, // HID type OSC
  224. HID_CONSUMER_PLAY_SLASH_SKIP: 0xCE, // HID type OSC
  225. // Reserved 0xCF-DF
  226. HID_CONSUMER_VOLUME: 0xE0, // HID type LC
  227. HID_CONSUMER_BALANCE: 0xE1, // HID type LC
  228. HID_CONSUMER_MUTE: 0xE2, // HID type OOC
  229. HID_CONSUMER_BASS: 0xE3, // HID type LC
  230. HID_CONSUMER_TREBLE: 0xE4, // HID type LC
  231. HID_CONSUMER_BASS_BOOST: 0xE5, // HID type OOC
  232. HID_CONSUMER_SURROUND_MODE: 0xE6, // HID type OSC
  233. HID_CONSUMER_LOUDNESS: 0xE7, // HID type OOC
  234. HID_CONSUMER_MPX: 0xE8, // HID type OOC
  235. HID_CONSUMER_VOLUME_INCREMENT: 0xE9, // HID type RTC
  236. HID_CONSUMER_VOLUME_DECREMENT: 0xEA, // HID type RTC
  237. // Reserved 0xEB-EF
  238. HID_CONSUMER_SPEED_SELECT: 0xF0, // HID type OSC
  239. HID_CONSUMER_PLAYBACK_SPEED: 0xF1, // HID type NARY
  240. HID_CONSUMER_STANDARD_PLAY: 0xF2, // HID type SEL
  241. HID_CONSUMER_LONG_PLAY: 0xF3, // HID type SEL
  242. HID_CONSUMER_EXTENDED_PLAY: 0xF4, // HID type SEL
  243. HID_CONSUMER_SLOW: 0xF5, // HID type OSC
  244. // Reserved 0xF6-FF
  245. HID_CONSUMER_FAN_ENABLE: 0x100, // HID type OOC
  246. HID_CONSUMER_FAN_SPEED: 0x101, // HID type LC
  247. HID_CONSUMER_LIGHT_ENABLE: 0x102, // HID type OOC
  248. HID_CONSUMER_LIGHT_ILLUMINATION_LEVEL: 0x103, // HID type LC
  249. HID_CONSUMER_CLIMATE_CONTROL_ENABLE: 0x104, // HID type OOC
  250. HID_CONSUMER_ROOM_TEMPERATURE: 0x105, // HID type LC
  251. HID_CONSUMER_SECURITY_ENABLE: 0x106, // HID type OOC
  252. HID_CONSUMER_FIRE_ALARM: 0x107, // HID type OSC
  253. HID_CONSUMER_POLICE_ALARM: 0x108, // HID type OSC
  254. HID_CONSUMER_PROXIMITY: 0x109, // HID type LC
  255. HID_CONSUMER_MOTION: 0x10A, // HID type OSC
  256. HID_CONSUMER_DURESS_ALARM: 0x10B, // HID type OSC
  257. HID_CONSUMER_HOLDUP_ALARM: 0x10C, // HID type OSC
  258. HID_CONSUMER_MEDICAL_ALARM: 0x10D, // HID type OSC
  259. // Reserved 0x10E-14F
  260. HID_CONSUMER_BALANCE_RIGHT: 0x150, // HID type RTC
  261. HID_CONSUMER_BALANCE_LEFT: 0x151, // HID type RTC
  262. HID_CONSUMER_BASS_INCREMENT: 0x152, // HID type RTC
  263. HID_CONSUMER_BASS_DECREMENT: 0x153, // HID type RTC
  264. HID_CONSUMER_TREBLE_INCREMENT: 0x154, // HID type RTC
  265. HID_CONSUMER_TREBLE_DECREMENT: 0x155, // HID type RTC
  266. // Reserved 0x156-15F
  267. HID_CONSUMER_SPEAKER_SYSTEM: 0x160, // HID type CL
  268. HID_CONSUMER_CHANNEL_LEFT: 0x161, // HID type CL
  269. HID_CONSUMER_CHANNEL_RIGHT: 0x162, // HID type CL
  270. HID_CONSUMER_CHANNEL_CENTER: 0x163, // HID type CL
  271. HID_CONSUMER_CHANNEL_FRONT: 0x164, // HID type CL
  272. HID_CONSUMER_CHANNEL_CENTER_FRONT: 0x165, // HID type CL
  273. HID_CONSUMER_CHANNEL_SIDE: 0x166, // HID type CL
  274. HID_CONSUMER_CHANNEL_SURROUND: 0x167, // HID type CL
  275. HID_CONSUMER_CHANNEL_LOW_FREQUENCY_ENHANCEMENT: 0x168, // HID type CL
  276. HID_CONSUMER_CHANNEL_TOP: 0x169, // HID type CL
  277. HID_CONSUMER_CHANNEL_UNKNOWN: 0x16A, // HID type CL
  278. // Reserved 0x16B-16F
  279. HID_CONSUMER_SUB_CHANNEL: 0x170, // HID type LC
  280. HID_CONSUMER_SUB_CHANNEL_INCREMENT: 0x171, // HID type OSC
  281. HID_CONSUMER_SUB_CHANNEL_DECREMENT: 0x172, // HID type OSC
  282. HID_CONSUMER_ALTERNATE_AUDIO_INCREMENT: 0x173, // HID type OSC
  283. HID_CONSUMER_ALTERNATE_AUDIO_DECREMENT: 0x174, // HID type OSC
  284. // Reserved 0x175-17F
  285. HID_CONSUMER_APPLICATION_LAUNCH_BUTTONS: 0x180, // HID type NARY
  286. HID_CONSUMER_AL_LAUNCH_BUTTON_CONFIGURATION_TOOL: 0x181, // HID type SEL
  287. HID_CONSUMER_AL_PROGRAMMABLE_BUTTON_CONFIGURATION: 0x182, // HID type SEL
  288. HID_CONSUMER_AL_CONSUMER_CONTROL_CONFIGURATION: 0x183, // HID type SEL
  289. HID_CONSUMER_AL_WORD_PROCESSOR: 0x184, // HID type SEL
  290. HID_CONSUMER_AL_TEXT_EDITOR: 0x185, // HID type SEL
  291. HID_CONSUMER_AL_SPREADSHEET: 0x186, // HID type SEL
  292. HID_CONSUMER_AL_GRAPHICS_EDITOR: 0x187, // HID type SEL
  293. HID_CONSUMER_AL_PRESENTATION_APP: 0x188, // HID type SEL
  294. HID_CONSUMER_AL_DATABASE_APP: 0x189, // HID type SEL
  295. HID_CONSUMER_AL_EMAIL_READER: 0x18A, // HID type SEL
  296. HID_CONSUMER_AL_NEWSREADER: 0x18B, // HID type SEL
  297. HID_CONSUMER_AL_VOICEMAIL: 0x18C, // HID type SEL
  298. HID_CONSUMER_AL_CONTACTS_SLASH_ADDRESS_BOOK: 0x18D, // HID type SEL
  299. HID_CONSUMER_AL_CALENDAR_SLASH_SCHEDULE: 0x18E, // HID type SEL
  300. HID_CONSUMER_AL_TASK_SLASH_PROJECT_MANAGER: 0x18F, // HID type SEL
  301. HID_CONSUMER_AL_LOG_SLASH_JOURNAL_SLASH_TIMECARD: 0x190, // HID type SEL
  302. HID_CONSUMER_AL_CHECKBOOK_SLASH_FINANCE: 0x191, // HID type SEL
  303. HID_CONSUMER_AL_CALCULATOR: 0x192, // HID type SEL
  304. HID_CONSUMER_AL_A_SLASH_V_CAPTURE_SLASH_PLAYBACK: 0x193, // HID type SEL
  305. HID_CONSUMER_AL_LOCAL_MACHINE_BROWSER: 0x194, // HID type SEL
  306. HID_CONSUMER_AL_LAN_SLASH_WAN_BROWSER: 0x195, // HID type SEL
  307. HID_CONSUMER_AL_INTERNET_BROWSER: 0x196, // HID type SEL
  308. HID_CONSUMER_AL_REMOTE_NETWORKING_SLASH_ISP_CONNECT: 0x197, // HID type SEL
  309. HID_CONSUMER_AL_NETWORK_CONFERENCE: 0x198, // HID type SEL
  310. HID_CONSUMER_AL_NETWORK_CHAT: 0x199, // HID type SEL
  311. HID_CONSUMER_AL_TELEPHONY_SLASH_DIALER: 0x19A, // HID type SEL
  312. HID_CONSUMER_AL_LOGON: 0x19B, // HID type SEL
  313. HID_CONSUMER_AL_LOGOFF: 0x19C, // HID type SEL
  314. HID_CONSUMER_AL_LOGON_SLASH_LOGOFF: 0x19D, // HID type SEL
  315. HID_CONSUMER_AL_TERMINAL_LOCK_SLASH_SCREENSAVER: 0x19E, // HID type SEL
  316. HID_CONSUMER_AL_CONTROL_PANEL: 0x19F, // HID type SEL
  317. HID_CONSUMER_AL_COMMAND_LINE_PROCESSOR_SLASH_RUN: 0x1A0, // HID type SEL
  318. HID_CONSUMER_AL_PROCESS_SLASH_TASK_MANAGER: 0x1A1, // HID type SEL
  319. HID_CONSUMER_AL_SELECT_TASK_SLASH_APPLICATION: 0x1A2, // HID type SEL
  320. HID_CONSUMER_AL_NEXT_TASK_SLASH_APPLICATION: 0x1A3, // HID type SEL
  321. HID_CONSUMER_AL_PREVIOUS_TASK_SLASH_APPLICATION: 0x1A4, // HID type SEL
  322. HID_CONSUMER_AL_PREEMPTIVE_HALT_TASK_SLASH_APPLICATION: 0x1A5, // HID type SEL
  323. HID_CONSUMER_AL_INTEGRATED_HELP_CENTER: 0x1A6, // HID type SEL
  324. HID_CONSUMER_AL_DOCUMENTS: 0x1A7, // HID type SEL
  325. HID_CONSUMER_AL_THESAURUS: 0x1A8, // HID type SEL
  326. HID_CONSUMER_AL_DICTIONARY: 0x1A9, // HID type SEL
  327. HID_CONSUMER_AL_DESKTOP: 0x1AA, // HID type SEL
  328. HID_CONSUMER_AL_SPELL_CHECK: 0x1AB, // HID type SEL
  329. HID_CONSUMER_AL_GRAMMAR_CHECK: 0x1AC, // HID type SEL
  330. HID_CONSUMER_AL_WIRELESS_STATUS: 0x1AD, // HID type SEL
  331. HID_CONSUMER_AL_KEYBOARD_LAYOUT: 0x1AE, // HID type SEL
  332. HID_CONSUMER_AL_VIRUS_PROTECTION: 0x1AF, // HID type SEL
  333. HID_CONSUMER_AL_ENCRYPTION: 0x1B0, // HID type SEL
  334. HID_CONSUMER_AL_SCREEN_SAVER: 0x1B1, // HID type SEL
  335. HID_CONSUMER_AL_ALARMS: 0x1B2, // HID type SEL
  336. HID_CONSUMER_AL_CLOCK: 0x1B3, // HID type SEL
  337. HID_CONSUMER_AL_FILE_BROWSER: 0x1B4, // HID type SEL
  338. HID_CONSUMER_AL_POWER_STATUS: 0x1B5, // HID type SEL
  339. HID_CONSUMER_AL_IMAGE_BROWSER: 0x1B6, // HID type SEL
  340. HID_CONSUMER_AL_AUDIO_BROWSER: 0x1B7, // HID type SEL
  341. HID_CONSUMER_AL_MOVIE_BROWSER: 0x1B8, // HID type SEL
  342. HID_CONSUMER_AL_DIGITAL_RIGHTS_MANAGER: 0x1B9, // HID type SEL
  343. HID_CONSUMER_AL_DIGITAL_WALLET: 0x1BA, // HID type SEL
  344. // _Reserved 0x1BB
  345. HID_CONSUMER_AL_INSTANT_MESSAGING: 0x1BC, // HID type SEL
  346. HID_CONSUMER_AL_OEM_FEATURES_SLASH__TIPS_SLASH_TUTORIAL_BROWSER: 0x1BD, // HID type SEL
  347. HID_CONSUMER_AL_OEM_HELP: 0x1BE, // HID type SEL
  348. HID_CONSUMER_AL_ONLINE_COMMUNITY: 0x1BF, // HID type SEL
  349. HID_CONSUMER_AL_ENTERTAINMENT_CONTENT_BROWSER: 0x1C0, // HID type SEL
  350. HID_CONSUMER_AL_ONLINE_SHOPPING_BROWSER: 0x1C1, // HID type SEL
  351. HID_CONSUMER_AL_SMARTCARD_INFORMATION_SLASH_HELP: 0x1C2, // HID type SEL
  352. HID_CONSUMER_AL_MARKET_MONITOR_SLASH_FINANCE_BROWSER: 0x1C3, // HID type SEL
  353. HID_CONSUMER_AL_CUSTOMIZED_CORPORATE_NEWS_BROWSER: 0x1C4, // HID type SEL
  354. HID_CONSUMER_AL_ONLINE_ACTIVITY_BROWSER: 0x1C5, // HID type SEL
  355. HID_CONSUMER_AL_RESEARCH_SLASH_SEARCH_BROWSER: 0x1C6, // HID type SEL
  356. HID_CONSUMER_AL_AUDIO_PLAYER: 0x1C7, // HID type SEL
  357. // Reserved 0x1C8-1FF
  358. HID_CONSUMER_GENERIC_GUI_APPLICATION_CONTROLS: 0x200, // HID type NARY
  359. HID_CONSUMER_AC_NEW: 0x201, // HID type SEL
  360. HID_CONSUMER_AC_OPEN: 0x202, // HID type SEL
  361. HID_CONSUMER_AC_CLOSE: 0x203, // HID type SEL
  362. HID_CONSUMER_AC_EXIT: 0x204, // HID type SEL
  363. HID_CONSUMER_AC_MAXIMIZE: 0x205, // HID type SEL
  364. HID_CONSUMER_AC_MINIMIZE: 0x206, // HID type SEL
  365. HID_CONSUMER_AC_SAVE: 0x207, // HID type SEL
  366. HID_CONSUMER_AC_PRINT: 0x208, // HID type SEL
  367. HID_CONSUMER_AC_PROPERTIES: 0x209, // HID type SEL
  368. HID_CONSUMER_AC_UNDO: 0x21A, // HID type SEL
  369. HID_CONSUMER_AC_COPY: 0x21B, // HID type SEL
  370. HID_CONSUMER_AC_CUT: 0x21C, // HID type SEL
  371. HID_CONSUMER_AC_PASTE: 0x21D, // HID type SEL
  372. HID_CONSUMER_AC_SELECT_ALL: 0x21E, // HID type SEL
  373. HID_CONSUMER_AC_FIND: 0x21F, // HID type SEL
  374. HID_CONSUMER_AC_FIND_AND_REPLACE: 0x220, // HID type SEL
  375. HID_CONSUMER_AC_SEARCH: 0x221, // HID type SEL
  376. HID_CONSUMER_AC_GO_TO: 0x222, // HID type SEL
  377. HID_CONSUMER_AC_HOME: 0x223, // HID type SEL
  378. HID_CONSUMER_AC_BACK: 0x224, // HID type SEL
  379. HID_CONSUMER_AC_FORWARD: 0x225, // HID type SEL
  380. HID_CONSUMER_AC_STOP: 0x226, // HID type SEL
  381. HID_CONSUMER_AC_REFRESH: 0x227, // HID type SEL
  382. HID_CONSUMER_AC_PREVIOUS_LINK: 0x228, // HID type SEL
  383. HID_CONSUMER_AC_NEXT_LINK: 0x229, // HID type SEL
  384. HID_CONSUMER_AC_BOOKMARKS: 0x22A, // HID type SEL
  385. HID_CONSUMER_AC_HISTORY: 0x22B, // HID type SEL
  386. HID_CONSUMER_AC_SUBSCRIPTIONS: 0x22C, // HID type SEL
  387. HID_CONSUMER_AC_ZOOM_IN: 0x22D, // HID type SEL
  388. HID_CONSUMER_AC_ZOOM_OUT: 0x22E, // HID type SEL
  389. HID_CONSUMER_AC_ZOOM: 0x22F, // HID type LC
  390. HID_CONSUMER_AC_FULL_SCREEN_VIEW: 0x230, // HID type SEL
  391. HID_CONSUMER_AC_NORMAL_VIEW: 0x231, // HID type SEL
  392. HID_CONSUMER_AC_VIEW_TOGGLE: 0x232, // HID type SEL
  393. HID_CONSUMER_AC_SCROLL_UP: 0x233, // HID type SEL
  394. HID_CONSUMER_AC_SCROLL_DOWN: 0x234, // HID type SEL
  395. HID_CONSUMER_AC_SCROLL: 0x235, // HID type LC
  396. HID_CONSUMER_AC_PAN_LEFT: 0x236, // HID type SEL
  397. HID_CONSUMER_AC_PAN_RIGHT: 0x237, // HID type SEL
  398. HID_CONSUMER_AC_PAN: 0x238, // HID type LC
  399. HID_CONSUMER_AC_NEW_WINDOW: 0x239, // HID type SEL
  400. HID_CONSUMER_AC_TILE_HORIZONTALLY: 0x23A, // HID type SEL
  401. HID_CONSUMER_AC_TILE_VERTICALLY: 0x23B, // HID type SEL
  402. HID_CONSUMER_AC_FORMAT: 0x23C, // HID type SEL
  403. HID_CONSUMER_AC_EDIT: 0x23D, // HID type SEL
  404. HID_CONSUMER_AC_BOLD: 0x23E, // HID type SEL
  405. HID_CONSUMER_AC_ITALICS: 0x23F, // HID type SEL
  406. HID_CONSUMER_AC_UNDERLINE: 0x240, // HID type SEL
  407. HID_CONSUMER_AC_STRIKETHROUGH: 0x241, // HID type SEL
  408. HID_CONSUMER_AC_SUBSCRIPT: 0x242, // HID type SEL
  409. HID_CONSUMER_AC_SUPERSCRIPT: 0x243, // HID type SEL
  410. HID_CONSUMER_AC_ALL_CAPS: 0x244, // HID type SEL
  411. HID_CONSUMER_AC_ROTATE: 0x245, // HID type SEL
  412. HID_CONSUMER_AC_RESIZE: 0x246, // HID type SEL
  413. HID_CONSUMER_AC_FLIP_HORIZONTAL: 0x247, // HID type SEL
  414. HID_CONSUMER_AC_FLIP_VERTICAL: 0x248, // HID type SEL
  415. HID_CONSUMER_AC_MIRROR_HORIZONTAL: 0x249, // HID type SEL
  416. HID_CONSUMER_AC_MIRROR_VERTICAL: 0x24A, // HID type SEL
  417. HID_CONSUMER_AC_FONT_SELECT: 0x24B, // HID type SEL
  418. HID_CONSUMER_AC_FONT_COLOR: 0x24C, // HID type SEL
  419. HID_CONSUMER_AC_FONT_SIZE: 0x24D, // HID type SEL
  420. HID_CONSUMER_AC_JUSTIFY_LEFT: 0x24E, // HID type SEL
  421. HID_CONSUMER_AC_JUSTIFY_CENTER_H: 0x24F, // HID type SEL
  422. HID_CONSUMER_AC_JUSTIFY_RIGHT: 0x250, // HID type SEL
  423. HID_CONSUMER_AC_JUSTIFY_BLOCK_H: 0x251, // HID type SEL
  424. HID_CONSUMER_AC_JUSTIFY_TOP: 0x252, // HID type SEL
  425. HID_CONSUMER_AC_JUSTIFY_CENTER_V: 0x253, // HID type SEL
  426. HID_CONSUMER_AC_JUSTIFY_BOTTOM: 0x254, // HID type SEL
  427. HID_CONSUMER_AC_JUSTIFY_BLOCK_V: 0x255, // HID type SEL
  428. HID_CONSUMER_AC_INDENT_DECREASE: 0x256, // HID type SEL
  429. HID_CONSUMER_AC_INDENT_INCREASE: 0x257, // HID type SEL
  430. HID_CONSUMER_AC_NUMBERED_LIST: 0x258, // HID type SEL
  431. HID_CONSUMER_AC_RESTART_NUMBERING: 0x259, // HID type SEL
  432. HID_CONSUMER_AC_BULLETED_LIST: 0x25A, // HID type SEL
  433. HID_CONSUMER_AC_PROMOTE: 0x25B, // HID type SEL
  434. HID_CONSUMER_AC_DEMOTE: 0x25C, // HID type SEL
  435. HID_CONSUMER_AC_YES: 0x25D, // HID type SEL
  436. HID_CONSUMER_AC_NO: 0x25E, // HID type SEL
  437. HID_CONSUMER_AC_CANCEL: 0x25F, // HID type SEL
  438. HID_CONSUMER_AC_CATALOG: 0x260, // HID type SEL
  439. HID_CONSUMER_AC_BUY_SLASH_CHECKOUT: 0x261, // HID type SEL
  440. HID_CONSUMER_AC_ADD_TO_CART: 0x262, // HID type SEL
  441. HID_CONSUMER_AC_EXPAND: 0x263, // HID type SEL
  442. HID_CONSUMER_AC_EXPAND_ALL: 0x264, // HID type SEL
  443. HID_CONSUMER_AC_COLLAPSE: 0x265, // HID type SEL
  444. HID_CONSUMER_AC_COLLAPSE_ALL: 0x266, // HID type SEL
  445. HID_CONSUMER_AC_PRINT_PREVIEW: 0x267, // HID type SEL
  446. HID_CONSUMER_AC_PASTE_SPECIAL: 0x268, // HID type SEL
  447. HID_CONSUMER_AC_INSERT_MODE: 0x269, // HID type SEL
  448. HID_CONSUMER_AC_DELETE: 0x26A, // HID type SEL
  449. HID_CONSUMER_AC_LOCK: 0x26B, // HID type SEL
  450. HID_CONSUMER_AC_UNLOCK: 0x26C, // HID type SEL
  451. HID_CONSUMER_AC_PROTECT: 0x26D, // HID type SEL
  452. HID_CONSUMER_AC_UNPROTECT: 0x26E, // HID type SEL
  453. HID_CONSUMER_AC_ATTACH_COMMENT: 0x26F, // HID type SEL
  454. HID_CONSUMER_AC_DELETE_COMMENT: 0x270, // HID type SEL
  455. HID_CONSUMER_AC_VIEW_COMMENT: 0x271, // HID type SEL
  456. HID_CONSUMER_AC_SELECT_WORD: 0x272, // HID type SEL
  457. HID_CONSUMER_AC_SELECT_SENTENCE: 0x273, // HID type SEL
  458. HID_CONSUMER_AC_SELECT_PARAGRAPH: 0x274, // HID type SEL
  459. HID_CONSUMER_AC_SELECT_COLUMN: 0x275, // HID type SEL
  460. HID_CONSUMER_AC_SELECT_ROW: 0x276, // HID type SEL
  461. HID_CONSUMER_AC_SELECT_TABLE: 0x277, // HID type SEL
  462. HID_CONSUMER_AC_SELECT_OBJECT: 0x278, // HID type SEL
  463. HID_CONSUMER_AC_REDO_SLASH_REPEAT: 0x279, // HID type SEL
  464. HID_CONSUMER_AC_SORT: 0x27A, // HID type SEL
  465. HID_CONSUMER_AC_SORT_ASCENDING: 0x27B, // HID type SEL
  466. HID_CONSUMER_AC_SORT_DESCENDING: 0x27C, // HID type SEL
  467. HID_CONSUMER_AC_FILTER: 0x27D, // HID type SEL
  468. HID_CONSUMER_AC_SET_CLOCK: 0x27E, // HID type SEL
  469. HID_CONSUMER_AC_VIEW_CLOCK: 0x27F, // HID type SEL
  470. HID_CONSUMER_AC_SELECT_TIME_ZONE: 0x280, // HID type SEL
  471. HID_CONSUMER_AC_EDIT_TIME_ZONES: 0x281, // HID type SEL
  472. HID_CONSUMER_AC_SET_ALARM: 0x282, // HID type SEL
  473. HID_CONSUMER_AC_CLEAR_ALARM: 0x283, // HID type SEL
  474. HID_CONSUMER_AC_SNOOZE_ALARM: 0x284, // HID type SEL
  475. HID_CONSUMER_AC_RESET_ALARM: 0x285, // HID type SEL
  476. HID_CONSUMER_AC_SYNCHRONIZE: 0x286, // HID type SEL
  477. HID_CONSUMER_AC_SEND_SLASH_RECEIVE: 0x287, // HID type SEL
  478. HID_CONSUMER_AC_SEND_TO: 0x288, // HID type SEL
  479. HID_CONSUMER_AC_REPLY: 0x289, // HID type SEL
  480. HID_CONSUMER_AC_REPLY_ALL: 0x28A, // HID type SEL
  481. HID_CONSUMER_AC_FORWARD_MSG: 0x28B, // HID type SEL
  482. HID_CONSUMER_AC_SEND: 0x28C, // HID type SEL
  483. HID_CONSUMER_AC_ATTACH_FILE: 0x28D, // HID type SEL
  484. HID_CONSUMER_AC_UPLOAD: 0x28E, // HID type SEL
  485. HID_CONSUMER_AC_DOWNLOAD_SAVE_TARGET_AS: 0x28F, // HID type SEL
  486. HID_CONSUMER_AC_SET_BORDERS: 0x290, // HID type SEL
  487. HID_CONSUMER_AC_INSERT_ROW: 0x291, // HID type SEL
  488. HID_CONSUMER_AC_INSERT_COLUMN: 0x292, // HID type SEL
  489. HID_CONSUMER_AC_INSERT_FILE: 0x293, // HID type SEL
  490. HID_CONSUMER_AC_INSERT_PICTURE: 0x294, // HID type SEL
  491. HID_CONSUMER_AC_INSERT_OBJECT: 0x295, // HID type SEL
  492. HID_CONSUMER_AC_INSERT_SYMBOL: 0x296, // HID type SEL
  493. HID_CONSUMER_AC_SAVE_AND_CLOSE: 0x297, // HID type SEL
  494. HID_CONSUMER_AC_RENAME: 0x298, // HID type SEL
  495. HID_CONSUMER_AC_MERGE: 0x299, // HID type SEL
  496. HID_CONSUMER_AC_SPLIT: 0x29A, // HID type SEL
  497. HID_CONSUMER_AC_DISRIBUTE_HORIZONTALLY: 0x29B, // HID type SEL
  498. HID_CONSUMER_AC_DISTRIBUTE_VERTICALLY: 0x29C, // HID type SEL
  499. }