Adding per-keyset editable data
[pierogi] / keysets / daewoo.cpp
1 #include "daewoo.h"
2 #include "protocols/rc5protocol.h"
3 #include "protocols/daewooprotocol.h"
4 #include "protocols/necprotocol.h"
5 #include "protocols/protonprotocol.h"
6
7 DaewooTV1::DaewooTV1(
8   unsigned int index)
9   : PIRKeysetMetaData(
10       "TV Keyset 1",
11       Daewoo_Make,
12       index)
13 {
14   addControlledDevice(Daewoo_Make, "21T5T", TV_Device);
15 }
16
17
18 void DaewooTV1::populateProtocol(
19   QObject *guiObject)
20 {
21   if (threadableProtocol)
22   {
23     // If the pointer is not null, the keyset must already be populated.
24     return;
25   }
26
27   threadableProtocol = new RC5Protocol(guiObject, index);
28
29   addKey("MENU", Menu_Key, 0x0012, 13);
30   addKey("OK", Select_Key, 0x0017, 13); // "enter"
31
32   addKey("0", Zero_Key, 0x1000, 13);
33   addKey("1", One_Key, 0x1001, 13);
34   addKey("2", Two_Key, 0x1002, 13);
35   addKey("3", Three_Key, 0x1003, 13);
36   addKey("4", Four_Key, 0x1004, 13);
37   addKey("5", Five_Key, 0x1005, 13);
38   addKey("6", Six_Key, 0x1006, 13);
39   addKey("7", Seven_Key, 0x1007, 13);
40   addKey("8", Eight_Key, 0x1008, 13);
41   addKey("9", Nine_Key, 0x1009, 13);
42   addKey("POWER", Power_Key, 0x100C, 13);
43   addKey("MUTE", Mute_Key, 0x100D, 13);
44   addKey("normal", Unmapped_Key, 0x100E, 13);
45   addKey("RECALL", PrevChannel_Key, 0x100F, 13);
46
47   addKey("VOL+", VolumeUp_Key, 0x1010, 13); // "Right"
48   addKey("VOL+", Right_Key, 0x1010, 13); // "Right"
49   addKey("VOL-", VolumeDown_Key, 0x1011, 13); // "Left"
50   addKey("VOL-", Left_Key, 0x1011, 13); // "Left"
51
52   addKey("PR+", ChannelUp_Key, 0x1020, 13); // "Up"
53   addKey("PR+", Up_Key, 0x1020, 13); // "Up"
54   addKey("PR-", ChannelDown_Key, 0x1021, 13); // "Down"
55   addKey("PR-", Down_Key, 0x1021, 13); // "Down"
56   addKey("system", Guide_Key, 0x1022, 13); // Not quite a guide
57   addKey("i-ii", Audio_Key, 0x1023, 13);
58   addKey("two_semicircles", Unmapped_Key, 0x1024, 13);
59   addKey("SLEEP", Sleep_Key, 0x1026, 13);
60   addKey("time", Unmapped_Key, 0x102A, 13);
61   addKey("SKIP", Unmapped_Key, 0x102D, 13); // woofer
62
63   addKey("yellow", Yellow_Key, 0x1032, 13); // "TIME"
64   addKey("blue", Blue_Key, 0x1034, 13); // "MODE"
65   addKey("videotext_info", Unmapped_Key, 0x1035, 13);
66   addKey("green", Green_Key, 0x1036, 13); // "MOVE"
67   addKey("red", Red_Key, 0x1037, 13); // "DEL"
68   addKey("scartmode", AuxInput_Key, 0x1038, 13); // "IN", "Src"
69   addKey("Teletext", Teletext_Key, 0x103C, 13); // "PAGE", "videotextmode"
70   addKey("tvmode", Input_Key, 0x103F, 13);
71 }
72
73
74 DaewooTV2::DaewooTV2(
75   unsigned int index)
76   : PIRKeysetMetaData(
77       "TV Keyset 1",
78       Daewoo_Make,
79       index)
80 {
81   addControlledDevice(Daewoo_Make, "DMQ-2141", TV_Device);
82 }
83
84
85 void DaewooTV2::populateProtocol(
86   QObject *guiObject)
87 {
88   if (threadableProtocol)
89   {
90     // If the pointer is not null, the keyset must already be populated.
91     return;
92   }
93
94   threadableProtocol = new DaewooProtocol(guiObject, index);
95
96   setPreData(0x14, 8);
97
98   addKey("0", Zero_Key, 0x00, 8);
99   addKey("1", One_Key, 0x01, 8);
100   addKey("2", Two_Key, 0x02, 8);
101   addKey("3", Three_Key, 0x03, 8);
102   addKey("4", Four_Key, 0x04, 8);
103   addKey("5", Five_Key, 0x05, 8);
104   addKey("6", Six_Key, 0x06, 8);
105   addKey("7", Seven_Key, 0x07, 8);
106   addKey("8", Eight_Key, 0x08, 8);
107   addKey("9", Nine_Key, 0x09, 8);
108   addKey("1-", Unmapped_Key, 0x0A, 8); // sort of double digit here...
109   addKey("2-", Unmapped_Key, 0x0B, 8);
110   addKey("AFT/Band", Unmapped_Key, 0x0C, 8); // Tuner Band key?
111   addKey("Preset", Unmapped_Key, 0x0D, 8);
112   addKey("Auto_Search+", Unmapped_Key, 0x0E, 8);
113   addKey("Fine_Tuning+", Unmapped_Key, 0x0F, 8);
114   addKey("Channel_Call", Unmapped_Key, 0x10, 8);
115   addKey("On_Timer", Timer_Key, 0x11, 8);
116   addKey("Auto_Search-", Unmapped_Key, 0x12, 8);
117   addKey("Fine_Tuning-", Unmapped_Key, 0x13, 8);
118   addKey("Hour", Unmapped_Key, 0x14, 8);
119   addKey("Minute", Unmapped_Key, 0x15, 8);
120   addKey("On_Timer_Enable", Unmapped_Key, 0x16, 8);
121   addKey("Sleep", Sleep_Key, 0x17, 8);
122   addKey("Volume+", VolumeUp_Key, 0x18, 8);
123   addKey("Up", Up_Key, 0x19, 8);
124   addKey("Select", Select_Key, 0x1A, 8);
125   addKey("Mute", Mute_Key, 0x1B, 8);
126   addKey("Volume-", VolumeDown_Key, 0x1C, 8);
127   addKey("Down", Down_Key, 0x1D, 8);
128   addKey("TV/VCR", Input_Key, 0x1E, 8);
129   addKey("Standby", Power_Key, 0x1F, 8);
130   addKey("3-", Unmapped_Key, 0x28, 8);
131   addKey("4-", Unmapped_Key, 0x29, 8);
132   addKey("Channel+", ChannelUp_Key, 0x30, 8);
133   addKey("Channel-", ChannelDown_Key, 0x34, 8);
134   addKey("Skip", Unmapped_Key, 0x38, 8);
135   addKey("System", Menu_Key, 0x39, 8);
136   addKey("Q.V.", Unmapped_Key, 0x3C, 8);
137 }
138
139
140 DaewooTV3::DaewooTV3(
141   unsigned int index)
142   : PIRKeysetMetaData(
143       "TV Keyset 3",
144       Daewoo_Make,
145       index)
146 {
147 }
148
149
150 void DaewooTV3::populateProtocol(
151   QObject *guiObject)
152 {
153   if (threadableProtocol)
154   {
155     // If the pointer is not null, the keyset must already be populated.
156     return;
157   }
158
159   threadableProtocol = new NECProtocol(guiObject, index, false, true);
160
161   setPreData(0x14, 8);
162
163   addKey("0/10", Zero_Key, 0x00, 8);
164   addKey("1", One_Key, 0x01, 8);
165   addKey("2", Two_Key, 0x02, 8);
166   addKey("3", Three_Key, 0x03, 8);
167   addKey("4", Four_Key, 0x04, 8);
168   addKey("5", Five_Key, 0x05, 8);
169   addKey("6", Six_Key, 0x06, 8);
170   addKey("7", Seven_Key, 0x07, 8);
171   addKey("8", Eight_Key, 0x08, 8);
172   addKey("9", Nine_Key, 0x09, 8);
173   addKey("SOUND MODE", SoundMode_Key, 0x0A, 8);
174   addKey("100", PlusOneHundred_Key, 0x0B, 8);
175   addKey("TV/CATV", Input_Key, 0x0C, 8);
176   addKey("SLEEP", Sleep_Key, 0x0D, 8);
177   addKey("RECALL", Unmapped_Key, 0x11, 8);
178   addKey("MUTE", Mute_Key, 0x12, 8);
179   addKey("VOL UP", VolumeUp_Key, 0x13, 8);
180   addKey("VOL DOWN", VolumeDown_Key, 0x14, 8);
181   addKey("POWER", Power_Key, 0x15, 8);
182   addKey("AV/COMP", AuxInput_Key, 0x16, 8);
183   addKey("CH UP", ChannelUp_Key, 0x17, 8);
184   addKey("CH DOWN", ChannelDown_Key, 0x18, 8);
185   addKey("SOUND EFFECT", Unmapped_Key, 0x1B, 8);
186   addKey("PREVIOUS CH", PrevChannel_Key, 0x20, 8);
187   addKey("MENU", Menu_Key, 0x22, 8);
188   addKey("CAPTION TEXT", Captions_Key, 0x25, 8);
189   addKey("PANEL LOCK", Unmapped_Key, 0x26, 8);
190   addKey("PICTURE MODE NORMAL", PictureMode_Key, 0x27, 8);
191   addKey("PIP.ON/OFF", PIP_Key, 0x28, 8);
192   addKey("P.SWAP", PIPSwap_Key, 0x29, 8);
193   addKey("P.STILL", PIPPause_Key, 0x2A, 8);
194   addKey("P.POSITION", PIPMove_Key, 0x2B, 8);
195   addKey("P.INPUT", PIPSource_Key, 0x2C, 8);
196   addKey("P.CH UP", PIPChannelUp_Key, 0x2D, 8);
197   addKey("ADD/DEL", Unmapped_Key, 0x2E, 8);
198   addKey("P.CH DOWN", PIPChannelDown_Key, 0x2F, 8);
199   addKey("T.RED", Red_Key, 0x32, 8);
200   addKey("T.GREEN", Green_Key, 0x33, 8);
201   addKey("T.YELLOW", Yellow_Key, 0x34, 8);
202   addKey("T.CYAN", Blue_Key, 0x35, 8);
203   addKey("GUIDE", Guide_Key, 0x36, 8);
204   addKey("ENTER", Select_Key, 0x37, 8);
205   addKey("FAVORITE CH", Favorites_Key, 0x3C, 8);
206   addKey("WIDE MODE", AspectRatio_Key, 0x3D, 8);
207   addKey("SUBTITLE", Unmapped_Key, 0x3E, 8);
208   addKey("T.MIX", TeletextAndTV_Key, 0x40, 8);
209   addKey("T.INDEX", TeletextIndex_Key, 0x41, 8);
210   addKey("T.HOLD", TeletextHold_Key, 0x42, 8);
211   addKey("T.SIZE", TeletextSize_Key, 0x43, 8);
212   addKey("T.SUB CODE", Unmapped_Key, 0x44, 8); // shows a subpage?
213   addKey("T.REVEAL", TeletextReveal_Key, 0x45, 8);
214   addKey("T.CANCEL", Unmapped_Key, 0x48, 8); // turns off teletext
215   addKey("MINIOR CHANNEL UP", Unmapped_Key, 0x4E, 8); // I have no clue
216   addKey("MINIOR CHANNEL DOWN", Unmapped_Key, 0x4F, 8);
217   addKey("PROG. GUIDE", Unmapped_Key, 0x52, 8); // which guide is which?
218   addKey("DTV/PC (000218)", PCInput_Key, 0x54, 8);
219   addKey("KEY ALL SENSOR", Unmapped_Key, 0x55, 8);
220   addKey("CHILD LOCK DISPLAY", Unmapped_Key, 0x56, 8);
221   addKey("Digital/Analog", Unmapped_Key, 0x61, 8);
222   addKey("POWER ON", PowerOn_Key, 0x63, 8);
223   addKey("POWER DOWN", PowerOff_Key, 0x64, 8);
224 }
225
226
227 DaewooTV4::DaewooTV4(
228   unsigned int index)
229   : PIRKeysetMetaData(
230       "TV Keyset 4",
231       Daewoo_Make,
232       index)
233 {
234 }
235
236
237 void DaewooTV4::populateProtocol(
238   QObject *guiObject)
239 {
240   if (threadableProtocol)
241   {
242     // If the pointer is not null, the keyset must already be populated.
243     return;
244   }
245
246   threadableProtocol = new NECProtocol(guiObject, index, true, true);
247
248   setPreData(0x1004, 16);
249
250   addKey("0", Zero_Key, 0x00, 8);
251   addKey("1", One_Key, 0x01, 8);
252   addKey("2", Two_Key, 0x02, 8);
253   addKey("3", Three_Key, 0x03, 8);
254   addKey("4", Four_Key, 0x04, 8);
255   addKey("5", Five_Key, 0x05, 8);
256   addKey("6", Six_Key, 0x06, 8);
257   addKey("7", Seven_Key, 0x07, 8);
258   addKey("8", Eight_Key, 0x08, 8);
259   addKey("9", Nine_Key, 0x09, 8);
260   addKey("channel up", ChannelUp_Key, 0x0A, 8); // "up arrow"
261   addKey("channel up", Up_Key, 0x0A, 8); // "up arrow"
262   addKey("channel down", ChannelDown_Key, 0x0B, 8);  // "down arrow"
263   addKey("channel down", Down_Key, 0x0B, 8);  // "down arrow"
264   addKey("vol up", VolumeUp_Key, 0x0C, 8); // "right arrow"
265   addKey("vol up", Right_Key, 0x0C, 8); // "right arrow"
266   addKey("vol down", VolumeDown_Key, 0x0D, 8); // "left arrow"
267   addKey("vol down", Left_Key, 0x0D, 8); // "left arrow"
268   addKey("mute", Mute_Key, 0x0E, 8);
269   addKey("power", Power_Key, 0x0F, 8);
270   addKey("tv/catv (ant/cbl)", AntennaInput_Key, 0x10, 8);
271   addKey("+100", PlusOneHundred_Key, 0x11, 8);
272   addKey("tv/vcr", Input_Key, 0x12, 8);
273   addKey("sound", SoundMode_Key, 0x13, 8);
274   addKey("scan", Scan_Key, 0x14, 8);
275   addKey("sleep", Sleep_Key, 0x15, 8);
276   addKey("picture menu", PictureMode_Key, 0x16, 8);
277   addKey("display", Info_Key, 0x17, 8);
278   addKey("menu", Menu_Key, 0x18, 8);
279   addKey("last (prev ch)", PrevChannel_Key, 0x19, 8);
280   addKey("memory", Memory_Key, 0x1A, 8);
281   addKey("fuzzy", Unmapped_Key, 0x1B, 8);  // what?
282   // these look bad:
283 //  addKey("enter", Enter_Key, 0x11, 8);
284 //  addKey("pip move", PIPPosition_Key, 0x14, 8);
285 //  addKey("select", Select_Key, 0x18, 8);
286 //  addKey("pip on/off", PIP_Key, 0x19, 8);
287 }
288
289
290 DaewooTV5::DaewooTV5(
291   unsigned int index)
292   : PIRKeysetMetaData(
293       "TV Keyset 5",
294       Daewoo_Make,
295       index)
296 {
297 }
298
299
300 void DaewooTV5::populateProtocol(
301   QObject *guiObject)
302 {
303   if (threadableProtocol)
304   {
305     // Keyset already populated.
306     return;
307   }
308
309   threadableProtocol = new ProtonProtocol(guiObject, index);
310
311   setPreData(0x14, 8);
312
313   addKey("0", Zero_Key, 0x00, 8);
314   addKey("1", One_Key, 0x01, 8);
315   addKey("2", Two_Key, 0x02, 8);
316   addKey("3", Three_Key, 0x03, 8);
317   addKey("4", Four_Key, 0x04, 8);
318   addKey("5", Five_Key, 0x05, 8);
319   addKey("6", Six_Key, 0x06, 8);
320   addKey("7", Seven_Key, 0x07, 8);
321   addKey("8", Eight_Key, 0x08, 8);
322   addKey("9", Nine_Key, 0x09, 8);
323   addKey("Sleep", Sleep_Key, 0x0D, 8);
324   addKey("INFO", Info_Key, 0x11, 8);
325   addKey("MUTE", Mute_Key, 0x12, 8);
326   addKey("VOL+", VolumeUp_Key, 0x13, 8);
327   addKey("right", Right_Key, 0x13, 8);
328   addKey("VOL-", VolumeDown_Key, 0x14, 8);
329   addKey("left", Left_Key, 0x14, 8);
330   addKey("POWER", Power_Key, 0x15, 8);
331   addKey("INPUT", Input_Key, 0x16, 8);
332   addKey("CH+", ChannelUp_Key, 0x17, 8);
333   addKey("up", Up_Key, 0x17, 8);
334   addKey("CH-", ChannelDown_Key, 0x18, 8);
335   addKey("down", Down_Key, 0x18, 8);
336   addKey("Picture", PictureMode_Key, 0x1A, 8);
337   addKey("PREV", PrevChannel_Key, 0x20, 8);
338   addKey("MENU", Menu_Key, 0x22, 8);
339   addKey("CC", Captions_Key, 0x25, 8);
340 }
341
342
343 DaewooDVD1::DaewooDVD1(
344   unsigned int index)
345   : PIRKeysetMetaData(
346       "DVD Keyset 1",
347       Daewoo_Make,
348       index)
349 {
350 }
351
352
353 void DaewooDVD1::populateProtocol(
354   QObject *guiObject)
355 {
356   if (threadableProtocol)
357   {
358     // If the pointer is not null, the keyset must already be populated.
359     return;
360   }
361
362   threadableProtocol = new DaewooProtocol(guiObject, index);
363
364   setPreData(0x15, 8);
365
366   addKey("NUM0", Zero_Key, 0x90, 8);
367   addKey("NUM1", One_Key, 0x91, 8);
368   addKey("NUM2", Two_Key, 0x92, 8);
369   addKey("NUM3", Three_Key, 0x93, 8);
370   addKey("NUM4", Four_Key, 0x94, 8);
371   addKey("NUM5", Five_Key, 0x95, 8);
372   addKey("NUM6", Six_Key, 0x96, 8);
373   addKey("NUM7", Seven_Key, 0x97, 8);
374   addKey("NUM8", Eight_Key, 0x98, 8);
375   addKey("NUM9", Nine_Key, 0x99, 8);
376   addKey("SYSTEM", Guide_Key, 0x9A, 8); // not quite guide
377   addKey("SETUP", Menu_Key, 0x9B, 8);
378   addKey("PAUSE", Pause_Key, 0x9C, 8);
379   addKey("STOP", Stop_Key, 0x9D, 8);
380   addKey("PLAY", Play_Key, 0x9E, 8);
381   addKey("FFWD", FastForward_Key, 0x9F, 8);
382
383   addKey("REW", Rewind_Key, 0xA0, 8);
384   addKey("MENU", DiscMenu_Key, 0xA1, 8);
385   addKey("ENTER", Select_Key, 0xA2, 8);
386   addKey("NEXT", Next_Key, 0xA3, 8);
387   addKey("PREV", Previous_Key, 0xA4, 8);
388   addKey("POWER", Power_Key, 0xA5, 8);
389   addKey("SREW", StepBack_Key, 0xA6, 8);
390   addKey("UP", Up_Key, 0xA7, 8);
391   addKey("DOWN", Down_Key, 0xA8, 8);
392   addKey("RIGHT", Right_Key, 0xA9, 8);
393   addKey("LEFT", Left_Key, 0xAA, 8);
394   addKey("ANGLE", Angle_Key, 0xAB, 8);
395   addKey("CLEAR", Clear_Key, 0xAC, 8); // Might be exit key
396   addKey("AUDIO", Audio_Key, 0xAD, 8);
397   addKey("OPEN", Eject_Key, 0xAE, 8);
398   addKey("DISPLAY", Info_Key, 0xAF, 8);
399
400   addKey("TITLE", DiscTitle_Key, 0xB0, 8);
401   addKey("ZOOM", Zoom_Key, 0xB1, 8);
402   addKey("AB", RepeatAB_Key, 0xB3, 8);
403   addKey("3D", Unmapped_Key, 0xB4, 8);
404   addKey("SUB", Captions_Key, 0xB5, 8);
405   addKey("REPEAT", Repeat_Key, 0xB8, 8);
406   addKey("SCART", ScartInput_Key, 0xBA, 8);
407   addKey("PROG", Program_Key, 0xBB, 8);
408   addKey("SFFWD", StepForward_Key, 0xBC, 8);
409   addKey("SEARCH", Unmapped_Key, 0xBE, 8);
410   addKey("MUTE", Mute_Key, 0xBF, 8);
411 }
412
413
414 DaewooVCR1::DaewooVCR1(
415   unsigned int index)
416   : PIRKeysetMetaData(
417       "VCR Keyset 1",
418       Daewoo_Make,
419       index)
420 {
421   addControlledDevice(Daewoo_Make, "PV-200", VCR_Device);
422 }
423
424
425 void DaewooVCR1::populateProtocol(
426   QObject *guiObject)
427 {
428   if (threadableProtocol)
429   {
430     // If the pointer is not null, the keyset must already be populated.
431     return;
432   }
433
434   threadableProtocol = new NECProtocol(guiObject, index, false, true);
435
436   setPreData(0x31, 8);
437
438   addKey("+CH", ChannelUp_Key, 0x01, 8);
439   addKey("-CH", ChannelDown_Key, 0x02, 8);
440   addKey("1", One_Key, 0x04, 8);
441   addKey("2", Two_Key, 0x05, 8);
442   addKey("3", Three_Key, 0x06, 8);
443   addKey("4", Four_Key, 0x07, 8);
444
445   addKey("5", Five_Key, 0x0C, 8);
446   addKey("6", Six_Key, 0x0D, 8);
447   addKey("7", Seven_Key, 0x0E, 8);
448   addKey("8", Eight_Key, 0x0F, 8);
449
450   addKey("STOP", Stop_Key, 0x10, 8);
451   addKey("PAUSE/STILL", Pause_Key, 0x11, 8);
452   addKey("REW", Rewind_Key, 0x12, 8);
453   addKey("PLAY", Play_Key, 0x14, 8);
454   addKey("FF", FastForward_Key, 0x13, 8);
455   addKey("REC", Record_Key, 0x15, 8);
456   addKey("TYPE", Unmapped_Key, 0x18, 8);
457   addKey("INDEX", Unmapped_Key, 0x19, 8);
458   addKey("9", Nine_Key, 0x1C, 8);
459   addKey("0", Zero_Key, 0x1D, 8);
460   addKey("INPUT", Input_Key, 0x1E, 8);
461
462   addKey("MEMORY", Memory_Key, 0x43, 8);
463   addKey("RESET", Reset_Key, 0x44, 8);
464   addKey("CLEAR", Clear_Key, 0x4A, 8);
465   addKey("OK", Select_Key, 0x4B, 8); // enter key?
466   addKey("DISPLAY", Info_Key, 0x4C, 8);
467   addKey("VPS/PDC", RecordPDC_Key, 0x4F, 8);
468
469   addKey("POWER", Power_Key, 0x5B, 8);
470
471   addKey("ShowView", Unmapped_Key, 0x8C, 8); // vhsplus+, etc.
472   addKey("PRESET", Unmapped_Key, 0x9E, 8);
473   addKey("MENU/TV", Menu_Key, 0xCA, 8);
474 }
475
476
477 DaewooVCR2::DaewooVCR2(
478   unsigned int index)
479   : PIRKeysetMetaData(
480       "VCR Keyset 2",
481       Daewoo_Make,
482       index)
483 {
484   addControlledDevice(Daewoo_Make, "VQ857S", VCR_Device);
485 }
486
487
488 void DaewooVCR2::populateProtocol(
489   QObject *guiObject)
490 {
491   if (threadableProtocol)
492   {
493     // If the pointer is not null, the keyset must already be populated.
494     return;
495   }
496
497   threadableProtocol = new DaewooProtocol(guiObject, index);
498
499   setPreData(0x15, 8);
500
501   addKey("ch0", Zero_Key, 0x00, 8);
502   addKey("ch1", One_Key, 0x01, 8);
503   addKey("ch2", Two_Key, 0x02, 8);
504   addKey("ch3", Three_Key, 0x03, 8);
505   addKey("ch4", Four_Key, 0x04, 8);
506   addKey("ch5", Five_Key, 0x05, 8);
507   addKey("ch6", Six_Key, 0x06, 8);
508   addKey("ch7", Seven_Key, 0x07, 8);
509   addKey("ch8", Eight_Key, 0x08, 8);
510   addKey("ch9", Nine_Key, 0x09, 8);
511   addKey("stop", Stop_Key, 0x0D, 8);
512   addKey("play", Play_Key, 0x0E, 8);
513   addKey("ffwd", FastForward_Key, 0x0F, 8);
514
515   addKey("rew", Rewind_Key, 0x10, 8);
516   addKey("pause", Pause_Key, 0x11, 8);
517   addKey("O", Unmapped_Key, 0x12, 8);
518   addKey("next", Next_Key, 0x13, 8);
519   addKey("power", Power_Key, 0x15, 8);
520   addKey("tv/vcr", Input_Key, 0x16, 8);
521   addKey("prup", ChannelUp_Key, 0x17, 8);
522   addKey("prdown", ChannelDown_Key, 0x18, 8);
523   addKey("ad", Unmapped_Key, 0x19, 8);
524   addKey("asel", Unmapped_Key, 0x1A, 8);
525   addKey("sp/lp", VHSSpeed_Key, 0x1B, 8);
526   addKey("svc", Unmapped_Key, 0x1C, 8);
527   addKey("a", Unmapped_Key, 0x1D, 8);
528   addKey("gt30", Unmapped_Key, 0x1E, 8);
529   addKey("pal/sec", Unmapped_Key, 0x1F, 8);
530
531   addKey("eject", Eject_Key, 0x21, 8);
532   addKey("menu", Menu_Key, 0x22, 8);
533   addKey("qs", Unmapped_Key, 0x27, 8);
534   addKey("ok", Select_Key, 0x29, 8);
535   addKey("left", Left_Key, 0x31, 8);
536   addKey("indexup", Next_Key, 0x33, 8);
537   addKey("right", Right_Key, 0x35, 8);
538   addKey("av", AuxInput_Key, 0x36, 8);
539   addKey("sv/v+", Unmapped_Key, 0x39, 8);
540   addKey("indexdown", Previous_Key, 0x3F, 8);
541 }