source: mainline/uspace/drv/usbhid/multimedia/keymap.c@ 97cb542

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 97cb542 was d3b6d5e, checked in by Lubos Slovak <lubos.slovak@…>, 14 years ago

Renamed lgtch-ultrax subdriver to multimedia

  • Property mode set to 100644
File size: 20.8 KB
Line 
1/*
2 * Copyright (c) 2011 Lubos Slovak
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * - Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * - The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29/** @addtogroup drvusbhid
30 * @{
31 */
32/** @file
33 * UUSB multimedia key to keycode mapping.
34 */
35
36#include <io/keycode.h>
37#include <stdint.h>
38#include <stdio.h>
39#include <usb/debug.h>
40#include "keymap.h"
41
42/**
43 * Mapping between USB HID multimedia usages (from HID Usage Tables) and
44 * corresponding HelenOS key codes.
45 *
46 * Currently only Usages used by Logitech UltraX keyboard are present. All other
47 * should result in 0.
48 */
49static int usb_hid_keymap_consumer[0x29c] = {
50 [0xf] = KC_F1, /* Just for testing purposes */
51 [0x5] = KC_F2, /* Just for testing purposes */
52 [0x8] = KC_F3, /* Just for testing purposes */
53 [0x6] = KC_F4, /* Just for testing purposes */
54 [0x7] = KC_F5, /* Just for testing purposes */
55 [0xc] = KC_F6, /* Just for testing purposes */
56
57 [0xb5] = 0, /* Scan Next Track */
58 [0xb6] = 0, /* Scan Previous Track */
59 [0xb7] = 0, /* Stop */
60 [0xb8] = 0, /* Eject */
61 [0xcd] = KC_F2, /* Play/Pause */
62 [0xe2] = KC_F3, /* Mute */
63 [0xe9] = KC_F5, /* Volume Increment */
64 [0xea] = KC_F4, /* Volume Decrement */
65 [0x183] = 0, /* AL Consumer Control Configuration */
66 [0x18a] = 0, /* AL Email Reader */
67 [0x192] = 0, /* AL Calculator */
68 [0x221] = 0, /* AC Search */
69 [0x223] = 0, /* AC Home */
70 [0x224] = 0, /* AC Back */
71 [0x225] = 0, /* AC Forward */
72 [0x226] = 0, /* AC Stop */
73 [0x227] = KC_F1, /* AC Refresh */
74 [0x22a] = KC_F6 /* AC Bookmarks */
75};
76
77static const char *usb_hid_consumer_usage_str[0x29d] = {
78 [0x01] = "Consumer Control",
79 [0x02] = "Numeric Key Pad",
80 [0x03] = "Programmable Buttons",
81 [0x04] = "Microphone",
82 [0x05] = "Headphone",
83 [0x06] = "Graphic Equalizer",
84 [0x07] = "Reserved",
85 [0x08] = "Reserved",
86 [0x09] = "Reserved",
87 [0x0a] = "Reserved",
88 [0x0b] = "Reserved",
89 [0x0c] = "Reserved",
90 [0x0d] = "Reserved",
91 [0x0e] = "Reserved",
92 [0x0f] = "Reserved",
93 [0x10] = "Reserved",
94 [0x11] = "Reserved",
95 [0x12] = "Reserved",
96 [0x13] = "Reserved",
97 [0x14] = "Reserved",
98 [0x15] = "Reserved",
99 [0x16] = "Reserved",
100 [0x17] = "Reserved",
101 [0x18] = "Reserved",
102 [0x19] = "Reserved",
103 [0x1a] = "Reserved",
104 [0x1b] = "Reserved",
105 [0x1c] = "Reserved",
106 [0x1d] = "Reserved",
107 [0x1e] = "Reserved",
108 [0x1f] = "Reserved",
109 [0x20] = "+10",
110 [0x21] = "+100",
111 [0x22] = "AM/PM",
112 [0x23] = "Reserved",
113 [0x24] = "Reserved",
114 [0x25] = "Reserved",
115 [0x26] = "Reserved",
116 [0x27] = "Reserved",
117 [0x28] = "Reserved",
118 [0x29] = "Reserved",
119 [0x2a] = "Reserved",
120 [0x2b] = "Reserved",
121 [0x2c] = "Reserved",
122 [0x2d] = "Reserved",
123 [0x2e] = "Reserved",
124 [0x2f] = "Reserved",
125 [0x30] = "Reserved",
126 [0x31] = "Reserved",
127 [0x32] = "Reserved",
128 [0x33] = "Reserved",
129 [0x34] = "Reserved",
130 [0x35] = "Reserved",
131 [0x36] = "Reserved",
132 [0x37] = "Reserved",
133 [0x38] = "Reserved",
134 [0x39] = "Reserved",
135 [0x3a] = "Reserved",
136 [0x3b] = "Reserved",
137 [0x3c] = "Reserved",
138 [0x3d] = "Reserved",
139 [0x3e] = "Reserved",
140 [0x3f] = "Reserved",
141 [0x40] = "Menu",
142 [0x41] = "Menu Pick",
143 [0x42] = "Menu Up",
144 [0x43] = "Menu Down",
145 [0x44] = "Menu Left",
146 [0x45] = "Menu Right",
147 [0x46] = "Menu Escape",
148 [0x47] = "Menu Value Increase",
149 [0x48] = "Menu Value Decrease",
150 [0x49] = "Reserved",
151 [0x4a] = "Reserved",
152 [0x4b] = "Reserved",
153 [0x4c] = "Reserved",
154 [0x4d] = "Reserved",
155 [0x4e] = "Reserved",
156 [0x4f] = "Reserved",
157 [0x50] = "Reserved",
158 [0x51] = "Reserved",
159 [0x52] = "Reserved",
160 [0x53] = "Reserved",
161 [0x54] = "Reserved",
162 [0x55] = "Reserved",
163 [0x56] = "Reserved",
164 [0x57] = "Reserved",
165 [0x58] = "Reserved",
166 [0x59] = "Reserved",
167 [0x5a] = "Reserved",
168 [0x5b] = "Reserved",
169 [0x5c] = "Reserved",
170 [0x5d] = "Reserved",
171 [0x5e] = "Reserved",
172 [0x5f] = "Reserved",
173 [0x60] = "Data On Screen",
174 [0x61] = "Closed Caption",
175 [0x62] = "Closed Caption Select",
176 [0x63] = "VCR/TV",
177 [0x64] = "Broadcast Mode",
178 [0x65] = "Snapshot",
179 [0x66] = "Still",
180 [0x67] = "Reserved",
181 [0x68] = "Reserved",
182 [0x69] = "Reserved",
183 [0x6a] = "Reserved",
184 [0x6b] = "Reserved",
185 [0x6c] = "Reserved",
186 [0x6d] = "Reserved",
187 [0x6e] = "Reserved",
188 [0x6f] = "Reserved",
189 [0x70] = "Reserved",
190 [0x71] = "Reserved",
191 [0x72] = "Reserved",
192 [0x73] = "Reserved",
193 [0x74] = "Reserved",
194 [0x75] = "Reserved",
195 [0x76] = "Reserved",
196 [0x77] = "Reserved",
197 [0x78] = "Reserved",
198 [0x79] = "Reserved",
199 [0x7a] = "Reserved",
200 [0x7b] = "Reserved",
201 [0x7c] = "Reserved",
202 [0x7d] = "Reserved",
203 [0x7e] = "Reserved",
204 [0x7f] = "Reserved",
205 [0x80] = "Selection",
206 [0x81] = "Assign Selection",
207 [0x82] = "Mode Step",
208 [0x83] = "Recall Last",
209 [0x84] = "Enter Channel",
210 [0x85] = "Order Movie",
211 [0x86] = "Channel",
212 [0x87] = "Media Selection",
213 [0x88] = "Media Select Computer",
214 [0x89] = "Media Select TV",
215 [0x8a] = "Media Select WWW",
216 [0x8b] = "Media Select DVD",
217 [0x8c] = "Media Select Telephone",
218 [0x8d] = "Media Select Program Guide",
219 [0x8e] = "Media Select Video Phone",
220 [0x8f] = "Media Select Games",
221 [0x90] = "Media Select Messages",
222 [0x91] = "Media Select CD",
223 [0x92] = "Media Select VCR",
224 [0x93] = "Media Select Tuner",
225 [0x94] = "Quit",
226 [0x95] = "Help",
227 [0x96] = "Media Select Tape",
228 [0x97] = "Media Select Cable",
229 [0x98] = "Media Select Satellite",
230 [0x99] = "Media Select Security",
231 [0x9a] = "Media Select Home",
232 [0x9b] = "Media Select Call",
233 [0x9c] = "Channel Increment",
234 [0x9d] = "Channel Decrement",
235 [0x9e] = "Media Select SAP",
236 [0x9f] = "Reserved",
237 [0xa0] = "VCR Plus",
238 [0xa1] = "Once",
239 [0xa2] = "Daily",
240 [0xa3] = "Weekly",
241 [0xa4] = "Monthly",
242 [0xa5] = "Reserved",
243 [0xa6] = "Reserved",
244 [0xa7] = "Reserved",
245 [0xa8] = "Reserved",
246 [0xa9] = "Reserved",
247 [0xaa] = "Reserved",
248 [0xab] = "Reserved",
249 [0xac] = "Reserved",
250 [0xad] = "Reserved",
251 [0xae] = "Reserved",
252 [0xaf] = "Reserved",
253 [0xb0] = "Play",
254 [0xb1] = "Pause",
255 [0xb2] = "Record",
256 [0xb3] = "Fast Forward",
257 [0xb4] = "Rewind",
258 [0xb5] = "Scan Next Track",
259 [0xb6] = "Scan Previous Trac",
260 [0xb7] = "Stop",
261 [0xb8] = "Eject",
262 [0xb9] = "Random Play",
263 [0xba] = "Select Disc",
264 [0xbb] = "Enter Disc",
265 [0xbc] = "Repeat",
266 [0xbd] = "Tracking",
267 [0xbe] = "Track Normal",
268 [0xbf] = "Slow Tracking",
269 [0xc0] = "Frame Forward",
270 [0xc1] = "Frame Back",
271 [0xc2] = "Mark",
272 [0xc3] = "Clear Mark",
273 [0xc4] = "Repeat From Mark",
274 [0xc5] = "Return to Mark",
275 [0xc6] = "Search Mark Forward",
276 [0xc7] = "Search Mark Backwards",
277 [0xc8] = "Counter Reset",
278 [0xc9] = "Show Counter",
279 [0xca] = "Tracking Increment",
280 [0xcb] = "Tracking Decrement",
281 [0xcc] = "Stop/Eject",
282 [0xcd] = "Play/Pause",
283 [0xce] = "Play/Skip",
284 [0xcf] = "Reserved",
285 [0xd0] = "Reserved",
286 [0xd1] = "Reserved",
287 [0xd2] = "Reserved",
288 [0xd3] = "Reserved",
289 [0xd4] = "Reserved",
290 [0xd5] = "Reserved",
291 [0xd6] = "Reserved",
292 [0xd7] = "Reserved",
293 [0xd8] = "Reserved",
294 [0xd9] = "Reserved",
295 [0xda] = "Reserved",
296 [0xdb] = "Reserved",
297 [0xdc] = "Reserved",
298 [0xdd] = "Reserved",
299 [0xde] = "Reserved",
300 [0xdf] = "Reserved",
301 [0xe0] = "Volume",
302 [0xe1] = "Balance",
303 [0xe2] = "Mute",
304 [0xe3] = "Bass",
305 [0xe4] = "Treble",
306 [0xe5] = "Bass Boost",
307 [0xe6] = "Surround Mode",
308 [0xe7] = "Loudness",
309 [0xe8] = "MPX",
310 [0xe9] = "Volume Increment",
311 [0xea] = "Volume Decrement",
312 [0xeb] = "Reserved",
313 [0xec] = "Reserved",
314 [0xed] = "Reserved",
315 [0xee] = "Reserved",
316 [0xef] = "Reserved",
317 [0xf0] = "Speed Select",
318 [0xf1] = "Playback Speed",
319 [0xf2] = "Standard Play",
320 [0xf3] = "Long Play",
321 [0xf4] = "Extended Play",
322 [0xf5] = "Slow",
323 [0xf6] = "Reserved",
324 [0xf7] = "Reserved",
325 [0xf8] = "Reserved",
326 [0xf9] = "Reserved",
327 [0xfa] = "Reserved",
328 [0xfb] = "Reserved",
329 [0xfc] = "Reserved",
330 [0xfd] = "Reserved",
331 [0xfe] = "Reserved",
332 [0xff] = "Reserved",
333 [0x100] = "Fan Enable",
334 [0x101] = "Fan Speed",
335 [0x102] = "Light Enable",
336 [0x103] = "Light Illumination Level",
337 [0x104] = "Climate Control Enable",
338 [0x105] = "Room Temperature",
339 [0x106] = "Security Enable",
340 [0x107] = "Fire Alarm",
341 [0x108] = "Police Alarm",
342 [0x109] = "Proximity",
343 [0x10a] = "Motion",
344 [0x10b] = "Duress Alarm",
345 [0x10c] = "Holdup Alarm",
346 [0x10d] = "Medical Alarm",
347 [0x10e] = "Reserved",
348 [0x10f] = "Reserved",
349 [0x110] = "Reserved",
350 [0x111] = "Reserved",
351 [0x112] = "Reserved",
352 [0x113] = "Reserved",
353 [0x114] = "Reserved",
354 [0x115] = "Reserved",
355 [0x116] = "Reserved",
356 [0x117] = "Reserved",
357 [0x118] = "Reserved",
358 [0x119] = "Reserved",
359 [0x11a] = "Reserved",
360 [0x11b] = "Reserved",
361 [0x11c] = "Reserved",
362 [0x11d] = "Reserved",
363 [0x11e] = "Reserved",
364 [0x11f] = "Reserved",
365 [0x120] = "Reserved",
366 [0x121] = "Reserved",
367 [0x122] = "Reserved",
368 [0x123] = "Reserved",
369 [0x124] = "Reserved",
370 [0x125] = "Reserved",
371 [0x126] = "Reserved",
372 [0x127] = "Reserved",
373 [0x128] = "Reserved",
374 [0x129] = "Reserved",
375 [0x12a] = "Reserved",
376 [0x12b] = "Reserved",
377 [0x12c] = "Reserved",
378 [0x12d] = "Reserved",
379 [0x12e] = "Reserved",
380 [0x12f] = "Reserved",
381 [0x130] = "Reserved",
382 [0x131] = "Reserved",
383 [0x132] = "Reserved",
384 [0x133] = "Reserved",
385 [0x134] = "Reserved",
386 [0x135] = "Reserved",
387 [0x136] = "Reserved",
388 [0x137] = "Reserved",
389 [0x138] = "Reserved",
390 [0x139] = "Reserved",
391 [0x13a] = "Reserved",
392 [0x13b] = "Reserved",
393 [0x13c] = "Reserved",
394 [0x13d] = "Reserved",
395 [0x13e] = "Reserved",
396 [0x13f] = "Reserved",
397 [0x140] = "Reserved",
398 [0x141] = "Reserved",
399 [0x142] = "Reserved",
400 [0x143] = "Reserved",
401 [0x144] = "Reserved",
402 [0x145] = "Reserved",
403 [0x146] = "Reserved",
404 [0x147] = "Reserved",
405 [0x148] = "Reserved",
406 [0x149] = "Reserved",
407 [0x14a] = "Reserved",
408 [0x14b] = "Reserved",
409 [0x14c] = "Reserved",
410 [0x14d] = "Reserved",
411 [0x14e] = "Reserved",
412 [0x14f] = "Reserved",
413 [0x150] = "Balance Right",
414 [0x151] = "Balance Left",
415 [0x152] = "Bass Increment",
416 [0x153] = "Bass Decrement",
417 [0x154] = "Treble Increment",
418 [0x155] = "Treble Decrement",
419 [0x156] = "Reserved",
420 [0x157] = "Reserved",
421 [0x158] = "Reserved",
422 [0x159] = "Reserved",
423 [0x15a] = "Reserved",
424 [0x15b] = "Reserved",
425 [0x15c] = "Reserved",
426 [0x15d] = "Reserved",
427 [0x15e] = "Reserved",
428 [0x15f] = "Reserved",
429 [0x160] = "Speaker System",
430 [0x161] = "Channel Left",
431 [0x162] = "Channel Right",
432 [0x163] = "Channel Center",
433 [0x164] = "Channel Front",
434 [0x165] = "Channel Center Front",
435 [0x166] = "Channel Side",
436 [0x167] = "Channel Surround",
437 [0x168] = "Channel Low Frequency Enhancement",
438 [0x169] = "Channel Top",
439 [0x16a] = "Channel Unknown",
440 [0x16b] = "Reserved",
441 [0x16c] = "Reserved",
442 [0x16d] = "Reserved",
443 [0x16e] = "Reserved",
444 [0x16f] = "Reserved",
445 [0x170] = "Sub-channel",
446 [0x171] = "Sub-channel Increment",
447 [0x172] = "Sub-channel Decrement",
448 [0x173] = "Alternate Audio Increment",
449 [0x174] = "Alternate Audio Decrement",
450 [0x175] = "Reserved",
451 [0x176] = "Reserved",
452 [0x177] = "Reserved",
453 [0x178] = "Reserved",
454 [0x179] = "Reserved",
455 [0x17a] = "Reserved",
456 [0x17b] = "Reserved",
457 [0x17c] = "Reserved",
458 [0x17d] = "Reserved",
459 [0x17e] = "Reserved",
460 [0x17f] = "Reserved",
461 [0x180] = "Application Launch Buttons",
462 [0x181] = "AL Launch Buttion Configuration Tool",
463 [0x182] = "AL Programmable Button Configuration",
464 [0x183] = "AL Consumer Control Configuration",
465 [0x184] = "AL Word Processor",
466 [0x185] = "AL Text Editor",
467 [0x186] = "AL Spreadsheet",
468 [0x187] = "AL Graphics Editor",
469 [0x188] = "AL Presentation App",
470 [0x189] = "AL Database App",
471 [0x18a] = "AL Email Reader",
472 [0x18b] = "AL Newsreader",
473 [0x18c] = "AL Voicemail",
474 [0x18d] = "AL Contacts/Address Book",
475 [0x18e] = "AL Calendar/Schedule",
476 [0x18f] = "AL Task/Project Manager",
477 [0x190] = "AL Log/Journal/Timecard",
478 [0x191] = "AL Checkbook/Finance",
479 [0x192] = "AL Calculator",
480 [0x193] = "AL A/V Capture/Playback",
481 [0x194] = "AL Local Machine Browser",
482 [0x195] = "AL LAN/WAN Browser",
483 [0x196] = "AL Internet Browser",
484 [0x197] = "AL Remote Networking/ISP Connect",
485 [0x198] = "AL Network Conference",
486 [0x199] = "AL Network Chat",
487 [0x19a] = "AL Telephony/Dialer",
488 [0x19b] = "AL Logon",
489 [0x19c] = "AL Logoff",
490 [0x19d] = "AL Logon/Logoff",
491 [0x19e] = "AL Terminal Lock/Screensaver",
492 [0x19f] = "AL Control Panel",
493 [0x1a0] = "AL Command Line Processor/Run",
494 [0x1a1] = "AL Process/Task Manager",
495 [0x1a2] = "AL Select Task/Application",
496 [0x1a3] = "AL Next Task/Application",
497 [0x1a4] = "AL Previous Task/Application",
498 [0x1a5] = "AL Preemptive Halt Task/Application",
499 [0x1a6] = "AL Integrated Help Center",
500 [0x1a7] = "AL Documents",
501 [0x1a8] = "AL Thesaurus",
502 [0x1a9] = "AL Dictionary",
503 [0x1aa] = "AL Desktop",
504 [0x1ab] = "AL Spell Check",
505 [0x1ac] = "AL Grammar Check",
506 [0x1ad] = "AL Wireless Status",
507 [0x1ae] = "AL Keyboard Layout",
508 [0x1af] = "AL Virus Protection",
509 [0x1b0] = "AL Encryption",
510 [0x1b1] = "AL Screen Saver",
511 [0x1b2] = "AL Alarms",
512 [0x1b3] = "AL Clock",
513 [0x1b4] = "AL File Browser",
514 [0x1b5] = "AL Power Status",
515 [0x1b6] = "AL Image Browser",
516 [0x1b7] = "AL Audio Browser",
517 [0x1b8] = "AL Movie Browser",
518 [0x1b9] = "AL Digital Rights Manager",
519 [0x1ba] = "AL Digital Wallet",
520 [0x1bb] = "Reserved",
521 [0x1bc] = "AL Instant Messaging",
522 [0x1bd] = "AL OEM Features Tips/Tutorial Browser",
523 [0x1be] = "AL OEM Help",
524 [0x1bf] = "AL Online Community",
525 [0x1c0] = "AL Entertainment Content Browser",
526 [0x1c1] = "AL Online Shopping Browser",
527 [0x1c2] = "AL SmartCard Information/Help",
528 [0x1c3] = "AL Market Monitor/Finance Browser",
529 [0x1c4] = "AL Customized Corporate News Browser",
530 [0x1c5] = "AL Online Activity Browser",
531 [0x1c6] = "AL Research/Search Browser",
532 [0x1c7] = "AL Audio Player",
533 [0x1c8] = "Reserved",
534 [0x1c9] = "Reserved",
535 [0x1ca] = "Reserved",
536 [0x1cb] = "Reserved",
537 [0x1cc] = "Reserved",
538 [0x1cd] = "Reserved",
539 [0x1ce] = "Reserved",
540 [0x1cf] = "Reserved",
541 [0x1d0] = "Reserved",
542 [0x1d1] = "Reserved",
543 [0x1d2] = "Reserved",
544 [0x1d3] = "Reserved",
545 [0x1d4] = "Reserved",
546 [0x1d5] = "Reserved",
547 [0x1d6] = "Reserved",
548 [0x1d7] = "Reserved",
549 [0x1d8] = "Reserved",
550 [0x1d9] = "Reserved",
551 [0x1da] = "Reserved",
552 [0x1db] = "Reserved",
553 [0x1dc] = "Reserved",
554 [0x1dd] = "Reserved",
555 [0x1de] = "Reserved",
556 [0x1df] = "Reserved",
557 [0x1e0] = "Reserved",
558 [0x1e1] = "Reserved",
559 [0x1e2] = "Reserved",
560 [0x1e3] = "Reserved",
561 [0x1e4] = "Reserved",
562 [0x1e5] = "Reserved",
563 [0x1e6] = "Reserved",
564 [0x1e7] = "Reserved",
565 [0x1e8] = "Reserved",
566 [0x1e9] = "Reserved",
567 [0x1ea] = "Reserved",
568 [0x1eb] = "Reserved",
569 [0x1ec] = "Reserved",
570 [0x1ed] = "Reserved",
571 [0x1ee] = "Reserved",
572 [0x1ef] = "Reserved",
573 [0x1f0] = "Reserved",
574 [0x1f1] = "Reserved",
575 [0x1f2] = "Reserved",
576 [0x1f3] = "Reserved",
577 [0x1f4] = "Reserved",
578 [0x1f5] = "Reserved",
579 [0x1f6] = "Reserved",
580 [0x1f7] = "Reserved",
581 [0x1f8] = "Reserved",
582 [0x1f9] = "Reserved",
583 [0x1fa] = "Reserved",
584 [0x1fb] = "Reserved",
585 [0x1fc] = "Reserved",
586 [0x1fd] = "Reserved",
587 [0x1fe] = "Reserved",
588 [0x1ff] = "Reserved",
589 [0x200] = "Generic GUI Application Controls",
590 [0x201] = "AC New",
591 [0x202] = "AC Open",
592 [0x203] = "AC Close",
593 [0x204] = "AC Exit",
594 [0x205] = "AC Maximize",
595 [0x206] = "AC Minimize",
596 [0x207] = "AC Save",
597 [0x208] = "AC Print",
598 [0x209] = "AC Properties",
599 [0x20a] = "",
600 [0x20b] = "",
601 [0x20c] = "",
602 [0x20d] = "",
603 [0x20e] = "",
604 [0x20f] = "",
605 [0x210] = "",
606 [0x211] = "",
607 [0x212] = "",
608 [0x213] = "",
609 [0x214] = "",
610 [0x215] = "",
611 [0x216] = "",
612 [0x217] = "",
613 [0x218] = "",
614 [0x219] = "",
615 [0x21a] = "AC Undo",
616 [0x21b] = "AC Copy",
617 [0x21c] = "AC Cut",
618 [0x21d] = "AC Paste",
619 [0x21e] = "AC Select All",
620 [0x21f] = "AC Find",
621 [0x220] = "AC Find and Replace",
622 [0x221] = "AC Search",
623 [0x222] = "AC Go To",
624 [0x223] = "AC Home",
625 [0x224] = "AC Back",
626 [0x225] = "AC Forward",
627 [0x226] = "AC Stop",
628 [0x227] = "AC Refresh",
629 [0x228] = "AC Previous Link",
630 [0x229] = "AC Next Link",
631 [0x22a] = "AC Bookmarks",
632 [0x22b] = "AC History",
633 [0x22c] = "AC Subscriptions",
634 [0x22d] = "AC Zoom In",
635 [0x22e] = "AC Zoom Out",
636 [0x22f] = "AC Zoom",
637 [0x230] = "AC Full Screen View",
638 [0x231] = "AC Normal View",
639 [0x232] = "AC View Toggle",
640 [0x233] = "AC Scroll Up",
641 [0x234] = "AC Scroll Down",
642 [0x235] = "AC Scroll",
643 [0x236] = "AC Pan Left",
644 [0x237] = "AC Pan Right",
645 [0x238] = "AC Pan",
646 [0x239] = "AC New Window",
647 [0x23a] = "AC Tile Horizontally",
648 [0x23b] = "AC Tile Vertically",
649 [0x23c] = "AC Format",
650 [0x23d] = "AC Edit",
651 [0x23e] = "AC Bold",
652 [0x23f] = "AC Italics",
653 [0x240] = "AC Undeline",
654 [0x241] = "AC Strikethrough",
655 [0x242] = "AC Subscript",
656 [0x243] = "AC Superscript",
657 [0x244] = "AC All Caps",
658 [0x245] = "AC Rotate",
659 [0x246] = "AC Resize",
660 [0x247] = "AC Flip Horizontal",
661 [0x248] = "AC Flip Vertical",
662 [0x249] = "AC Mirror Horizontal",
663 [0x24a] = "AC Mirror Vertical",
664 [0x24b] = "AC Font Select",
665 [0x24c] = "AC Font Color",
666 [0x24d] = "AC Font Size",
667 [0x24e] = "AC Justify Left",
668 [0x24f] = "AC Justify Center H",
669 [0x250] = "AC Justify Right",
670 [0x251] = "AC Justify Block H",
671 [0x252] = "AC Justify Top",
672 [0x253] = "AC Justify Center V",
673 [0x254] = "AC Justify Bottom",
674 [0x255] = "AC Justify Block V",
675 [0x256] = "AC Indent Decrease",
676 [0x257] = "AC Indent Increase",
677 [0x258] = "AC Numbered List",
678 [0x259] = "AC Restart Numbering",
679 [0x25a] = "AC Bulleted List",
680 [0x25b] = "AC Promote",
681 [0x25c] = "AC Demote",
682 [0x25d] = "AC Yes",
683 [0x25e] = "AC No",
684 [0x25f] = "AC Cancel",
685 [0x260] = "AC Catalog",
686 [0x261] = "AC Buy/Checkout",
687 [0x262] = "AC Add to Cart",
688 [0x263] = "AC Expand",
689 [0x264] = "AC Expand All",
690 [0x265] = "AC Collapse",
691 [0x266] = "AC Collapse All",
692 [0x267] = "AC Print Preview",
693 [0x268] = "AC Paste Special",
694 [0x269] = "AC Insert Mode",
695 [0x26a] = "AC Delete",
696 [0x26b] = "AC Lock",
697 [0x26c] = "AC Unlock",
698 [0x26d] = "AC Protect",
699 [0x26e] = "AC Unprotect",
700 [0x26f] = "AC Attach Comment",
701 [0x270] = "AC Delete Comment",
702 [0x271] = "AC View Comment",
703 [0x272] = "AC Select Word",
704 [0x273] = "AC Select Sentence",
705 [0x274] = "AC Select Paragraph",
706 [0x275] = "AC Select Column",
707 [0x276] = "AC Select Row",
708 [0x277] = "AC Select Table",
709 [0x278] = "AC Select Object",
710 [0x279] = "AC Redo/Repeat",
711 [0x27a] = "AC Sort",
712 [0x27b] = "AC Sort Ascending",
713 [0x27c] = "AC Sort Descending",
714 [0x27d] = "AC Filter",
715 [0x27e] = "AC Set Clock",
716 [0x27f] = "AC View Clock",
717 [0x280] = "AC Select Time Zone",
718 [0x281] = "AC Edit Time Zones",
719 [0x282] = "AC Set Alarm",
720 [0x283] = "AC Clear Alarm",
721 [0x284] = "AC Snooze Alarm",
722 [0x285] = "AC Reset Alarm",
723 [0x286] = "AC Synchronize",
724 [0x287] = "AC Send/Receive",
725 [0x288] = "AC Send To",
726 [0x289] = "AC Reply",
727 [0x28a] = "AC Reply All",
728 [0x28b] = "AC Forward Msg",
729 [0x28c] = "AC Send",
730 [0x28d] = "AC Attach File",
731 [0x28e] = "AC Upload",
732 [0x28f] = "AC Download (Save Target As)",
733 [0x290] = "AC Set Borders",
734 [0x291] = "AC Insert Row",
735 [0x292] = "AC Insert Column",
736 [0x293] = "AC Insert File",
737 [0x294] = "AC Insert Picture",
738 [0x295] = "AC Insert Object",
739 [0x296] = "AC Insert Symbol",
740 [0x297] = "AC Save and Close",
741 [0x298] = "AC Rename",
742 [0x299] = "AC Merge",
743 [0x29a] = "AC Split",
744 [0x29b] = "AC Distrubute Horizontally",
745 [0x29c] = "AC Distrubute Vertically"
746};
747
748/**
749 * Translates USB HID Usages from the Consumer Page into HelenOS keycodes.
750 *
751 * @param usage USB HID Consumer Page Usage number.
752 *
753 * @retval HelenOS key code corresponding to the given USB Consumer Page Usage.
754 */
755unsigned int usb_multimedia_map_usage(int usage)
756{
757 unsigned int key;
758 int *map = usb_hid_keymap_consumer;
759 size_t map_length = sizeof(usb_hid_keymap_consumer) / sizeof(int);
760
761 if ((usage < 0) || ((size_t)usage >= map_length))
762 return -1;
763
764 /*! @todo What if the usage is not in the table? */
765 key = map[usage];
766
767 return key;
768}
769
770/**
771 * Translates USB HID Usages from the Consumer Page into their string
772 * representation.
773 *
774 * @param usage USB HID Consumer Page Usage number.
775 *
776 * @retval HelenOS key code corresponding to the given USB Consumer Page Usage.
777 */
778const char *usb_multimedia_usage_to_str(int usage)
779{
780 size_t map_length = sizeof(usb_hid_consumer_usage_str) / sizeof(char *);
781
782 if ((usage < 0) || ((size_t)usage >= map_length))
783 return "Unknown usage";
784
785 /*! @todo What if the usage is not in the table? */
786 return usb_hid_consumer_usage_str[usage];
787}
788
789/**
790 * @}
791 */
Note: See TracBrowser for help on using the repository browser.