Still fixing install, more keyset work
[pierogi] / keysets / denon.cpp
1 #include "denon.h"
2 #include "necprotocol.h"
3
4 // This whole set of Denon keysets is a mess.  Need to clean it up!!!
5
6 DenonDVD1::DenonDVD1(
7   QObject *guiObject,
8   unsigned int index)
9   : PIRKeysetMetaData(
10       "DVD Keyset 1",
11       Denon_Make,
12       index)
13 {
14   addControlledDevice(Denon_Make, "DVD-1930", DVD_Device);
15
16   NECProtocol *np = new NECProtocol(
17     guiObject,
18     index,
19     349, 647,
20     349, 1689,
21     65002, true); // 43802 between?
22
23   threadableProtocol = np;
24
25   np->setElevenBitToggle(true);
26
27   np->setTrailerPulse(349);
28
29 //  np->setCarrierFrequency(26500); //?
30
31   addKey("POWER_ON", Unmapped_Key, 0x0A34, 15);
32   addKey("POWER_OFF", Unmapped_Key, 0x300C, 15);
33   addKey("MODE", Unmapped_Key, 0x08E4, 15);
34   addKey("OPEN_CLOSE", Eject_Key, 0x0824, 15);
35   addKey("A_B_REPEAT", Unmapped_Key, 0x0974, 15);
36   addKey("REPEAT", Unmapped_Key, 0x08A4, 15);
37   addKey("RANDOM", Unmapped_Key, 0x0954, 15);
38   addKey("ZOOM", Unmapped_Key, 0x13E4, 15);
39   addKey("CLEAR", Clear_Key, 0x0B14, 15);
40   addKey("1", One_Key, 0x0904, 15);
41   addKey("2", Two_Key, 0x0B04, 15);
42   addKey("3", Three_Key, 0x0884, 15);
43   addKey("4", Four_Key, 0x0A84, 15);
44   addKey("5", Five_Key, 0x0984, 15);
45   addKey("6", Six_Key, 0x0B84, 15);
46   addKey("7", Seven_Key, 0x0844, 15);
47   addKey("8", Eight_Key, 0x0A44, 15);
48   addKey("9", Nine_Key, 0x0944, 15);
49   addKey("0", Zero_Key, 0x0A04, 15);
50   addKey("10+", DoubleDigit_Key, 0x08C4, 15);
51   addKey("ANGLE", Unmapped_Key, 0x0BC4, 15);
52   addKey("SUBTITLE", Captions_Key, 0x0AC4, 15);
53   addKey("AUDIO", Language_Key, 0x09C4, 15);
54   addKey("DISPLAY", Info_Key, 0x0B94, 15);
55   addKey("MENU", DiscMenu_Key, 0x0A24, 15);
56   addKey("TOP_MENU", DiscTitle_Key, 0x0AF4, 15);
57   addKey("UP", Up_Key, 0x08D4, 15);
58   addKey("DOWN", Down_Key, 0x0AD4, 15);
59   addKey("LEFT", Left_Key, 0x0BD4, 15);
60   addKey("RIGHT", Right_Key, 0x09D4, 15);
61   addKey("ENTER", Select_Key, 0x0B74, 15);
62   addKey("RETURN", Exit_Key, 0x0924, 15);
63   addKey("SETUP", Menu_Key, 0x08F4, 15);
64   addKey("SEARCH_MODE", Unmapped_Key, 0x11E4, 15);
65   addKey("SKIP_DOWN", Next_Key, 0x0A64, 15);
66   addKey("SKIP_UP", Previous_Key, 0x0864, 15);
67   addKey("FAST_REVERSE", Rewind_Key, 0x0B64, 15);
68   addKey("STOP", Stop_Key, 0x0A14, 15);
69   addKey("PLAY", Play_Key, 0x0814, 15);
70   addKey("FAST_FORWARD", FastForward_Key, 0x0964, 15);
71   addKey("PAUSE", Pause_Key, 0x0AE4, 15);
72   addKey("GROUP", Unmapped_Key, 0x33FC, 15);
73   addKey("SACD_SETUP", Unmapped_Key, 0x09F8, 15);
74   addKey("PAGE+", Unmapped_Key, 0x31FC, 15);
75   addKey("PAGE-", Unmapped_Key, 0x32FC, 15);
76 }
77
78
79 DenonDVD2::DenonDVD2(
80   QObject *guiObject,
81   unsigned int index)
82   : PIRKeysetMetaData(
83       "DVD Keyset 2",
84       Denon_Make,
85       index)
86 {
87   addControlledDevice(Denon_Make, "DVD-2500", DVD_Device);
88
89   NECProtocol *np = new NECProtocol(
90     guiObject,
91     index,
92     400, 500,
93     400, 1400,
94     43000, false);
95
96   threadableProtocol = np;
97
98   np->setHeaderPair(3500, 1800);
99   np->setTrailerPulse(400);
100
101   setPreData(0x40040D00, 32);
102
103   addKey("Power", Power_Key, 0xBCB1, 16);
104   addKey("Open/Close", Eject_Key, 0x808D, 16);
105   addKey("Stop", Stop_Key, 0x000D, 16);
106   addKey("Pause", Pause_Key, 0x606D, 16);
107   addKey("Play", Play_Key, 0x505D, 16);
108   addKey("SkipBack", Previous_Key, 0x929F, 16);
109   addKey("SkipFwd", Next_Key, 0x525F, 16);
110   addKey("Rev", Rewind_Key, 0x202D, 16);
111   addKey("Fwd", FastForward_Key, 0xA0AD, 16);
112   addKey("Title", DiscTitle_Key, 0xD9D4, 16);
113   addKey("Menu", DiscMenu_Key, 0x010C, 16);
114   addKey("Display", Info_Key, 0x4944, 16);
115   addKey("Return", Exit_Key, 0x818C, 16);
116   addKey("Up", Up_Key, 0xA1AC, 16);
117   addKey("Down", Down_Key, 0x616C, 16);
118   addKey("Right", Right_Key, 0x111C, 16);
119   addKey("Left", Left_Key, 0xE1EC, 16);
120   addKey("Select", Select_Key, 0x414C, 16);
121   addKey("Subtitle", Captions_Key, 0x8984, 16);
122   addKey("Audio", Language_Key, 0xCCC1, 16);
123   addKey("Angle", Unmapped_Key, 0x0904, 16);
124   addKey("Marker", Unmapped_Key, 0x717C, 16);
125   addKey("PlayMode", Unmapped_Key, 0xB1BC, 16);
126   addKey("RepeatMode", Unmapped_Key, 0x313C, 16);
127   addKey("A-B_Repeat", Unmapped_Key, 0x121F, 16);
128   addKey("Setup", Menu_Key, 0x2924, 16);
129   addKey("Clear", Clear_Key, 0xC1CC, 16);
130   addKey("VSS", Unmapped_Key, 0x7974, 16);
131   addKey("1", One_Key, 0x0805, 16);
132   addKey("2", Two_Key, 0x8885, 16);
133   addKey("3", Three_Key, 0x4845, 16);
134   addKey("4", Four_Key, 0xC8C5, 16);
135   addKey("5", Five_Key, 0x2825, 16);
136   addKey("6", Six_Key, 0xA8A5, 16);
137   addKey("7", Seven_Key, 0x6865, 16);
138   addKey("8", Eight_Key, 0xE8E5, 16);
139   addKey("9", Nine_Key, 0x1815, 16);
140   addKey("0", Zero_Key, 0x9895, 16);
141   addKey(">=10", DoubleDigit_Key, 0x919C, 16);
142 }
143
144
145 DenonDVD3::DenonDVD3(
146   QObject *guiObject,
147   unsigned int index)
148   : PIRKeysetMetaData(
149       "DVD Keyset 3 (odd)",
150       Denon_Make,
151       index)
152 {
153   addControlledDevice(Denon_Make, "dvd-1000", DVD_Device);
154
155   NECProtocol *np = new NECProtocol(
156     guiObject,
157     index,
158     275, 776,
159     275, 1829,
160     67389, true);
161
162   threadableProtocol = np;
163
164   np->setElevenBitToggle(true);
165
166   np->setTrailerPulse(275);
167
168 //  np->setCarrierFrequency(32000);
169
170   addKey("power", Power_Key, 0x09CB, 15);
171   addKey("1", One_Key, 0x0AFB, 15);
172   addKey("2", Two_Key, 0x0B04, 15);
173   addKey("3", Three_Key, 0x0884, 15);
174   addKey("4", Four_Key, 0x097B, 15);
175   addKey("5", Five_Key, 0x0A7B, 15);
176   addKey("6", Six_Key, 0x0B84, 15);
177   addKey("7", Seven_Key, 0x0844, 15);
178   addKey("8", Eight_Key, 0x0A44, 15);
179   addKey("9", Nine_Key, 0x0ABB, 15);
180   addKey("0", Zero_Key, 0x09FB, 15);
181   addKey("10", Unmapped_Key, 0x0B3B, 15);
182   addKey("clear", Clear_Key, 0x08EB, 15);
183   addKey("skip-", Previous_Key, 0x099B, 15);
184   addKey("skip+", Next_Key, 0x0B9B, 15);
185   addKey("slow-", Unmapped_Key, 0x089B, 15);
186   addKey("slow+", Unmapped_Key, 0x0A9B, 15);
187   addKey("stop", Stop_Key, 0x09EB, 15);
188   addKey("pause", Pause_Key, 0x091B, 15);
189   addKey("play", Play_Key, 0x0814, 15);
190   addKey("title", DiscTitle_Key, 0x090B, 15);
191   addKey("menu", DiscMenu_Key, 0x09DB, 15);
192   addKey("return", Exit_Key, 0x0ADB, 15);
193   addKey("display", Info_Key, 0x086B, 15);
194   addKey("select", Select_Key, 0x088B, 15);
195   addKey("arrow-up", Up_Key, 0x0B2B, 15);
196   addKey("arrow-down", Down_Key, 0x092B, 15);
197   addKey("arrow-left", Left_Key, 0x082B, 15);
198   addKey("arrow-right", Right_Key, 0x0A2B, 15);
199   addKey("subtitle", Captions_Key, 0x093B, 15);
200   addKey("audio", Language_Key, 0x0A3B, 15);
201   addKey("angle", Unmapped_Key, 0x083B, 15);
202   addKey("setup", Menu_Key, 0x0B0B, 15);
203   addKey("repeat", Repeat_Key, 0x0B5B, 15);
204   addKey("repeat-ab", Unmapped_Key, 0x0A8B, 15);
205   addKey("random", Random_Key, 0x0AAB, 15);
206   addKey("call", Unmapped_Key, 0x0A0B, 15);
207   addKey("program", Program_Key, 0x0AEB, 15);
208   addKey("open-close", Eject_Key, 0x0BDB, 15);
209   addKey("ntsc-pal", Unmapped_Key, 0x084B, 15);
210 }
211
212
213 DenonReceiver1::DenonReceiver1(
214   QObject *guiObject,
215   unsigned int index)
216   : PIRKeysetMetaData(
217       "Receiver Keyset 1",
218       Denon_Make,
219       index)
220 {
221   addControlledDevice(Denon_Make, "avr-1708", Audio_Device);
222
223   NECProtocol *np = new NECProtocol(
224     guiObject,
225     index,
226     400, 700,
227     400, 1700,
228     67000, true);
229
230   threadableProtocol = np;
231
232   np->setElevenBitToggle(true);
233
234   np->setTrailerPulse(400);
235
236   addKey("On", Unmapped_Key, 0x221C, 15);
237   addKey("Off", Unmapped_Key, 0x211C, 15);
238   addKey("DVD_HDP", Unmapped_Key, 0x231C, 15); // "SRC_DVD"
239   addKey("TV_CBL", Unmapped_Key, 0x224C, 15);
240   addKey("VCR", Unmapped_Key, 0x22CC, 15);
241   addKey("Play", Play_Key, 0x10E8, 15);
242   addKey("Stop", Stop_Key, 0x11E8, 15);
243   addKey("Skip_Favorite", Favorites_Key, 0x13A8, 15);
244   addKey("Pause", Pause_Key, 0x1328, 15);
245   addKey("Volume_up", VolumeUp_Key, 0x223C, 15);
246   addKey("Volume_down", VolumeDown_Key, 0x213C, 15);
247   addKey("Rewind", Rewind_Key, 0x1368, 15);
248   addKey("Forward", FastForward_Key, 0x1168, 15);
249   addKey("Setup", Menu_Key, 0x206C, 15);
250   addKey("Mute", Mute_Key, 0x203C, 15);
251   addKey("Night_Audio", Unmapped_Key, 0x1064, 15);
252   addKey("Display", Info_Key, 0x23EC, 15); // "onscreen"
253   addKey("Enter", Select_Key, 0x201C, 15);
254   addKey("Left", Left_Key, 0x1BF8, 15);
255   addKey("Up", Up_Key, 0x1B14, 15);
256   addKey("Right", Right_Key, 0x22EC, 15);
257   addKey("Down", Down_Key, 0x1894, 15);
258   addKey("Return", Exit_Key, 0x21EC, 15);
259   addKey("Dimmer", Unmapped_Key, 0x1BEC, 15);
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   // This keyset may need work, see denon/RC-1120
273   addKey("SRC_TV", Unmapped_Key, 0x21B3, 15);
274   addKey("SRC_TUNNER", Unmapped_Key, 0x228C, 15);
275   addKey("SRC_VAUX", Unmapped_Key, 0x20CC, 15);
276   addKey("SRC_HDP", Unmapped_Key, 0x214C, 15);
277   addKey("SRC_DVR", Unmapped_Key, 0x2233, 15);
278   addKey("SRC_VCR", Unmapped_Key, 0x2133, 15);
279   addKey("SRC_SATCBL", Unmapped_Key, 0x204C, 15);
280   addKey("BTN_VSEL", Unmapped_Key, 0x2393, 15);
281   addKey("BTN_INPUT_MODE", Unmapped_Key, 0x19B4, 15);
282   addKey("BTN_MULTEQ", Unmapped_Key, 0x111B, 15);
283   addKey("BTN_HDMI_CONTROL", Unmapped_Key, 0x182B, 15);
284   addKey("BTN_UP", Up_Key, 0x18EB, 15);
285   addKey("BTN_DOWN", Down_Key, 0x1894, 15);
286   addKey("BTN_SKIP", Unmapped_Key, 0x18CC, 15);
287   addKey("BTN_STOP", Stop_Key, 0x1BAC, 15);
288   addKey("BTN_PAUSE", Pause_Key, 0x1ACC, 15);
289   addKey("BTN_PLAY", Play_Key, 0x186C, 15);
290   addKey("FAST_REVERSE", Rewind_Key, 0x1A93, 15);
291   addKey("FAST_FORWARD", FastForward_Key, 0x1A6C, 15);
292   addKey("BTN_PREV", Previous_Key, 0x1AAC, 15);
293   addKey("BTN_NEXT", Next_Key, 0x19AC, 15);
294   addKey("BTN_STD", Unmapped_Key, 0x2363, 15);
295   addKey("PAGE_DN", Unmapped_Key, 0x1813, 15);
296   addKey("PAGE_UP", Unmapped_Key, 0x21EC, 15);
297   addKey("BTN_STD_CINEMA", Unmapped_Key, 0x115B, 15);
298   addKey("BTN_STD_MUSIC", Unmapped_Key, 0x125B, 15);
299   addKey("BTN_SIMU", Unmapped_Key, 0x219C, 15);
300 }
301
302
303 DenonReceiver1b::DenonReceiver1b(
304   QObject *guiObject,
305   unsigned int index)
306   : DenonReceiver1(guiObject, index)
307 {
308   setKeysetName("Receiver Keyset 1b");
309
310   addControlledDevice(Denon_Make, "avr-3300", Audio_Device);
311
312   addKey("vol+", VolumeUp_Key, 0x21C3, 15);
313   addKey("channel+", ChannelUp_Key, 0x19AC, 15);
314   addKey("channel-", ChannelDown_Key, 0x1AAC, 15);
315   addKey("setup", Menu_Key, 0x1814, 15);
316   addKey("params", Unmapped_Key, 0x1A14, 15);
317   addKey("input-mode", Unmapped_Key, 0x19B4, 15);
318   addKey("analog", Unmapped_Key, 0x20EC, 15);
319   addKey("ext.in", Unmapped_Key, 0x1AB4, 15);
320   addKey("output", Unmapped_Key, 0x1A94, 15);
321   addKey("multi", Unmapped_Key, 0x236C, 15);
322 }
323
324
325 DenonReceiver1c::DenonReceiver1c(
326   QObject *guiObject,
327   unsigned int index)
328   : DenonReceiver1(guiObject, index)
329 {
330   setKeysetName("Receiver Keyset 1c");
331
332   addControlledDevice(Denon_Make, "AVR-1602", Audio_Device);
333   addControlledDevice(Denon_Make, "AVR-1802", Audio_Device);
334   addControlledDevice(Denon_Make, "AVR-1803", Audio_Device);
335
336   addKey("ONE", One_Key, 0x230C, 15);
337   addKey("TWO", Two_Key, 0x208C, 15);
338   addKey("THREE", Three_Key, 0x231C, 15);
339   addKey("FOUR", Four_Key, 0x20CC, 15);
340   addKey("FIVE", Five_Key, 0x22CC, 15);
341   addKey("SIX", Six_Key, 0x21CC, 15);
342   addKey("SEVEN", Seven_Key, 0x224C, 15);
343   addKey("EIGHT", Eight_Key, 0x19B4, 15);
344   addKey("NINE", Nine_Key, 0x212C, 15);
345   addKey("ZERO", Zero_Key, 0x228C, 15);
346   addKey("RCVR_SURROUND_MODE", Unmapped_Key, 0x219C, 15);
347   addKey("RCVR_CHANNEL+", ChannelUp_Key, 0x19AC, 15);
348   addKey("RCVR_CHANNEL-", ChannelDown_Key, 0x1AAC, 15);
349   addKey("VIDEO_SELECT", Unmapped_Key, 0x206C, 15);
350   addKey("CD_DISC_SKIP", Unmapped_Key, 0x0B58, 15);
351   addKey("CD_PLAY", Unmapped_Key, 0x08E8, 15);
352   addKey("CD_PAUSE", Unmapped_Key, 0x0AE8, 15);
353   addKey("CD_NEXT", Unmapped_Key, 0x0868, 15);
354   addKey("CD_PREV", Unmapped_Key, 0x0A68, 15);
355   addKey("CD_STOP", Unmapped_Key, 0x09E8, 15);
356   addKey("CD_REW", Unmapped_Key, 0x0B68, 15);
357   addKey("CD_FFW", Unmapped_Key, 0x0968, 15);
358   addKey("SYSTEM", Menu_Key, 0x1814, 15);
359   addKey("RCVR_SURROUND", Surround_Key, 0x1A14, 15);
360 //  addKey("RCVR_CH_SELECT", Select_Key, 0x201C, 15);
361   addKey("RCVR_T_TONE", Unmapped_Key, 0x215C, 15);
362   addKey("RCVR_STATUS", Info_Key, 0x21EC, 15);
363 }
364
365
366 DenonReceiver2::DenonReceiver2(
367   QObject *guiObject,
368   unsigned int index)
369   : PIRKeysetMetaData(
370       "Receiver Keyset 2",
371       Denon_Make,
372       index)
373 {
374   NECProtocol *np = new NECProtocol(
375     guiObject,
376     index,
377     315, 740,
378     315, 1812,
379     45920, false);
380
381   threadableProtocol = np;
382
383   np->setElevenBitToggle(true);
384
385   np->setTrailerPulse(315);
386
387   addKey("amp_power", Power_Key, 0x67D7, 15);
388   addKey("amp_vol-down", VolumeDown_Key, 0x6737, 15);
389   addKey("amp_vol-up", VolumeUp_Key, 0x6537, 15);
390   addKey("amp_tape", Unmapped_Key, 0x6517, 15);
391   addKey("amp_aux/video", Unmapped_Key, 0x6497, 15);
392   addKey("amp_tuner", Unmapped_Key, 0x6597, 15);
393   addKey("amp_cd", Unmapped_Key, 0x6697, 15);
394   addKey("amp_phono", Unmapped_Key, 0x6797, 15);
395   addKey("tun_1", Unmapped_Key, 0x66F7, 15);
396   addKey("tun_2", Unmapped_Key, 0x64F7, 15);
397   addKey("tun_3", Unmapped_Key, 0x6777, 15);
398   addKey("tun_4", Unmapped_Key, 0x6577, 15);
399   addKey("tun_5", Unmapped_Key, 0x6677, 15);
400   addKey("tun_6", Unmapped_Key, 0x6477, 15);
401   addKey("tun_7", Unmapped_Key, 0x67B7, 15);
402   addKey("tun_8", Unmapped_Key, 0x65B7, 15);
403   addKey("tun_shift", Unmapped_Key, 0x66B7, 15);
404   addKey("cd_pause", Pause_Key, 0x76E8, 15);
405   addKey("cd_stop", Stop_Key, 0x7617, 15);
406   addKey("cd_play", Play_Key, 0x7717, 15);
407   addKey("cd_rew", Rewind_Key, 0x7497, 15);
408   addKey("cd_ff", FastForward_Key, 0x7697, 15);
409   addKey("cd_prev", Previous_Key, 0x7597, 15);
410   addKey("cd_next", Next_Key, 0x7797, 15);
411   addKey("CD_RANDOM", Random_Key, 0x76A7, 15);
412   addKey("CD_REPEAT", Repeat_Key, 0x7757, 15);
413   addKey("CD_SKIP", Unmapped_Key, 0x74A7, 15);
414   addKey("tape_pause", Unmapped_Key, 0x6D17, 15);
415   addKey("tape_stop", Unmapped_Key, 0x6E17, 15);
416   addKey("tape_playrev", Unmapped_Key, 0x6C57, 15);
417   addKey("tape_play", Unmapped_Key, 0x6F17, 15);
418   addKey("tape_rec", Unmapped_Key, 0x6C17, 15);
419   addKey("tape_a/b", Unmapped_Key, 0x6CD7, 15);
420   addKey("tape_rew", Unmapped_Key, 0x6C97, 15);
421   addKey("tape_ff", Unmapped_Key, 0x6E97, 15);
422 }
423
424
425 DenonReceiver2a::DenonReceiver2a(
426   QObject *guiObject,
427   unsigned int index)
428   : DenonReceiver2(guiObject, index)
429 {
430   setKeysetName("Receiver Keyset 2a");
431
432   addControlledDevice(Denon_Make, "PMA-425R", Audio_Device);
433
434   addKey("AMP_TAPE2", Unmapped_Key, 0x5E9B, 15);
435   addKey("AMP_TAPE1", Unmapped_Key, 0x5D9B, 15);
436   addKey("AMP_AUX", Unmapped_Key, 0x5F7B, 15);
437   addKey("AMP_TUNER", Unmapped_Key, 0x5CE3, 15);
438   addKey("AMP_CD", Unmapped_Key, 0x5EFB, 15);
439   addKey("AMP_PHONO", Unmapped_Key, 0x5DFB, 15);
440   addKey("AMP_VOL_UP", VolumeUp_Key, 0x5D3B, 15);
441   addKey("AMP_VOL_DOWN", VolumeDown_Key, 0x5F3B, 15);
442   addKey("AMP_POWER", Power_Key, 0x5FDB, 15);
443   addKey("AMP_MUTE", Mute_Key, 0x5CBB, 15);
444   addKey("TUN_CH_UP", ChannelUp_Key, 0x6653, 15);
445   addKey("TUN_CH_DOWN", ChannelDown_Key, 0x6553, 15);
446 }
447
448
449 DenonReceiver3::DenonReceiver3(
450   QObject *guiObject,
451   unsigned int index)
452   : PIRKeysetMetaData(
453       "Receiver Keyset 3",
454       Denon_Make,
455       index)
456 {
457   addControlledDevice(Denon_Make, "PMA-480R", Audio_Device);
458
459   NECProtocol *np = new NECProtocol(
460     guiObject,
461     index,
462     400, 600,
463     400, 1700,
464     67400, true);
465
466   threadableProtocol = np;
467
468   np->setElevenBitToggle(true);
469
470   np->setTrailerPulse(400);
471
472   addKey("TUNER", Unmapped_Key, 0x1AEC, 15);
473   addKey("DECK", Unmapped_Key, 0x12B8, 15);
474   addKey("CD", Unmapped_Key, 0x0B38, 15);
475   addKey("CD_PLAY", Play_Key, 0x08E8, 15);
476   addKey("CD_PAUSE", Pause_Key, 0x0AE8, 15);
477   addKey("CD_STOP", Stop_Key, 0x09E8, 15);
478   addKey("CD_REW", Rewind_Key, 0x0B68, 15);
479   addKey("CD_FF", FastForward_Key, 0x0968, 15);
480   addKey("CD_BACK", Previous_Key, 0x0A68, 15);
481   addKey("CD_NEXT", Next_Key, 0x0868, 15);
482   addKey("DISC1", Unmapped_Key, 0x0898, 15);
483   addKey("DISC2", Unmapped_Key, 0x0A98, 15);
484   addKey("DISC3", Unmapped_Key, 0x0998, 15);
485   addKey("DISC4", Unmapped_Key, 0x0B98, 15);
486   addKey("DISC5", Unmapped_Key, 0x0858, 15);
487   addKey("DISC6", Unmapped_Key, 0x0A58, 15);
488   addKey("REPEAT", Repeat_Key, 0x08A8, 15);
489   addKey("TAPE_A/B", Unmapped_Key, 0x1328, 15);
490   addKey("TAPE_PAUSE", Unmapped_Key, 0x12E8, 15);
491   addKey("TAPE_STOP", Unmapped_Key, 0x11E8, 15);
492   addKey("TAPE_REC", Unmapped_Key, 0x13E8, 15);
493   addKey("TAPE_REW", Unmapped_Key, 0x1368, 15);
494   addKey("TAPE_FF", Unmapped_Key, 0x1168, 15);
495   addKey("TAPE_PLAY_REV", Unmapped_Key, 0x13A8, 15);
496   addKey("TAPE_PLAY", Unmapped_Key, 0x10E8, 15);
497   addKey("TUNER_UP", ChannelUp_Key, 0x1AAC, 15);
498   addKey("TUNER_DOWN", ChannelDown_Key, 0x19AC, 15);
499   addKey("AMP_POWER", Power_Key, 0x2024, 15);
500   addKey("AMP_CD", Unmapped_Key, 0x2104, 15);
501   addKey("AMP_PHONO", Unmapped_Key, 0x2204, 15);
502   addKey("AMP_AUX", Unmapped_Key, 0x2084, 15);
503   addKey("AMP_TUNER", Unmapped_Key, 0x2304, 15);
504   addKey("AMP_TAPE-2", Unmapped_Key, 0x2164, 15);
505   addKey("AMP_TAPE-1", Unmapped_Key, 0x2264, 15);
506   addKey("AMP_MUTING", Mute_Key, 0x20BB, 15);
507   addKey("AMP_VOL_UP", VolumeUp_Key, 0x22C4, 15);
508   addKey("AMP_VOL_DOWN", VolumeDown_Key, 0x20C4, 15);
509 }
510
511
512 DenonReceiver3a::DenonReceiver3a(
513   QObject *guiObject,
514   unsigned int index)
515   : DenonReceiver3(guiObject, index)
516 {
517   setKeysetName("Receiver Keyset 3a");
518
519   addControlledDevice(Denon_Make, "DRA-385RD", Audio_Device);
520
521   addKey("random", Random_Key, 0x0958, 15);
522   addKey("repeat", Repeat_Key, 0x0B57, 15);
523   addKey("disksk", Unmapped_Key, 0x0B58, 15);
524   addKey("panel", Info_Key, 0x19F8, 15);
525   addKey("tape_mon", Unmapped_Key, 0x18E8, 15);
526   addKey("tape2", Unmapped_Key, 0x19E8, 15);
527   addKey("tape1", Unmapped_Key, 0x1AE8, 15);
528   addKey("video", Unmapped_Key, 0x1B28, 15);
529   addKey("tuner", Unmapped_Key, 0x1A68, 15);
530   addKey("cd", Unmapped_Key, 0x1968, 15);
531   addKey("phono", Unmapped_Key, 0x1868, 15);
532   addKey("preset+", Unmapped_Key, 0x1A37, 15);
533   addKey("preset-", Unmapped_Key, 0x1BC8, 15);
534   addKey("volup", VolumeUp_Key, 0x1937, 15);
535   addKey("voldwn", VolumeDown_Key, 0x18C8, 15);
536 }
537
538
539 DenonReceiver4::DenonReceiver4(
540   QObject *guiObject,
541   unsigned int index)
542   : PIRKeysetMetaData(
543       "Receiver Keyset 4",
544       Denon_Make,
545       index)
546 {
547   addControlledDevice(Denon_Make, "AVR-600 RD", Audio_Device);
548
549   NECProtocol *np = new NECProtocol(
550     guiObject,
551     index,
552     561, 489,
553     561, 1543,
554     67329, true);
555
556   threadableProtocol = np;
557
558   np->setTrailerPulse(561);
559
560   addKey("POWER", Power_Key, 0xA20C, 16);
561   addKey("UP", Up_Key, 0x99AC, 16);
562   addKey("DOWN", Down_Key, 0x9AAC, 16);
563   addKey("TUNER", Unmapped_Key, 0xA28C, 16);
564   addKey("CD", Unmapped_Key, 0xA08C, 16);
565   addKey("PHONO", Unmapped_Key, 0xA30C, 16);
566   addKey("VCR", Unmapped_Key, 0xA2CC, 16);
567   addKey("TV", Unmapped_Key, 0xA14C, 16);
568   addKey("TAPE", Unmapped_Key, 0xA12C, 16);
569   addKey("STEREO", Unmapped_Key, 0xA39C, 16);
570   addKey("MODE", Unmapped_Key, 0xA19C, 16);
571   addKey("TESTTONE", Unmapped_Key, 0xA15C, 16);
572   addKey("DELAY", Unmapped_Key, 0xA25C, 16);
573   addKey("MUTE", Mute_Key, 0xA03C, 16);
574   addKey("PANEL", Info_Key, 0xA1EC, 16);
575   addKey("CENTER_UP", Unmapped_Key, 0xA2BC, 16);
576   addKey("CENTER_DOWN", Unmapped_Key, 0xA1BC, 16);
577   addKey("REAR_UP", Unmapped_Key, 0xA33C, 16);
578   addKey("REAR_DOWN", Unmapped_Key, 0xA0BC, 16);
579   addKey("VOL_UP", VolumeUp_Key, 0xA23C, 16);
580   addKey("VOL_DOWN", VolumeDown_Key, 0xA13C, 16);
581 }
582
583
584 DenonReceiver5::DenonReceiver5(
585   QObject *guiObject,
586   unsigned int index)
587   : PIRKeysetMetaData(
588       "Receiver Keyset 5",
589       Denon_Make,
590       index)
591 {
592   addControlledDevice(Denon_Make, "AVR-700RD", Audio_Device);
593   addControlledDevice(Denon_Make, "RC-841", Audio_Device);
594
595   NECProtocol *np = new NECProtocol(
596     guiObject,
597     index,
598     336, 715,
599     336, 1769,
600     67376, true);
601
602   threadableProtocol = np;
603
604   np->setElevenBitToggle(true);
605
606   np->setTrailerPulse(337);
607
608   addKey("Power", Power_Key, 0x220C, 15);
609   addKey("CD_Disc_Skip_Plus", Unmapped_Key, 0x0B58, 15);
610   addKey("CD_Stop", Stop_Key, 0x09E8, 15);
611   addKey("CD_Play", Play_Key, 0x08E8, 15);
612   addKey("CD_Prev", Previous_Key, 0x0A68, 15);
613   addKey("CD_Pause", Pause_Key, 0x0AE8, 15);
614   addKey("CD_Next", Next_Key, 0x0868, 15);
615   addKey("Preset_Up", Unmapped_Key, 0x19AC, 15);
616   addKey("Preset_Down", Unmapped_Key, 0x1AAC, 15);
617   addKey("Shift", Unmapped_Key, 0x1ACC, 15);
618   addKey("Tuner", Unmapped_Key, 0x228C, 15);
619   addKey("CD", Unmapped_Key, 0x208C, 15);
620   addKey("Phono", Unmapped_Key, 0x230C, 15);
621   addKey("VCR", Unmapped_Key, 0x22CC, 15);
622   addKey("DVD_TV", Unmapped_Key, 0x214C, 15);
623   addKey("NoName1", Unmapped_Key, 0x20CC, 15);
624   addKey("DAT_Tape", Unmapped_Key, 0x212C, 15);
625   addKey("Stereo", Unmapped_Key, 0x239C, 15);
626   addKey("Mode", Unmapped_Key, 0x219C, 15);
627   addKey("Test_Tone", Unmapped_Key, 0x215C, 15);
628   addKey("Delay", Unmapped_Key, 0x225C, 15);
629   addKey("CenterVolumeUp", Unmapped_Key, 0x22BC, 15);
630   addKey("CenterVolumeDown", Unmapped_Key, 0x21BC, 15);
631   addKey("RearVolumeUp", Unmapped_Key, 0x233C, 15);
632   addKey("RearVolumeDown", Unmapped_Key, 0x20BC, 15);
633   addKey("Muting", Mute_Key, 0x203C, 15);
634   addKey("NoName2", Unmapped_Key, 0x23EC, 15);
635   addKey("Panel", Info_Key, 0x21EC, 15);
636   addKey("MasterVolumeUp", VolumeUp_Key, 0x223C, 15);
637   addKey("MasterVolumeDown", VolumeDown_Key, 0x213C, 15);
638   addKey("Deck_PlayLeft", Unmapped_Key, 0x13A8, 15);
639   addKey("Deck_Stop", Unmapped_Key, 0x11E8, 15);
640   addKey("Deck_PlayRight", Unmapped_Key, 0x10E8, 15);
641   addKey("Deck_Rewind", Unmapped_Key, 0x1368, 15);
642   addKey("Deck_A_B", Unmapped_Key, 0x1328, 15);
643   addKey("Deck_FastForward", Unmapped_Key, 0x1168, 15);
644 }
645
646
647 DenonAudio1::DenonAudio1(
648   QObject *guiObject,
649   unsigned int index)
650   : PIRKeysetMetaData(
651       "Audio Keyset 1",
652       Denon_Make,
653       index)
654 {
655   addControlledDevice(Denon_Make, "HiFi 110", Audio_Device);
656   addControlledDevice(Denon_Make, "DRM-550", Audio_Device);
657   addControlledDevice(Denon_Make, "DCD-335", Audio_Device);
658   addControlledDevice(Denon_Make, "DRA-275RD", Audio_Device);
659   addControlledDevice(Denon_Make, "UD-M30", Audio_Device);
660
661   NECProtocol *np = new NECProtocol(
662     guiObject,
663     index,
664     300, 750,
665     300, 1800,
666     67500, true);
667
668   threadableProtocol = np;
669
670   np->setElevenBitToggle(true);
671
672   np->setTrailerPulse(300);
673
674   addKey("KEY_POWER", Power_Key, 0x1828, 15); // "aus"
675   addKey("KEY_SLEEP", Sleep_Key, 0x1938, 15);
676   addKey("KEY_FN", Unmapped_Key, 0x1BE8, 15); // "func"
677   addKey("KEY_STOP", Stop_Key, 0x09E8, 15); // "CD_STOP"
678   addKey("KEY_PLAY", Play_Key, 0x08E8, 15); // "cdplay"
679   addKey("KEY_PAUSE", Pause_Key, 0x0AE8, 15); // "cdpause"
680   addKey("KEY_REWIND", Rewind_Key, 0x0B68, 15); // "cdfrew"
681   addKey("KEY_FORWARD", FastForward_Key, 0x0968, 15); // "cdffwd"
682   addKey("KEY_PREVIOUS", Previous_Key, 0x0A68, 15); // "cdrew", "cdprevtrack"
683   addKey("KEY_NEXT", Next_Key, 0x0868, 15); // "cdfwd", "cdnexttrack"
684   addKey("KEY_1", One_Key, 0x0908, 15);
685   addKey("KEY_2", Two_Key, 0x0B08, 15);
686   addKey("KEY_3", Three_Key, 0x0888, 15);
687   addKey("KEY_4", Four_Key, 0x0A88, 15);
688   addKey("KEY_5", Five_Key, 0x0988, 15);
689   addKey("KEY_6", Six_Key, 0x0B88, 15);
690   addKey("KEY_7", Seven_Key, 0x0BB7, 15);
691   addKey("KEY_8", Eight_Key, 0x0A48, 15);
692   addKey("KEY_9", Nine_Key, 0x0948, 15);
693   addKey("10", Zero_Key, 0x0B48, 15);
694   addKey("+10", DoubleDigit_Key, 0x08C8, 15);
695   addKey("DIRECT", Unmapped_Key, 0x0BA8, 15); // "direct"
696   addKey("KEY_PROGRAM", Program_Key, 0x0AC8, 15);
697   addKey("KEY_CANCEL", Clear_Key, 0x0A28, 15); // "cancel", "CD_CANCEL"
698   addKey("TUNER BAND", Unmapped_Key, 0x1BAC, 15);
699   addKey("TUNER KEY_DOWN", ChannelDown_Key, 0x196C, 15);
700   addKey("TUNER KEY_UP", ChannelUp_Key, 0x1A6C, 15);
701   addKey("CT", Unmapped_Key, 0x1B2C, 15); // "TUNER_CT"
702   addKey("RDS", Unmapped_Key, 0x192C, 15); // "TUNER_RDS"
703   addKey("PRESET DOWN", Down_Key, 0x1BC8, 15); // "dwn"
704   addKey("PRESET UP", Up_Key, 0x19C8, 15); // "up"
705   addKey("TAPE REW", Unmapped_Key, 0x13A8, 15); // "TAPE_PLAY_REV"
706   addKey("TAPE FWD", Unmapped_Key, 0x10E8, 15); // "TAPE_PLAY_FORW"
707   addKey("TAPE FAST REW", Unmapped_Key, 0x1368, 15); // "TAPE_REW"
708   addKey("TAPE FAST FWD", Unmapped_Key, 0x1168, 15); // "TAPE_FORW"
709   addKey("TAPE STOP", Unmapped_Key, 0x11E8, 15);
710   addKey("TAPE 2 REW", Unmapped_Key, 0x1398, 15);
711   addKey("TAPE 2 FWD", Unmapped_Key, 0x10D8, 15);
712   addKey("TAPE 2 FAST REW", Unmapped_Key, 0x1358, 15);
713   addKey("TAPE 2 FAST FWD", Unmapped_Key, 0x1158, 15);
714   addKey("TAPE 2 STOP", Unmapped_Key, 0x11D8, 15);
715   addKey("KEY_RECORD", Record_Key, 0x13D8, 15);
716   addKey("SDB", Unmapped_Key, 0x095C, 15);
717   addKey("KEY_VOLUMEDOWN", VolumeDown_Key, 0x18C8, 15);
718   addKey("KEY_VOLUMEUP", VolumeUp_Key, 0x1AC8, 15);
719   addKey("cdskip", Unmapped_Key, 0x0B58, 15);
720   addKey("tuner", Unmapped_Key, 0x1A68, 15);
721   addKey("repeat", Repeat_Key, 0x08A8, 15); // "CD_REPEAT"
722   addKey("random", Random_Key, 0x0958, 15); // "CD_RANDOM"
723   addKey("programm", Program_Key, 0x0AC8, 15);
724   addKey("edit", Unmapped_Key, 0x0838, 15); // "CD_EDIT"
725   addKey("time", Unmapped_Key, 0x0B28, 15); // "CD_TIME"
726   addKey("reset", Reset_Key, 0x10A8, 15);
727   addKey("remain", Unmapped_Key, 0x10B8, 15);
728   addKey("tapesize", Unmapped_Key, 0x1018, 15);
729   addKey("revmode", Unmapped_Key, 0x1118, 15);
730   addKey("memo", Unmapped_Key, 0x1A2C, 15);
731   addKey("pty", Unmapped_Key, 0x18AC, 15); // "TUNER_PTY"
732   addKey("panel", Info_Key, 0x19EC, 15);
733   addKey("eon", Unmapped_Key, 0x1BBC, 15);
734   addKey("auto_space", Unmapped_Key, 0x0A18, 15);
735   addKey("auto_edit", Unmapped_Key, 0x0B18, 15);
736   addKey("open_close", Eject_Key, 0x0828, 15);
737   addKey("fader", Unmapped_Key, 0x09B8, 15);
738   addKey("pitch-", Unmapped_Key, 0x0878, 15);
739   addKey("pitch+", Unmapped_Key, 0x0BB8, 15);
740   addKey("peak", Unmapped_Key, 0x0BD8, 15);
741   addKey("TAPE_AB", Unmapped_Key, 0x1328, 15);
742   addKey("TAPE_PAUSE", Unmapped_Key, 0x12E8, 15);
743   addKey("RCVR_PANEL", Info_Key, 0x19F8, 15);
744   addKey("RCVR_TAPE_MON", Unmapped_Key, 0x18E8, 15);
745   addKey("RCVR_TAPE2", Unmapped_Key, 0x19E8, 15);
746   addKey("RCVR_TAPE1", Unmapped_Key, 0x1AE8, 15);
747   addKey("RCVR_VIDEO", Unmapped_Key, 0x1B28, 15);
748   addKey("RCVR_TUNER", Unmapped_Key, 0x1A68, 15);
749   addKey("RCVR_CD", Unmapped_Key, 0x1A97, 15);
750   addKey("RCVR_PHONO", Unmapped_Key, 0x1868, 15);
751 }
752
753
754 DenonAudio1a::DenonAudio1a(
755   QObject *guiObject,
756   unsigned int index)
757   : DenonAudio1(guiObject, index)
758 {
759   setKeysetName("Audio Keyset 1a");
760
761   addControlledDevice(Denon_Make, "UCD-F07", Audio_Device);
762   addControlledDevice(Denon_Make, "UDR-F07", Audio_Device);
763   addControlledDevice(Denon_Make, "UDRA-F07", Audio_Device);
764
765   addKey("rec", Record_Key, 0x13E8, 15);
766   addKey("side_a/b", Unmapped_Key, 0x0B28, 15);
767   addKey("cdstop", Stop_Key, 0x0A17, 15);
768 }
769
770
771 DenonAudio1b::DenonAudio1b(
772   QObject *guiObject,
773   unsigned int index)
774   : DenonAudio1(guiObject, index)
775 {
776   setKeysetName("Audio Keyset 1b");
777
778   addControlledDevice(Denon_Make, "DCD-1015", Audio_Device);
779   addControlledDevice(Denon_Make, "DCD-655", Audio_Device);
780
781   addKey("vol_down", VolumeDown_Key, 0x0BC8, 15);
782   addKey("vol_up", VolumeUp_Key, 0x09C8, 15);
783   addKey("display", Info_Key, 0x0AB8, 15);
784 }
785
786
787 DenonAudio1c::DenonAudio1c(
788   QObject *guiObject,
789   unsigned int index)
790   : DenonAudio1b(guiObject, index)
791 {
792   setKeysetName("Audio Keyset 1c (odd)");
793
794   addControlledDevice(Denon_Make, "DCM-260", Audio_Device);
795
796   addKey("RANDOM", Random_Key, 0x0AA7, 15);
797   addKey("2", Two_Key, 0x08F7, 15);
798   addKey("DISC_SELECT", Unmapped_Key, 0x0918, 15);
799 //  addKey("DISC_SKIP+", Unmapped_Key, 0x0B58, 15); // already in parent...
800   addKey("DISC_SKIP-", Unmapped_Key, 0x0A27, 15); // not in parent
801   addKey("|<<", Previous_Key, 0x0997, 15);
802 }
803
804
805 DenonAudio1d::DenonAudio1d(
806   QObject *guiObject,
807   unsigned int index)
808   : DenonAudio1(guiObject, index)
809 {
810   setKeysetName("Audio Keyset 1d");
811
812   addControlledDevice(Denon_Make, "UDRA-M7", Audio_Device);
813   addControlledDevice(Denon_Make, "UPA-F88", Audio_Device);
814   addControlledDevice(Denon_Make, "UCD-F88", Audio_Device);
815   addControlledDevice(Denon_Make, "UDR-F88", Audio_Device);
816   addControlledDevice(Denon_Make, "UTU-F88", Audio_Device);
817   addControlledDevice(Denon_Make, "RC-846", Audio_Device);
818
819   addKey("TAPE_REC", Record_Key, 0x13E8, 15);
820   addKey("MD_PLAY", Unmapped_Key, 0x311C, 15);
821   addKey("MD_STOP", Unmapped_Key, 0x321C, 15);
822   addKey("MD_REC", Unmapped_Key, 0x329C, 15);
823   addKey("MD_SEARCH_NEXT", Unmapped_Key, 0x325C, 15);
824   addKey("MD_SEARCH_PREVIOUS", Unmapped_Key, 0x315C, 15);
825 }
826
827
828 DenonAudio2::DenonAudio2(
829   QObject *guiObject,
830   unsigned int index)
831   : PIRKeysetMetaData(
832       "Audio Keyset 2",
833       Denon_Make,
834       index)
835 {
836   addControlledDevice(Denon_Make, "D-C30", Audio_Device);
837
838   threadableProtocol = new NECProtocol(guiObject, index);
839
840   setPreData(0xDA25, 16);
841
842   addKey("Power", Power_Key, 0x00FF, 16);
843   addKey("Tuner_Band", Unmapped_Key, 0xE01F, 16);
844   addKey("EQ_Pattern", Unmapped_Key, 0x8877, 16);
845   addKey("Open/Close", Eject_Key, 0x18E7, 16);
846   addKey("1", One_Key, 0xB24D, 16);
847   addKey("2", Two_Key, 0x728D, 16);
848   addKey("3", Three_Key, 0xF20D, 16);
849   addKey("4", Four_Key, 0x0AF5, 16);
850   addKey("5", Five_Key, 0x8A75, 16);
851   addKey("6", Six_Key, 0x4AB5, 16);
852   addKey("7", Seven_Key, 0xCA35, 16);
853   addKey("8", Eight_Key, 0x2AD5, 16);
854   addKey("9", Nine_Key, 0xAA55, 16);
855   addKey("10", Unmapped_Key, 0x6A95, 16);
856   addKey("0/11", Zero_Key, 0xDA25, 16);
857   addKey("10+/12", DoubleDigit_Key, 0xEA15, 16);
858   addKey("Record_Pause", Unmapped_Key, 0xF807, 16);
859   addKey("Play_Backward", Unmapped_Key, 0x4B87, 16);
860   addKey("Stop", Unmapped_Key, 0xB847, 16);
861   addKey("Play_Forward", Unmapped_Key, 0x9867, 16);
862   addKey("A.Edit", Unmapped_Key, 0x20DF, 16);
863   addKey("Fast_Rewind", Unmapped_Key, 0x38C7, 16);
864   addKey("Fast_Forward", Unmapped_Key, 0xD827, 16);
865   addKey("Tape_1/2", Unmapped_Key, 0x906F, 16);
866   addKey("Remain", Unmapped_Key, 0xC03F, 16);
867   addKey("Random", Random_Key, 0x5AA5, 16);
868   addKey("Prog", Program_Key, 0x6897, 16);
869   addKey("Disc", Unmapped_Key, 0x7A85, 16);
870   addKey("Skip_Backward", Previous_Key, 0xA857, 16);
871   addKey("Skip_Forward", Next_Key, 0x28D7, 16);
872   addKey("CD_Stop", Stop_Key, 0xC837, 16);
873   addKey("CD_Play", Play_Key, 0x48B7, 16);
874   addKey("P.Mode", Unmapped_Key, 0xD02F, 16);
875   addKey("Repeat", Repeat_Key, 0xE817, 16);
876   addKey("Volume_Down", VolumeDown_Key, 0x40BF, 16);
877   addKey("Volume_Up", VolumeUp_Key, 0x807F, 16);
878 }
879
880
881 DenonAudio3::DenonAudio3(
882   QObject *guiObject,
883   unsigned int index)
884   : PIRKeysetMetaData(
885       "Audio Keyset 3",
886       Denon_Make,
887       index)
888 {
889   NECProtocol *np = new NECProtocol(
890     guiObject,
891     index,
892     336, 717,
893     336, 1773,
894     67458, true);
895
896   threadableProtocol = np;
897
898   np->setElevenBitToggle(true);
899
900   np->setTrailerPulse(336);
901
902   addKey("open_close", Eject_Key, 0x8828, 15);
903   addKey("call", Unmapped_Key, 0x8928, 15);
904   addKey("prog", Program_Key, 0x8B08, 15);
905   addKey("direct", Unmapped_Key, 0x8BA8, 15);
906   addKey("1", One_Key, 0x8908, 15);
907   addKey("2", Two_Key, 0x8B08, 15);
908   addKey("3", Three_Key, 0x8888, 15);
909   addKey("4", Four_Key, 0x8A88, 15);
910   addKey("5", Five_Key, 0x8988, 15);
911   addKey("6", Six_Key, 0x8B88, 15);
912   addKey("7", Seven_Key, 0x8848, 15);
913   addKey("8", Eight_Key, 0x8A48, 15);
914   addKey("9", Nine_Key, 0x8948, 15);
915   addKey("10", Zero_Key, 0x8B48, 15);
916   addKey("+10", DoubleDigit_Key, 0x88C8, 15);
917   addKey("play", Play_Key, 0x88E8, 15);
918   addKey("vol_up", VolumeUp_Key, 0x89C8, 15);
919   addKey("vol_down", VolumeDown_Key, 0x8BC8, 15);
920   addKey("pause", Pause_Key, 0x8AE8, 15);
921   addKey("stop", Stop_Key, 0x89E8, 15);
922   addKey("a_space", Unmapped_Key, 0x8A18, 15);
923   addKey("all", Unmapped_Key, 0x88A8, 15);
924   addKey("a-b", Unmapped_Key, 0x8AA8, 15);
925   addKey("rewind", Rewind_Key, 0x8B68, 15);
926   addKey("wind", FastForward_Key, 0x8968, 15);
927   addKey("prev", Previous_Key, 0x8A68, 15);
928   addKey("next", Next_Key, 0x8868, 15);
929 }
930
931
932 DenonAudio4::DenonAudio4(
933   QObject *guiObject,
934   unsigned int index)
935   : PIRKeysetMetaData(
936       "Audio Keyset 4",
937       Denon_Make,
938       index)
939 {
940   addControlledDevice(Denon_Make, "DMD-800", Audio_Device);
941
942   NECProtocol *np = new NECProtocol(
943     guiObject,
944     index,
945     275, 775,
946     275, 1900,
947     43000, false);
948
949   threadableProtocol = np;
950
951   np->setElevenBitToggle(true);
952
953   np->setTrailerPulse(275);
954
955   addKey("EJECT", Eject_Key, 0x319C, 15);
956   addKey("POWER", Power_Key, 0x301C, 15);
957   addKey("PLAY", Play_Key, 0x311C, 15);
958   addKey("PAUSE", Pause_Key, 0x331C, 15);
959   addKey("STOP", Stop_Key, 0x321C, 15);
960   addKey("REC", Record_Key, 0x329C, 15);
961   addKey("1", One_Key, 0x320C, 15);
962   addKey("2", Two_Key, 0x310C, 15);
963   addKey("3", Three_Key, 0x330C, 15);
964   addKey("4", Four_Key, 0x308C, 15);
965   addKey("5", Five_Key, 0x328C, 15);
966   addKey("6", Six_Key, 0x318C, 15);
967   addKey("7", Seven_Key, 0x338C, 15);
968   addKey("8", Eight_Key, 0x304C, 15);
969   addKey("9", Nine_Key, 0x324C, 15);
970   addKey("10", Zero_Key, 0x314C, 15);
971   addKey("+10", DoubleDigit_Key, 0x305C, 15);
972   addKey("CALL", Unmapped_Key, 0x31BC, 15);
973   addKey("PREV_TRACK", Previous_Key, 0x315C, 15);
974   addKey("NEXT_TRACK", Next_Key, 0x325C, 15);
975   addKey("BACK", Replay_Key, 0x30DC, 15);
976   addKey("FORWARD", Advance_Key, 0x335C, 15);
977   addKey("CLEAR", Clear_Key, 0x33EC, 15);
978   addKey("PROG", Program_Key, 0x303C, 15);
979   addKey("REPEAT", Repeat_Key, 0x323C, 15);
980   addKey("RANDOM", Random_Key, 0x333C, 15);
981   addKey("EDIT", Unmapped_Key, 0x33DC, 15);
982   addKey("ENTER", Select_Key, 0x31EC, 15);
983   addKey("TIME", Unmapped_Key, 0x30BC, 15);
984   addKey("CHAR", Unmapped_Key, 0x32EC, 15);
985   addKey("TITLE", Unmapped_Key, 0x32BC, 15);
986 }
987
988
989 DenonAudio5::DenonAudio5(
990   QObject *guiObject,
991   unsigned int index)
992   : PIRKeysetMetaData(
993       "Audio Keyset 5",
994       Denon_Make,
995       index)
996 {
997   addControlledDevice(Denon_Make, "D-G1MD", Audio_Device);
998
999   threadableProtocol = new NECProtocol(guiObject, index);
1000
1001   setPreData(0x4040, 16);
1002
1003   addKey("fm/am", Unmapped_Key, 0x00FF, 16);
1004   addKey("tape", Unmapped_Key, 0x10EF, 16);
1005   addKey("cd", Unmapped_Key, 0x08F7, 16);
1006   addKey("md", Unmapped_Key, 0x02FD, 16);
1007   addKey("aux", Unmapped_Key, 0x18E7, 16);
1008   addKey("rds", Unmapped_Key, 0x807F, 16);
1009   addKey("pty", Unmapped_Key, 0x906F, 16);
1010   addKey("ct", Unmapped_Key, 0x8877, 16);
1011   addKey("rt", Unmapped_Key, 0x9867, 16);
1012   addKey("fmmode", Unmapped_Key, 0x827D, 16);
1013   addKey("1", One_Key, 0x40BF, 16);
1014   addKey("2", Two_Key, 0x50AF, 16);
1015   addKey("3", Three_Key, 0x48B7, 16);
1016   addKey("4", Four_Key, 0x58A7, 16);
1017   addKey("5", Five_Key, 0x42BD, 16);
1018   addKey("6", Six_Key, 0xC03F, 16);
1019   addKey("7", Seven_Key, 0xD02F, 16);
1020   addKey("8", Eight_Key, 0xC837, 16);
1021   addKey("9", Nine_Key, 0xD827, 16);
1022   addKey("0", Zero_Key, 0xC23D, 16);
1023   addKey("+10", DoubleDigit_Key, 0x20DF, 16);
1024   addKey("+100", PlusOneHundred_Key, 0x30CF, 16);
1025   addKey("clock", Unmapped_Key, 0x28D7, 16);
1026   addKey("timer", Unmapped_Key, 0x38C7, 16);
1027   addKey("sleep", Sleep_Key, 0x22DD, 16);
1028   addKey("set", Unmapped_Key, 0xA25D, 16);
1029   addKey("mdrec", Unmapped_Key, 0xA05F, 16);
1030   addKey("pickrec", Unmapped_Key, 0xB04F, 16);
1031   addKey("checkspace", Unmapped_Key, 0xA857, 16);
1032   addKey("clear", Clear_Key, 0xB847, 16);
1033   addKey("enter", Enter_Key, 0x629D, 16);
1034   addKey("recmute", Unmapped_Key, 0x609F, 16);
1035   addKey("revmode", Unmapped_Key, 0x708F, 16);
1036   addKey("dolby", Unmapped_Key, 0x6897, 16);
1037   addKey("5modesrs", Surround_Key, 0xE21D, 16);
1038   addKey("edit", Unmapped_Key, 0xE01F, 16);
1039   addKey("editcancel", Unmapped_Key, 0xF00F, 16);
1040   addKey("titleinput", Unmapped_Key, 0x7887, 16);
1041   addKey("titlesearch", Unmapped_Key, 0x12ED, 16);
1042   addKey("edit", Unmapped_Key, 0xE01F, 16);
1043   addKey("repeat", Repeat_Key, 0x52AD, 16);
1044   addKey("random", Random_Key, 0xD22D, 16);
1045   addKey("prog", Program_Key, 0xE817, 16);
1046   addKey("vol-", VolumeDown_Key, 0xF807, 16);
1047   addKey("vol+", VolumeUp_Key, 0x926D, 16);
1048   addKey("power", Power_Key, 0x32CD, 16);
1049   addKey("mute", Mute_Key, 0xF20D, 16);
1050   addKey("bass", Unmapped_Key, 0x0AF5, 16);
1051   addKey("eqmode", Unmapped_Key, 0x728D, 16);
1052   addKey("timedisp", Info_Key, 0xB24D, 16);
1053   addKey("forward", FastForward_Key, 0x8A75, 16);
1054   addKey("prev", Previous_Key, 0x4AB5, 16);
1055   addKey("stop", Stop_Key, 0xEA15, 16);
1056   addKey("next", Next_Key, 0xCA35, 16);
1057   addKey("backward", Rewind_Key, 0x6A95, 16);
1058 }