4aaa0b5ac9ad92aab07f4fc491cbdcc3295ee0c0
[pierogi] / keysets / denon.cpp
1 #include "denon.h"
2 #include "protocols/sharpprotocol.h"
3 #include "protocols/lircprotocol.h"
4 #include "protocols/necprotocol.h"
5
6 // This whole set of Denon keysets is a mess.  Need to clean it up!!!
7
8 DenonDVD1::DenonDVD1(
9   QObject *guiObject,
10   unsigned int index)
11   : PIRKeysetMetaData(
12       "DVD Keyset 1",
13       Denon_Make,
14       index)
15 {
16   addControlledDevice(Denon_Make, "DVD-1930", DVD_Device);
17
18   threadableProtocol = new SharpProtocol(guiObject, index, false);
19
20   addSharpKey("SEARCH_MODE", Unmapped_Key, 0x04, 0x9E);
21   addSharpKey("ZOOM", Zoom_Key, 0x04, 0x9F);
22
23   addSharpKey("POWER_OFF", PowerOff_Key, 0x06, 0xC0);
24   addSharpKey("PAGE-", PageDown_Key, 0x06, 0xFD);
25   addSharpKey("PAGE+", PageUp_Key, 0x06, 0xFE);
26   addSharpKey("GROUP", Unmapped_Key, 0x06, 0xFF);
27
28   addSharpKey("SACD_SETUP", Unmapped_Key, 0x08, 0x7E);
29   addSharpKey("0", Zero_Key, 0x08, 0x81);
30   addSharpKey("1", One_Key, 0x08, 0x82);
31   addSharpKey("2", Two_Key, 0x08, 0x83);
32   addSharpKey("3", Three_Key, 0x08, 0x84);
33   addSharpKey("4", Four_Key, 0x08, 0x85);
34   addSharpKey("5", Five_Key, 0x08, 0x86);
35   addSharpKey("6", Six_Key, 0x08, 0x87);
36   addSharpKey("7", Seven_Key, 0x08, 0x88);
37   addSharpKey("8", Eight_Key, 0x08, 0x89);
38   addSharpKey("9", Nine_Key, 0x08, 0x8A);
39   addSharpKey("10+", DoubleDigit_Key, 0x08, 0x8C);
40   addSharpKey("SUBTITLE", Captions_Key, 0x08, 0x8D);
41   addSharpKey("AUDIO", Audio_Key, 0x08, 0x8E);
42   addSharpKey("ANGLE", Angle_Key, 0x08, 0x8F);
43   addSharpKey("OPEN_CLOSE", Eject_Key, 0x08, 0x90);
44   addSharpKey("MENU", DiscMenu_Key, 0x08, 0x91);
45   addSharpKey("RETURN", Exit_Key, 0x08, 0x92);
46   addSharpKey("REPEAT", Repeat_Key, 0x08, 0x94);
47   addSharpKey("SKIP_UP", Previous_Key, 0x08, 0x98);
48   addSharpKey("SKIP_DOWN", Next_Key, 0x08, 0x99);
49   addSharpKey("FAST_FORWARD", FastForward_Key, 0x08, 0x9A);
50   addSharpKey("FAST_REVERSE", Rewind_Key, 0x08, 0x9B);
51   addSharpKey("MODE", Mode_Key, 0x08, 0x9C);
52   addSharpKey("PAUSE", Pause_Key, 0x08, 0x9D);
53   addSharpKey("PLAY", Play_Key, 0x08, 0xA0);
54   addSharpKey("STOP", Stop_Key, 0x08, 0xA1);
55   addSharpKey("CLEAR", Clear_Key, 0x08, 0xA3);
56   addSharpKey("DISPLAY", Info_Key, 0x08, 0xA7);
57   addSharpKey("RANDOM", Random_Key, 0x08, 0xAA);
58   addSharpKey("UP", Up_Key, 0x08, 0xAC);
59   addSharpKey("DOWN", Down_Key, 0x08, 0xAD);
60   addSharpKey("RIGHT", Right_Key, 0x08, 0xAE);
61   addSharpKey("LEFT", Left_Key, 0x08, 0xAF);
62   addSharpKey("POWER_ON", PowerOn_Key, 0x08, 0xB2);
63   addSharpKey("A_B_REPEAT", RepeatAB_Key, 0x08, 0xBA);
64   addSharpKey("ENTER", Select_Key, 0x08, 0xBB);
65   addSharpKey("SETUP", Menu_Key, 0x08, 0xBC);
66   addSharpKey("TOP_MENU", DiscTitle_Key, 0x08, 0xBD);
67 }
68
69
70 DenonDVD2::DenonDVD2(
71   QObject *guiObject,
72   unsigned int index)
73   : PIRKeysetMetaData(
74       "DVD Keyset 2",
75       Denon_Make,
76       index)
77 {
78   addControlledDevice(Denon_Make, "DVD-2500", DVD_Device);
79
80   LIRCProtocol *lp = new LIRCProtocol(
81     guiObject,
82     index,
83     400, 500,
84     400, 1400,
85     43000, false);
86
87   threadableProtocol = lp;
88
89   lp->setHeaderPair(3500, 1800);
90   lp->setTrailerPulse(400);
91
92   setPreData(0x40040D00, 32);
93
94   addKey("Power", Power_Key, 0xBCB1, 16);
95   addKey("Open/Close", Eject_Key, 0x808D, 16);
96   addKey("Stop", Stop_Key, 0x000D, 16);
97   addKey("Pause", Pause_Key, 0x606D, 16);
98   addKey("Play", Play_Key, 0x505D, 16);
99   addKey("SkipBack", Previous_Key, 0x929F, 16);
100   addKey("SkipFwd", Next_Key, 0x525F, 16);
101   addKey("Rev", Rewind_Key, 0x202D, 16);
102   addKey("Fwd", FastForward_Key, 0xA0AD, 16);
103   addKey("Title", DiscTitle_Key, 0xD9D4, 16);
104   addKey("Menu", DiscMenu_Key, 0x010C, 16);
105   addKey("Display", Info_Key, 0x4944, 16);
106   addKey("Return", Exit_Key, 0x818C, 16);
107   addKey("Up", Up_Key, 0xA1AC, 16);
108   addKey("Down", Down_Key, 0x616C, 16);
109   addKey("Right", Right_Key, 0x111C, 16);
110   addKey("Left", Left_Key, 0xE1EC, 16);
111   addKey("Select", Select_Key, 0x414C, 16);
112   addKey("Subtitle", Captions_Key, 0x8984, 16);
113   addKey("Audio", Audio_Key, 0xCCC1, 16);
114   addKey("Angle", Angle_Key, 0x0904, 16);
115   addKey("Marker", Unmapped_Key, 0x717C, 16);
116   addKey("PlayMode", Unmapped_Key, 0xB1BC, 16);
117   addKey("RepeatMode", Repeat_Key, 0x313C, 16);
118   addKey("A-B_Repeat", RepeatAB_Key, 0x121F, 16);
119   addKey("Setup", Menu_Key, 0x2924, 16);
120   addKey("Clear", Clear_Key, 0xC1CC, 16);
121   addKey("VSS", Unmapped_Key, 0x7974, 16);
122   addKey("1", One_Key, 0x0805, 16);
123   addKey("2", Two_Key, 0x8885, 16);
124   addKey("3", Three_Key, 0x4845, 16);
125   addKey("4", Four_Key, 0xC8C5, 16);
126   addKey("5", Five_Key, 0x2825, 16);
127   addKey("6", Six_Key, 0xA8A5, 16);
128   addKey("7", Seven_Key, 0x6865, 16);
129   addKey("8", Eight_Key, 0xE8E5, 16);
130   addKey("9", Nine_Key, 0x1815, 16);
131   addKey("0", Zero_Key, 0x9895, 16);
132   addKey(">=10", DoubleDigit_Key, 0x919C, 16);
133 }
134
135
136 DenonDVD3::DenonDVD3(
137   QObject *guiObject,
138   unsigned int index)
139   : PIRKeysetMetaData(
140       "DVD Keyset 3",
141       Denon_Make,
142       index)
143 {
144   addControlledDevice(Denon_Make, "dvd-1000", DVD_Device);
145
146   threadableProtocol = new SharpProtocol(guiObject, index, false);
147
148   addSharpKey("0", Zero_Key, 0x01, 0x81);
149   addSharpKey("1", One_Key, 0x01, 0x82);
150   addSharpKey("2", Two_Key, 0x01, 0x83);
151   addSharpKey("3", Three_Key, 0x01, 0x84);
152   addSharpKey("4", Four_Key, 0x01, 0x85);
153   addSharpKey("5", Five_Key, 0x01, 0x86);
154   addSharpKey("6", Six_Key, 0x01, 0x87);
155   addSharpKey("7", Seven_Key, 0x01, 0x88);
156   addSharpKey("8", Eight_Key, 0x01, 0x89);
157   addSharpKey("9", Nine_Key, 0x01, 0x8A);
158   addSharpKey("10", Unmapped_Key, 0x01, 0x8C);
159   addSharpKey("subtitle", Captions_Key, 0x01, 0x8D);
160   addSharpKey("audio", Audio_Key, 0x01, 0x8E);
161   addSharpKey("angle", Angle_Key, 0x01, 0x8F);
162   addSharpKey("open-close", Eject_Key, 0x01, 0x90);
163   addSharpKey("menu", DiscMenu_Key, 0x01, 0x91);
164   addSharpKey("return", Exit_Key, 0x01, 0x92);
165   addSharpKey("repeat", Repeat_Key, 0x01, 0x97);
166   addSharpKey("skip+", Next_Key, 0x01, 0x98);
167   addSharpKey("skip-", Previous_Key, 0x01, 0x99);
168   addSharpKey("slow+", SlowPlus_Key, 0x01, 0x9A);
169   addSharpKey("slow-", SlowMinus_Key, 0x01, 0x9B);
170   addSharpKey("pause", Pause_Key, 0x01, 0x9D);
171   addSharpKey("play", Play_Key, 0x01, 0xA0);
172   addSharpKey("stop", Stop_Key, 0x01, 0xA1);
173   addSharpKey("program", Program_Key, 0x01, 0xA2);
174   addSharpKey("clear", Clear_Key, 0x01, 0xA3);
175   addSharpKey("display", Info_Key, 0x01, 0xA4);
176   addSharpKey("random", Random_Key, 0x01, 0xAA);
177   addSharpKey("arrow-up", Up_Key, 0x01, 0xAC);
178   addSharpKey("arrow-down", Down_Key, 0x01, 0xAD);
179   addSharpKey("arrow-right", Right_Key, 0x01, 0xAE);
180   addSharpKey("arrow-left", Left_Key, 0x01, 0xAF);
181   addSharpKey("ntsc-pal", Unmapped_Key, 0x01, 0xB7);
182   addSharpKey("power", Power_Key, 0x01, 0xB1);
183   addSharpKey("repeat-ab", RepeatAB_Key, 0x01, 0xBA);
184   addSharpKey("select", Select_Key, 0x01, 0xBB);
185   addSharpKey("setup", Menu_Key, 0x01, 0xBC);
186   addSharpKey("title", DiscTitle_Key, 0x01, 0xBD);
187   addSharpKey("call", Call_Key, 0x01, 0xBE);
188 }
189
190
191 DenonReceiver1::DenonReceiver1(
192   QObject *guiObject,
193   unsigned int index)
194   : PIRKeysetMetaData(
195       "Receiver Keyset 1",
196       Denon_Make,
197       index)
198 {
199   addControlledDevice(Denon_Make, "avr-1708", Audio_Device);
200
201   threadableProtocol = new SharpProtocol(guiObject, index, false);
202
203   addSharpKey("Phono", PhonoInput_Key, 0x02, 0xC3);
204   addSharpKey("CD", CDInput_Key, 0x02, 0xC4);
205   addSharpKey("Tuner", TunerInput_Key, 0x02, 0xC5); // "SRC_TUNNER"
206   addSharpKey("SRC_SATCBL", SatInput_Key, 0x02, 0xC8);
207   addSharpKey("TV_CBL", CableInput_Key, 0x02, 0xC9);
208   addSharpKey("SRC_HDP", DVDInput_Key, 0x02, 0xCA); // "DVD_TV"
209   addSharpKey("SRC_VAUX", AuxInput_Key, 0x02, 0xCC);
210   addSharpKey("VCR", VCRInput_Key, 0x02, 0xCD);
211   addSharpKey("SRC_DVR", DVRInput_Key, 0x02, 0xCE);
212   addSharpKey("DAT_Tape", TapeInput_Key, 0x02, 0xD2);
213   addSharpKey("Setup", Menu_Key, 0x02, 0xD8); // "VIDEO_SELECT"
214   addSharpKey("multi", Unmapped_Key, 0x02, 0xDB);
215   addSharpKey("analog", Unmapped_Key, 0x02, 0xDC);
216   addSharpKey("Right", Right_Key, 0x02, 0xDD);
217   addSharpKey("Return", Exit_Key, 0x02, 0xDE);
218   addSharpKey("Display", Info_Key, 0x02, 0xDF); // "onscreen"
219   addSharpKey("Enter", Select_Key, 0x02, 0xE0);
220   addSharpKey("On", PowerOn_Key, 0x02, 0xE1);
221   addSharpKey("Off", PowerOff_Key, 0x02, 0xE2);
222   addSharpKey("DVD_HDP", Unmapped_Key, 0x02, 0xE3); // "SRC_DVD"
223   addSharpKey("BTN_STD", Unmapped_Key, 0x02, 0xE4);
224   addSharpKey("Mode", Mode_Key, 0x02, 0xE6); // "BTN_SIMU"
225   addSharpKey("Stereo", Audio_Key, 0x02, 0xE7);
226   addSharpKey("Delay", Unmapped_Key, 0x02, 0xE9);
227   addSharpKey("Test_Tone", Unmapped_Key, 0x02, 0xEA);
228   addSharpKey("Mute", Mute_Key, 0x02, 0xF0);
229   addSharpKey("Volume_up", VolumeUp_Key, 0x02, 0xF1);
230   addSharpKey("Volume_down", VolumeDown_Key, 0x02, 0xF2);
231   addSharpKey("RearVolumeUp", RearVolumeUp_Key, 0x02, 0xF3);
232   addSharpKey("RearVolumeDown", RearVolumeDown_Key, 0x02, 0xF4);
233   addSharpKey("CenterVolumeUp", CenterVolumeUp_Key, 0x02, 0xF5);
234   addSharpKey("CenterVolumeDown", CenterVolumeDown_Key, 0x02, 0xF6);
235
236   addSharpKey("Pause", Pause_Key, 0x04, 0x53);
237   addSharpKey("Skip_Favorite", Favorites_Key, 0x04, 0x57);
238   addSharpKey("Forward", FastForward_Key, 0x04, 0x5A);
239   addSharpKey("Rewind", Rewind_Key, 0x04, 0x5B);
240   addSharpKey("Play", Play_Key, 0x04, 0x5C);
241   addSharpKey("Stop", Stop_Key, 0x04, 0x5E);
242   addSharpKey("TAPE_REC", Unmapped_Key, 0x04, 0x5F);
243   addSharpKey("BTN_STD_CINEMA", Unmapped_Key, 0x04, 0x95);
244   addSharpKey("BTN_STD_MUSIC", Unmapped_Key, 0x04, 0x96);
245   addSharpKey("Night_Audio", Unmapped_Key, 0x04, 0x98);
246   addSharpKey("BTN_MULTEQ", Unmapped_Key, 0x04, 0x9D);
247
248   addSharpKey("Left", Left_Key, 0x0C, 0x7F); // This looks wrong
249   addSharpKey("RCVR_SURROUND", Surround_Key, 0x0C, 0xA1);
250   addSharpKey("Up", Up_Key, 0x0C, 0xA3);
251   addSharpKey("Down", Down_Key, 0x0C, 0xA4);
252   addSharpKey("output", Unmapped_Key, 0x0C, 0xA5);
253   addSharpKey("BTN_HDMI_CONTROL", Unmapped_Key, 0x0C, 0xAF);
254   addSharpKey("ext.in", Unmapped_Key, 0x0C, 0xB5);
255   addSharpKey("input-mode", Unmapped_Key, 0x0C, 0xB6);
256   addSharpKey("Shift", TunerBand_Key, 0x0C, 0xCD);
257   addSharpKey("channel-", ChannelDown_Key, 0x0C, 0xD5);
258   addSharpKey("channel+", ChannelUp_Key, 0x0C, 0xD6);
259   addSharpKey("Dimmer", Unmapped_Key, 0x0C, 0xDF);
260 }
261
262
263 DenonReceiver1a::DenonReceiver1a(
264   QObject *guiObject,
265   unsigned int index)
266   : DenonReceiver1(guiObject, index)
267 {
268   setKeysetName("Receiver Keyset 1a");
269
270   addControlledDevice(Denon_Make, "AVR-1610", Audio_Device);
271
272   addSharpKey("BTN_SKIP", Unmapped_Key, 0x0C, 0xCC);
273   addSharpKey("BTN_PAUSE", Pause_Key, 0x0C, 0xCD);
274   addSharpKey("BTN_STOP", Stop_Key, 0x0C, 0xD7);
275   addSharpKey("BTN_PLAY", Play_Key, 0x0C, 0xD8);
276   addSharpKey("FAST_FORWARD", FastForward_Key, 0x0C, 0xD9);
277   addSharpKey("FAST_REVERSE", Rewind_Key, 0x0C, 0xDA);
278   addSharpKey("BTN_PREV", Previous_Key, 0x0C, 0xD5);
279   addSharpKey("BTN_NEXT", Next_Key, 0x0C, 0xD6);
280   addSharpKey("PAGE_UP", PageUp_Key, 0x0C, 0xDE);
281   addSharpKey("PAGE_DN", PageDown_Key, 0x0C, 0xDF);
282 }
283
284
285 DenonReceiver1b::DenonReceiver1b(
286   QObject *guiObject,
287   unsigned int index)
288   : DenonReceiver1(guiObject, index)
289 {
290   setKeysetName("Receiver Keyset 1b");
291
292   addControlledDevice(Denon_Make, "avr-3300", Audio_Device);
293
294   addSharpKey("setup", Menu_Key, 0x0C, 0x50);
295   addSharpKey("params", Unmapped_Key, 0x0C, 0x51);
296 }
297
298
299 DenonReceiver1c::DenonReceiver1c(
300   QObject *guiObject,
301   unsigned int index)
302   : DenonReceiver1(guiObject, index)
303 {
304   setKeysetName("Receiver Keyset 1c");
305
306   addControlledDevice(Denon_Make, "AVR-1602", Audio_Device);
307   addControlledDevice(Denon_Make, "AVR-1802", Audio_Device);
308   addControlledDevice(Denon_Make, "AVR-1803", Audio_Device);
309
310   addSharpKey("ONE", One_Key, 0x02, 0xC3);
311   addSharpKey("TWO", Two_Key, 0x02, 0xC4);
312   addSharpKey("THREE", Three_Key, 0x02, 0xE3);
313   addSharpKey("FOUR", Four_Key, 0x02, 0xCC);
314   addSharpKey("FIVE", Five_Key, 0x02, 0xCD);
315   addSharpKey("SIX", Six_Key, 0x02, 0xCE);
316   addSharpKey("SEVEN", Seven_Key, 0x02, 0xC9);
317   addSharpKey("EIGHT", Eight_Key, 0x0C, 0xB6); // must be wrong
318   addSharpKey("NINE", Nine_Key, 0x02, 0xD2);
319   addSharpKey("ZERO", Zero_Key, 0x02, 0xCA);
320   addSharpKey("RCVR_SURROUND_MODE", Surround_Key, 0x02, 0xE6);
321   addSharpKey("RCVR_STATUS", Info_Key, 0x02, 0xDE); // "Panel"
322   addSharpKey("RCVR_T_TONE", Unmapped_Key, 0x02, 0xEA);
323
324   addSharpKey("REPEAT", Repeat_Key, 0x08, 0x54);
325   addSharpKey("CD_NEXT", Next_Key, 0x08, 0x58);
326   addSharpKey("CD_PREV", Previous_Key, 0x08, 0x59);
327   addSharpKey("CD_FFW", FastForward_Key, 0x08, 0x5A);
328   addSharpKey("CD_REW", Rewind_Key, 0x08, 0x5B);
329   addSharpKey("CD_PLAY", Play_Key, 0x08, 0x5C);
330   addSharpKey("CD_PAUSE", Pause_Key, 0x08, 0x5D);
331   addSharpKey("CD_STOP", Stop_Key, 0x08, 0x5E);
332   addSharpKey("DISC1", Unmapped_Key, 0x08, 0x64);
333   addSharpKey("DISC2", Unmapped_Key, 0x08, 0x65);
334   addSharpKey("DISC3", Unmapped_Key, 0x08, 0x66);
335   addSharpKey("DISC4", Unmapped_Key, 0x08, 0x67);
336   addSharpKey("DISC5", Unmapped_Key, 0x08, 0x68);
337   addSharpKey("DISC6", Unmapped_Key, 0x08, 0x69);
338   addSharpKey("random", Random_Key, 0x08, 0x6A);
339   addSharpKey("CD_DISC_SKIP", NextDisc_Key, 0x08, 0x6B);
340   addSharpKey("CD", CDInput_Key, 0x08, 0x73);
341
342   addSharpKey("SYSTEM", Menu_Key, 0x0C, 0xA0);
343 }
344
345
346 DenonReceiver1d::DenonReceiver1d(
347   QObject *guiObject,
348   unsigned int index)
349   : DenonReceiver1c(guiObject, index)
350 {
351   setKeysetName("Receiver Keyset 1d");
352
353   addControlledDevice(Denon_Make, "PMA-480R", Audio_Device);
354
355   addSharpKey("AMP_PHONO", PhonoInput_Key, 0x02, 0x81);
356   addSharpKey("AMP_TUNER", TunerInput_Key, 0x02, 0x83);
357   addSharpKey("AMP_AUX", AuxInput_Key, 0x02, 0x84);
358   addSharpKey("AMP_MUTING", Mute_Key, 0x02, 0x8B);
359   addSharpKey("AMP_VOL_DOWN", VolumeDown_Key, 0x02, 0x8C);
360   addSharpKey("AMP_VOL_UP", VolumeUp_Key, 0x02, 0x8D);
361   addSharpKey("AMP_POWER", Power_Key, 0x02, 0x90);
362   addSharpKey("AMP_CD", CDInput_Key, 0x02, 0x92);
363   addSharpKey("AMP_TAPE-1", TapeInput_Key, 0x02, 0x99);
364   addSharpKey("AMP_TAPE-2", Unmapped_Key, 0x02, 0x9A);
365
366   addSharpKey("TAPE_A/B", Unmapped_Key, 0x04, 0x53);
367   addSharpKey("TAPE_PLAY_REV", Unmapped_Key, 0x04, 0x57);
368   addSharpKey("TAPE_PAUSE", Unmapped_Key, 0x04, 0x5D);
369   addSharpKey("DECK", Unmapped_Key, 0x04, 0x75);
370
371   addSharpKey("panel", Info_Key, 0x0C, 0x7E);
372   addSharpKey("TUNER", TunerInput_Key, 0x0C, 0xDD);
373 }
374
375
376 DenonReceiver1e::DenonReceiver1e(
377   QObject *guiObject,
378   unsigned int index)
379   : DenonReceiver1d(guiObject, index)
380 {
381   setKeysetName("Receiver Keyset 1e");
382
383   addControlledDevice(Denon_Make, "DRA-385RD", Audio_Device);
384
385   addSharpKey("voldwn", VolumeDown_Key, 0x0C, 0x4C);
386   addSharpKey("volup", VolumeUp_Key, 0x0C, 0x4D);
387   addSharpKey("preset+", NextPreset_Key, 0x0C, 0x4E);
388   addSharpKey("preset-", PrevPreset_Key, 0x0C, 0x4F);
389   addSharpKey("video", CableInput_Key, 0x0C, 0x53);
390   addSharpKey("phono", PhonoInput_Key, 0x0C, 0x58);
391   addSharpKey("tuner", TunerInput_Key, 0x0C, 0x59);
392   addSharpKey("cd", CDInput_Key, 0x0C, 0x5A);
393   addSharpKey("tape_mon", Unmapped_Key, 0x0C, 0x5C);
394   addSharpKey("tape1", Unmapped_Key, 0x0C, 0x5D);
395   addSharpKey("tape2", Unmapped_Key, 0x0C, 0x5E);
396 }
397
398 DenonReceiver1f::DenonReceiver1f(
399   QObject *guiObject,
400   unsigned int index)
401   : DenonReceiver1c(guiObject, index)
402 {
403   setKeysetName("Receiver Keyset 1f");
404
405   addControlledDevice(Denon_Make, "AVR-700RD", Audio_Device);
406   addControlledDevice(Denon_Make, "RC-841", Audio_Device);
407
408   addSharpKey("Power", Power_Key, 0x02, 0xC1);
409
410   addSharpKey("Deck_A_B", Unmapped_Key, 0x04, 0x53);
411   addSharpKey("Deck_PlayLeft", Unmapped_Key, 0x04, 0x57);
412
413   addSharpKey("Preset_Down", NextPreset_Key, 0x0C, 0xB5);
414   addSharpKey("Preset_Up", PrevPreset_Key, 0x0C, 0xB6);
415 }
416
417
418 DenonReceiver2::DenonReceiver2(
419   QObject *guiObject,
420   unsigned int index)
421   : PIRKeysetMetaData(
422       "Receiver Keyset 2",
423       Denon_Make,
424       index)
425 {
426   threadableProtocol = new SharpProtocol(guiObject, index, false);
427
428   addSharpKey("tun_1", One_Key, 0x13, 0x42);
429   addSharpKey("tun_2", Two_Key, 0x13, 0x43);
430   addSharpKey("tun_3", Three_Key, 0x13, 0x44);
431   addSharpKey("tun_4", Four_Key, 0x13, 0x45);
432   addSharpKey("tun_5", Five_Key, 0x13, 0x46);
433   addSharpKey("tun_6", Six_Key, 0x13, 0x47);
434   addSharpKey("tun_7", Seven_Key, 0x13, 0x48);
435   addSharpKey("tun_8", Eight_Key, 0x13, 0x49);
436   addSharpKey("tun_shift", TunerBand_Key, 0x13, 0x4A);
437   addSharpKey("amp_vol-down", VolumeDown_Key, 0x13, 0x4C);
438   addSharpKey("amp_vol-up", VolumeUp_Key, 0x13, 0x4D);
439   addSharpKey("amp_power", Power_Key, 0x13, 0x50);
440   addSharpKey("amp_phono", PhonoInput_Key, 0x13, 0x58);
441   addSharpKey("amp_tuner", TunerInput_Key, 0x13, 0x59);
442   addSharpKey("amp_aux/video", AuxInput_Key, 0x13, 0x5B);
443   addSharpKey("amp_cd", CDInput_Key, 0x13, 0x5A);
444   addSharpKey("amp_tape", TapeInput_Key, 0x13, 0x5D);
445   addSharpKey("TUN_CH_DOWN", ChannelDown_Key, 0x13, 0xD5);
446   addSharpKey("TUN_CH_UP", ChannelUp_Key, 0x13, 0xD6);
447
448   addSharpKey("CD_REPEAT", Repeat_Key, 0x17, 0x54);
449   addSharpKey("cd_next", Next_Key, 0x17, 0x58);
450   addSharpKey("cd_prev", Previous_Key, 0x17, 0x59);
451   addSharpKey("cd_ff", FastForward_Key, 0x17, 0x5A);
452   addSharpKey("cd_rew", Rewind_Key, 0x17, 0x5B);
453   addSharpKey("cd_play", Play_Key, 0x17, 0x5C);
454   addSharpKey("cd_pause", Pause_Key, 0x17, 0x5D);
455   addSharpKey("cd_stop", Stop_Key, 0x17, 0x5E);
456   addSharpKey("CD_RANDOM", Random_Key, 0x17, 0x6A);
457   addSharpKey("CD_SKIP", NextDisc_Key, 0x17, 0x6B);
458
459   addSharpKey("tape_a/b", Unmapped_Key, 0x1B, 0x53);
460   addSharpKey("tape_playrev", Unmapped_Key, 0x1B, 0x57);
461   addSharpKey("tape_ff", Unmapped_Key, 0x1B, 0x5A);
462   addSharpKey("tape_rew", Unmapped_Key, 0x1B, 0x5B);
463   addSharpKey("tape_play", Unmapped_Key, 0x1B, 0x5C);
464   addSharpKey("tape_pause", Unmapped_Key, 0x1B, 0x5D);
465   addSharpKey("tape_stop", Unmapped_Key, 0x1B, 0x5E);
466   addSharpKey("tape_rec", Unmapped_Key, 0x1B, 0x5F);
467 }
468
469
470 DenonReceiver2a::DenonReceiver2a(
471   QObject *guiObject,
472   unsigned int index)
473   : DenonReceiver2(guiObject, index)
474 {
475   setKeysetName("Receiver Keyset 2a");
476
477   addControlledDevice(Denon_Make, "PMA-425R", Audio_Device);
478
479   addSharpKey("AMP_TAPE2", Unmapped_Key, 0x1D, 0x9A);
480   addSharpKey("AMP_TAPE1", TapeInput_Key, 0x1D, 0x99);
481   addSharpKey("AMP_AUX", AuxInput_Key, 0x1D, 0x84);
482   addSharpKey("AMP_TUNER", TunerInput_Key, 0x1D, 0x73);
483   addSharpKey("AMP_CD", CDInput_Key, 0x1D, 0x82);
484   addSharpKey("AMP_PHONO", PhonoInput_Key, 0x1D, 0x81);
485   addSharpKey("AMP_VOL_UP", VolumeUp_Key, 0x1D, 0x8D);
486   addSharpKey("AMP_VOL_DOWN", VolumeDown_Key, 0x1D, 0x8C);
487   addSharpKey("AMP_POWER", Power_Key, 0x1D, 0x90);
488   addSharpKey("AMP_MUTE", Mute_Key, 0x1D, 0x8B);
489 }
490
491
492 DenonReceiver3::DenonReceiver3(
493   QObject *guiObject,
494   unsigned int index)
495   : PIRKeysetMetaData(
496       "Receiver Keyset 3",
497       Denon_Make,
498       index)
499 {
500   addControlledDevice(Denon_Make, "AVR-600 RD", Audio_Device);
501
502   LIRCProtocol *lp = new LIRCProtocol(
503     guiObject,
504     index,
505     561, 489,
506     561, 1543,
507     67329, true);
508
509   threadableProtocol = lp;
510
511   lp->setTrailerPulse(561);
512
513   addKey("POWER", Power_Key, 0xA20C, 16);
514   addKey("UP", Up_Key, 0x99AC, 16);
515   addKey("DOWN", Down_Key, 0x9AAC, 16);
516   addKey("TUNER", TunerInput_Key, 0xA28C, 16);
517   addKey("CD", CDInput_Key, 0xA08C, 16);
518   addKey("PHONO", PhonoInput_Key, 0xA30C, 16);
519   addKey("VCR", VCRInput_Key, 0xA2CC, 16);
520   addKey("TV", CableInput_Key, 0xA14C, 16);
521   addKey("TAPE", TapeInput_Key, 0xA12C, 16);
522   addKey("STEREO", Unmapped_Key, 0xA39C, 16);
523   addKey("MODE", Mode_Key, 0xA19C, 16);
524   addKey("TESTTONE", Unmapped_Key, 0xA15C, 16);
525   addKey("DELAY", Unmapped_Key, 0xA25C, 16);
526   addKey("MUTE", Mute_Key, 0xA03C, 16);
527   addKey("PANEL", Info_Key, 0xA1EC, 16);
528   addKey("CENTER_UP", CenterVolumeUp_Key, 0xA2BC, 16);
529   addKey("CENTER_DOWN", CenterVolumeDown_Key, 0xA1BC, 16);
530   addKey("REAR_UP", RearVolumeUp_Key, 0xA33C, 16);
531   addKey("REAR_DOWN", RearVolumeDown_Key, 0xA0BC, 16);
532   addKey("VOL_UP", VolumeUp_Key, 0xA23C, 16);
533   addKey("VOL_DOWN", VolumeDown_Key, 0xA13C, 16);
534 }
535
536
537 DenonAudio1::DenonAudio1(
538   QObject *guiObject,
539   unsigned int index)
540   : PIRKeysetMetaData(
541       "Audio Keyset 1",
542       Denon_Make,
543       index)
544 {
545   addControlledDevice(Denon_Make, "HiFi 110", Audio_Device);
546   addControlledDevice(Denon_Make, "DRM-550", Audio_Device);
547   addControlledDevice(Denon_Make, "DCD-335", Audio_Device);
548   addControlledDevice(Denon_Make, "DRA-275RD", Audio_Device);
549   addControlledDevice(Denon_Make, "UD-M30", Audio_Device);
550
551   threadableProtocol = new SharpProtocol(guiObject, index, false);
552
553   addSharpKey("reset", Reset_Key, 0x04, 0x54);
554   addSharpKey("TAPE REW", Unmapped_Key, 0x04, 0x57); // "TAPE_PLAY_REV"
555   addSharpKey("TAPE FAST FWD", Unmapped_Key, 0x04, 0x5A); // "TAPE_FORW"
556   addSharpKey("TAPE FAST REW", Unmapped_Key, 0x04, 0x5B); // "TAPE_REW"
557   addSharpKey("TAPE FWD", Unmapped_Key, 0x04, 0x5C); // "TAPE_PLAY_FORW"
558   addSharpKey("TAPE STOP", Unmapped_Key, 0x04, 0x5E);
559   addSharpKey("tapesize", Unmapped_Key, 0x04, 0x60);
560   addSharpKey("revmode", Unmapped_Key, 0x04, 0x62);
561   addSharpKey("TAPE_AB", Unmapped_Key, 0x04, 0x63);
562   addSharpKey("TAPE 2 REW", Unmapped_Key, 0x04, 0x67);
563   addSharpKey("TAPE 2 FAST FWD", Unmapped_Key, 0x04, 0x6A);
564   addSharpKey("TAPE 2 FAST REW", Unmapped_Key, 0x04, 0x6B);
565   addSharpKey("TAPE 2 FWD", Unmapped_Key, 0x04, 0x6C);
566   addSharpKey("TAPE_PAUSE", Unmapped_Key, 0x04, 0x6D);
567   addSharpKey("TAPE 2 STOP", Unmapped_Key, 0x04, 0x6E);
568   addSharpKey("KEY_RECORD", Record_Key, 0x04, 0x6F);
569   addSharpKey("remain", Unmapped_Key, 0x04, 0x74);
570
571   addSharpKey("KEY_1", One_Key, 0x08, 0x42);
572   addSharpKey("KEY_2", Two_Key, 0x08, 0x43);
573   addSharpKey("KEY_3", Three_Key, 0x08, 0x44);
574   addSharpKey("KEY_4", Four_Key, 0x08, 0x45);
575   addSharpKey("KEY_5", Five_Key, 0x08, 0x46);
576   addSharpKey("KEY_6", Six_Key, 0x08, 0x47);
577   addSharpKey("KEY_7", Seven_Key, 0x08, 0x48);
578   addSharpKey("KEY_8", Eight_Key, 0x08, 0x49);
579   addSharpKey("KEY_9", Nine_Key, 0x08, 0x4A);
580   addSharpKey("10", Zero_Key, 0x08, 0x4B);
581   addSharpKey("+10", DoubleDigit_Key, 0x08, 0x4C);
582   addSharpKey("KEY_PROGRAM", Program_Key, 0x08, 0x4D);
583   addSharpKey("open_close", Eject_Key, 0x08, 0x50);
584   addSharpKey("KEY_CANCEL", Clear_Key, 0x08, 0x51); // "cancel", "CD_CANCEL"
585   addSharpKey("call", Call_Key, 0x08, 0x52);
586   addSharpKey("time", Unmapped_Key, 0x08, 0x53); // "CD_TIME"
587   addSharpKey("repeat", Repeat_Key, 0x08, 0x54); // "CD_REPEAT"
588   addSharpKey("a-b", RepeatAB_Key, 0x08, 0x55);
589   addSharpKey("DIRECT", Unmapped_Key, 0x08, 0x57); // "direct"
590   addSharpKey("KEY_NEXT", Next_Key, 0x08, 0x58); // "cdnexttrack"
591   addSharpKey("KEY_PREVIOUS", Previous_Key, 0x08, 0x59); // "cdprevtrack"
592   addSharpKey("KEY_FORWARD", FastForward_Key, 0x08, 0x5A); // "cdffwd"
593   addSharpKey("KEY_REWIND", Rewind_Key, 0x08, 0x5B); // "cdfrew"
594   addSharpKey("KEY_PLAY", Play_Key, 0x08, 0x5C); // "cdplay"
595   addSharpKey("KEY_PAUSE", Pause_Key, 0x08, 0x5D); // "cdpause"
596   addSharpKey("KEY_STOP", Stop_Key, 0x08, 0x5E); // "CD_STOP"
597   addSharpKey("auto_space", Unmapped_Key, 0x08, 0x61);
598   addSharpKey("auto_edit", Unmapped_Key, 0x08, 0x63);
599   addSharpKey("random", Random_Key, 0x08, 0x6A); // "CD_RANDOM"
600   addSharpKey("DISC_SKIP+", NextDisc_Key, 0x08, 0x6B); // "cdskip"
601   addSharpKey("DISC_SKIP-", PrevDisc_Key, 0x08, 0x6E);
602   addSharpKey("peak", Unmapped_Key, 0x08, 0x6F);
603   addSharpKey("edit", Unmapped_Key, 0x08, 0x70); // "CD_EDIT"
604   addSharpKey("fader", Unmapped_Key, 0x08, 0x76);
605   addSharpKey("pitch+", Unmapped_Key, 0x08, 0x77);
606   addSharpKey("pitch-", Unmapped_Key, 0x08, 0x78);
607   addSharpKey("SDB", Unmapped_Key, 0x08, 0xEA);
608
609   addSharpKey("KEY_VOLUMEDOWN", VolumeDown_Key, 0x0C, 0x4C);
610   addSharpKey("KEY_VOLUMEUP", VolumeUp_Key, 0x0C, 0x4D);
611   addSharpKey("PRESET UP", Up_Key, 0x0C, 0x4E); // "up"
612   addSharpKey("PRESET DOWN", Down_Key, 0x0C, 0x4F); // "dwn"
613   addSharpKey("KEY_POWER", Power_Key, 0x0C, 0x50); // "aus"
614   addSharpKey("RCVR_VIDEO", CableInput_Key, 0x0C, 0x53);
615   addSharpKey("RCVR_PHONO", PhonoInput_Key, 0x0C, 0x58);
616   addSharpKey("tuner", TunerInput_Key, 0x0C, 0x59); // "RCVR_TUNER"
617   addSharpKey("RCVR_TAPE_MON", Unmapped_Key, 0x0C, 0x5C);
618   addSharpKey("RCVR_TAPE1", Unmapped_Key, 0x0C, 0x5D);
619   addSharpKey("RCVR_TAPE2", Unmapped_Key, 0x0C, 0x5E);
620   addSharpKey("KEY_FN", Unmapped_Key, 0x0C, 0x5F); // "func"
621   addSharpKey("RCVR_CD", CDInput_Key, 0x0C, 0x6A);
622   addSharpKey("KEY_SLEEP", Sleep_Key, 0x0C, 0x72);
623 //  addSharpKey("RCVR_PANEL", Info_Key, 0x0C, 0x7E);  // Either 0x7E or 0xDE here
624   addSharpKey("memo", Unmapped_Key, 0x0C, 0xD1);
625   addSharpKey("RDS", Unmapped_Key, 0x0C, 0xD2); // "TUNER_RDS"
626   addSharpKey("CT", Unmapped_Key, 0x0C, 0xD3); // "TUNER_CT"
627   addSharpKey("pty", Unmapped_Key, 0x0C, 0xD4); // "TUNER_PTY"
628   addSharpKey("TUNER BAND", TunerBand_Key, 0x0C, 0xD7);
629   addSharpKey("TUNER KEY_UP", ChannelUp_Key, 0x0C, 0xD9);
630   addSharpKey("TUNER KEY_DOWN", ChannelDown_Key, 0x0C, 0xDA);
631   addSharpKey("panel", Info_Key, 0x0C, 0xDE);
632   addSharpKey("eon", Unmapped_Key, 0x0C, 0xFE);
633 }
634
635
636 DenonAudio1a::DenonAudio1a(
637   QObject *guiObject,
638   unsigned int index)
639   : DenonAudio1(guiObject, index)
640 {
641   setKeysetName("Audio Keyset 1a");
642
643   addControlledDevice(Denon_Make, "UCD-F07", Audio_Device);
644   addControlledDevice(Denon_Make, "UDR-F07", Audio_Device);
645   addControlledDevice(Denon_Make, "UDRA-F07", Audio_Device);
646
647   addSharpKey("rec", Record_Key, 0x04, 0x5F);
648   addSharpKey("side_a/b", Unmapped_Key, 0x08, 0x53);
649 }
650
651
652 DenonAudio1b::DenonAudio1b(
653   QObject *guiObject,
654   unsigned int index)
655   : DenonAudio1(guiObject, index)
656 {
657   setKeysetName("Audio Keyset 1b");
658
659   addControlledDevice(Denon_Make, "DCD-1015", Audio_Device);
660   addControlledDevice(Denon_Make, "DCD-655", Audio_Device);
661
662   addSharpKey("vol_up", VolumeUp_Key, 0x08, 0x4E);
663   addSharpKey("vol_down", VolumeDown_Key, 0x08, 0x4F);
664   addSharpKey("display", Info_Key, 0x08, 0x75);
665 }
666
667
668 DenonAudio1c::DenonAudio1c(
669   QObject *guiObject,
670   unsigned int index)
671   : DenonAudio1b(guiObject, index)
672 {
673   setKeysetName("Audio Keyset 1c");
674
675   addControlledDevice(Denon_Make, "DCM-260", Audio_Device);
676
677   addSharpKey("DISC_SELECT", NextDisc_Key, 0x08, 0x62);
678 }
679
680
681 DenonAudio1d::DenonAudio1d(
682   QObject *guiObject,
683   unsigned int index)
684   : DenonAudio1(guiObject, index)
685 {
686   setKeysetName("Audio Keyset 1d");
687
688   addControlledDevice(Denon_Make, "UDRA-M7", Audio_Device);
689   addControlledDevice(Denon_Make, "UPA-F88", Audio_Device);
690   addControlledDevice(Denon_Make, "UCD-F88", Audio_Device);
691   addControlledDevice(Denon_Make, "UDR-F88", Audio_Device);
692   addControlledDevice(Denon_Make, "UTU-F88", Audio_Device);
693   addControlledDevice(Denon_Make, "RC-846", Audio_Device);
694
695   addSharpKey("TAPE_REC", Record_Key, 0x04, 0x5F);
696
697   addSharpKey("MD_STOP", Unmapped_Key, 0x06, 0xE1);
698   addSharpKey("MD_PLAY", Unmapped_Key, 0x06, 0xE2);
699   addSharpKey("MD_REC", Unmapped_Key, 0x06, 0xE5);
700   addSharpKey("MD_SEARCH_NEXT", Unmapped_Key, 0x06, 0xE9);
701   addSharpKey("MD_SEARCH_PREVIOUS", Unmapped_Key, 0x06, 0xEA);
702 }
703
704
705 DenonAudio2::DenonAudio2(
706   QObject *guiObject,
707   unsigned int index)
708   : PIRKeysetMetaData(
709       "Audio Keyset 2",
710       Denon_Make,
711       index)
712 {
713   addControlledDevice(Denon_Make, "D-C30", Audio_Device);
714
715   threadableProtocol = new NECProtocol(guiObject, index, false, true);
716
717 //  setPreData(0xDA25, 16);
718   setPreData(0x5B, 8);
719
720   addKey("Power", Power_Key, 0x00, 8);
721   addKey("Volume_Up", VolumeUp_Key, 0x01, 8);
722   addKey("Volume_Down", VolumeDown_Key, 0x02, 8);
723   addKey("Remain", Unmapped_Key, 0x03, 8);
724   addKey("A.Edit", Unmapped_Key, 0x04, 8);
725   addKey("Tuner_Band", TunerBand_Key, 0x07, 8);
726   addKey("Tape_1/2", Unmapped_Key, 0x09, 8);
727   addKey("P.Mode", Unmapped_Key, 0x0B, 8);
728   addKey("EQ_Pattern", Unmapped_Key, 0x11, 8);
729   addKey("CD_Play", Play_Key, 0x12, 8);
730   addKey("CD_Stop", Stop_Key, 0x13, 8);
731   addKey("Skip_Forward", Next_Key, 0x14, 8);
732   addKey("Skip_Backward", Previous_Key, 0x15, 8);
733   addKey("Prog", Program_Key, 0x16, 8);
734   addKey("Repeat", Repeat_Key, 0x17, 8);
735   addKey("Open/Close", Eject_Key, 0x18, 8);
736   addKey("Fast_Forward", FastForward_Key, 0x1B, 8);
737   addKey("Fast_Rewind", Rewind_Key, 0x1C, 8);
738   addKey("Stop", Unmapped_Key, 0x1D, 8);
739   addKey("Play_Forward", Unmapped_Key, 0x19, 8);
740   addKey("Record_Pause", Unmapped_Key, 0x1F, 8);
741   addKey("1", One_Key, 0x4D, 8);
742   addKey("2", Two_Key, 0x4E, 8);
743   addKey("3", Three_Key, 0x4F, 8);
744   addKey("4", Four_Key, 0x50, 8);
745   addKey("5", Five_Key, 0x51, 8);
746   addKey("6", Six_Key, 0x52, 8);
747   addKey("7", Seven_Key, 0x53, 8);
748   addKey("8", Eight_Key, 0x54, 8);
749   addKey("9", Nine_Key, 0x55, 8);
750   addKey("10", Unmapped_Key, 0x56, 8);
751   addKey("10+/12", DoubleDigit_Key, 0x57, 8);
752   addKey("Random", Random_Key, 0x5A, 8);
753   addKey("0/11", Zero_Key, 0x5B, 8);
754   addKey("Disc", Unmapped_Key, 0x5E, 8);
755   addKey("Play_Backward", Unmapped_Key, 0xD2, 8);
756 }
757
758
759 DenonAudio3::DenonAudio3(
760   QObject *guiObject,
761   unsigned int index)
762   : PIRKeysetMetaData(
763       "Audio Keyset 3",
764       Denon_Make,
765       index)
766 {
767   addControlledDevice(Denon_Make, "DMD-800", Audio_Device);
768
769   threadableProtocol = new SharpProtocol(guiObject, index, false);
770
771   addKey("1", One_Key, 0x06, 0xC1);
772   addKey("2", Two_Key, 0x06, 0xC2);
773   addKey("3", Three_Key, 0x06, 0xC3);
774   addKey("4", Four_Key, 0x06, 0xC4);
775   addKey("5", Five_Key, 0x06, 0xC5);
776   addKey("6", Six_Key, 0x06, 0xC6);
777   addKey("7", Seven_Key, 0x06, 0xC7);
778   addKey("8", Eight_Key, 0x06, 0xC8);
779   addKey("9", Nine_Key, 0x06, 0xC9);
780   addKey("10", Zero_Key, 0x06, 0xCA);
781   addKey("CHAR", Unmapped_Key, 0x06, 0xDD);
782   addKey("ENTER", Select_Key, 0x06, 0xDE);
783   addKey("CLEAR", Clear_Key, 0x06, 0xDF);
784   addKey("POWER", Power_Key, 0x06, 0xE0);
785   addKey("STOP", Stop_Key, 0x06, 0xE1);
786   addKey("PLAY", Play_Key, 0x06, 0xE2);
787   addKey("PAUSE", Pause_Key, 0x06, 0xE3);
788   addKey("REC", Record_Key, 0x06, 0xE5);
789   addKey("EJECT", Eject_Key, 0x06, 0xE6);
790   addKey("+10", DoubleDigit_Key, 0x06, 0xE8);
791   addKey("NEXT_TRACK", Next_Key, 0x06, 0xE9);
792   addKey("PREV_TRACK", Previous_Key, 0x06, 0xEA);
793   addKey("FORWARD", Advance_Key, 0x06, 0xEB);
794   addKey("BACK", Replay_Key, 0x06, 0xEC);
795   addKey("EDIT", Unmapped_Key, 0x06, 0xEF);
796   addKey("PROG", Program_Key, 0x06, 0xF0);
797   addKey("REPEAT", Repeat_Key, 0x06, 0xF1);
798   addKey("RANDOM", Random_Key, 0x06, 0xF3);
799   addKey("TIME", Unmapped_Key, 0x06, 0xF4);
800   addKey("TITLE", Unmapped_Key, 0x06, 0xF5);
801   addKey("CALL", Call_Key, 0x06, 0xF6);
802 }
803
804
805 DenonAudio4::DenonAudio4(
806   QObject *guiObject,
807   unsigned int index)
808   : PIRKeysetMetaData(
809       "Audio Keyset 4",
810       Denon_Make,
811       index)
812 {
813   addControlledDevice(Denon_Make, "D-G1MD", Audio_Device);
814
815   threadableProtocol = new NECProtocol(guiObject, index, true, true);
816
817 //  setPreData(0x4040, 16);
818   setPreData(0x0202, 16);
819
820   addKey("fm/am", TunerBand_Key, 0x00, 8);
821   addKey("rds", Unmapped_Key, 0x01, 8);
822   addKey("1", One_Key, 0x02, 8);
823   addKey("6", Six_Key, 0x03, 8);
824   addKey("+10", DoubleDigit_Key, 0x04, 8);
825   addKey("mdrec", Record_Key, 0x05, 8);
826   addKey("recmute", RecordMute_Key, 0x06, 8);
827   addKey("edit", Unmapped_Key, 0x07, 8);
828   addKey("tape", Unmapped_Key, 0x08, 8);
829   addKey("pty", Unmapped_Key, 0x09, 8);
830   addKey("2", Two_Key, 0x0A, 8);
831   addKey("7", Seven_Key, 0x0B, 8);
832   addKey("+100", PlusOneHundred_Key, 0x0C, 8);
833   addKey("pickrec", Unmapped_Key, 0x0D, 8);
834   addKey("revmode", Unmapped_Key, 0x0E, 8);
835   addKey("editcancel", Unmapped_Key, 0x0F, 8);
836   addKey("cd", CDInput_Key, 0x10, 8);
837   addKey("ct", Unmapped_Key, 0x11, 8);
838   addKey("3", Three_Key, 0x12, 8);
839   addKey("8", Eight_Key, 0x13, 8);
840   addKey("clock", Unmapped_Key, 0x14, 8);
841   addKey("checkspace", Unmapped_Key, 0x15, 8);
842   addKey("dolby", NoiseReduction_Key, 0x16, 8);
843   addKey("prog", Program_Key, 0x17, 8);
844   addKey("aux", AuxInput_Key, 0x18, 8);
845   addKey("rt", Unmapped_Key, 0x19, 8);
846   addKey("4", Four_Key, 0x1A, 8);
847   addKey("9", Nine_Key, 0x1B, 8);
848   addKey("timer", Timer_Key, 0x1C, 8);
849   addKey("clear", Clear_Key, 0x1D, 8);
850   addKey("titleinput", Unmapped_Key, 0x1E, 8);
851   addKey("vol-", VolumeDown_Key, 0x1F, 8);
852   addKey("md", MDInput_Key, 0x40, 8);
853   addKey("fmmode", Unmapped_Key, 0x41, 8);
854   addKey("5", Five_Key, 0x42, 8);
855   addKey("0", Zero_Key, 0x43, 8);
856   addKey("sleep", Sleep_Key, 0x44, 8);
857   addKey("set", Unmapped_Key, 0x45, 8);
858   addKey("enter", Enter_Key, 0x46, 8);
859   addKey("5modesrs", Surround_Key, 0x47, 8);
860   addKey("titlesearch", Unmapped_Key, 0x48, 8);
861   addKey("vol+", VolumeUp_Key, 0x49, 8);
862   addKey("repeat", Repeat_Key, 0x4A, 8);
863   addKey("random", Random_Key, 0x4B, 8);
864   addKey("power", Power_Key, 0x4C, 8);
865   addKey("timedisp", Info_Key, 0x4D, 8);
866   addKey("eqmode", Unmapped_Key, 0x4E, 8);
867   addKey("mute", Mute_Key, 0x4F, 8);
868   addKey("bass", EnhancedBass_Key, 0x50, 8);
869   addKey("forward", FastForward_Key, 0x51, 8);
870   addKey("prev", Previous_Key, 0x52, 8);
871   addKey("next", Next_Key, 0x53, 8);
872   addKey("backward", Rewind_Key, 0x56, 8);
873   addKey("stop", Stop_Key, 0x57, 8);
874 }