Improved to "half-way usable" (version 0.5)
[pierogi] / keysets / panasonic.cpp
1 #include "panasonic.h"
2 #include "necprotocol.h"
3
4 PanasonicAmp::PanasonicAmp(
5   QObject *guiObject,
6   unsigned int index)
7   : PIRKeysetMetaData(
8       "Amp Keyset",
9       Panasonic_Make,
10       index)
11 {
12   NECProtocol *np = new NECProtocol(
13     guiObject,
14     index,
15     400, 400,
16     400, 1200,
17     76000, false,
18     LIRC_NEC);
19
20   threadableProtocol = np;
21
22   np->setHeaderPair(4000, 1600);
23   np->setTrailerPulse(400);
24
25 //  np->setMinimumRepetitions(4);
26
27   np->setCarrierFrequency(36000);
28
29   setPreData(0x80080A86, 32);
30
31   addKey("POWER", Power_Key, 0xFDBB, 16);
32   addKey("VOL+", VolumeUp_Key, 0x0D4B, 16);
33   addKey("VOL-", VolumeDown_Key, 0x4DCB, 16);
34   addKey("SLEEP", Sleep_Key, 0x3D7B, 16);
35   addKey("DISPLAY", Info_Key, 0xF17B, 16);
36 }
37
38
39 PanasonicCarAudio::PanasonicCarAudio(
40   QObject *guiObject,
41   unsigned int index)
42   : PIRKeysetMetaData(
43       "Car Audio Keyset",
44       Panasonic_Make,
45       index)
46 {
47   NECProtocol *np = new NECProtocol(
48     guiObject,
49     index,
50     665, 465,
51     665, 1595,
52     108609, true,
53     Extended_NEC);
54
55   threadableProtocol = np;
56
57   np->setHeaderPair(9148, 4424);
58   np->setTrailerPulse(667);
59
60 //  setPreData(0x8156, 16);
61   setPreData(0x6A81, 16);
62
63   addKey("Power", Power_Key, 0x12, 8);
64   addKey("ATT", Unmapped_Key, 0x14, 8);
65   addKey("Vol_Down", VolumeDown_Key, 0x19, 8);
66   addKey("Mode", SoundMode_Key, 0x1A, 8);
67   addKey("PRG", Program_Key, 0x1C, 8);
68   addKey("Vol_Up", VolumeUp_Key, 0x1D, 8);
69   addKey("Tune/Track_Down", ChannelDown_Key, 0x1E, 8);
70   addKey("Tune/Track_Up", ChannelUp_Key, 0x1F, 8);
71 }
72
73
74 PanasonicSat1::PanasonicSat1(
75   QObject *guiObject,
76   unsigned int index)
77   : PIRKeysetMetaData(
78       "Satellite Keyset 1",
79       Panasonic_Make,
80       index)
81 {
82   NECProtocol *np = new NECProtocol(
83     guiObject,
84     index,
85     500, 400,
86     500, 1212,
87     74500, false,
88     LIRC_NEC);
89
90   threadableProtocol = np;
91
92   np->setHeaderPair(3565, 1700);
93   np->setTrailerPulse(500);
94
95   setPreData(0x40040140, 32);
96
97   addKey("POWER", Power_Key, 0xBDFC, 16);
98   addKey("CH+", ChannelUp_Key, 0xEDAC, 16);
99 //  addKey("CH+", ChannelUp_Key, 0x2D6C, 16);
100   addKey("CH-", ChannelDown_Key, 0x6D2C, 16);
101 //  addKey("CH-", ChannelDown_Key, 0xADEC, 16);
102   addKey("R_TUNE", Unmapped_Key, 0x8BCA, 16);
103   addKey("GUIDE", Guide_Key, 0xA3E2, 16);
104   addKey("MENU", Menu_Key, 0x2362, 16);
105   addKey("EXIT", Exit_Key, 0x6322, 16);
106   addKey("LEFT", Left_Key, 0xB3F2, 16);
107   addKey("RIGHT", Right_Key, 0x7332, 16);
108   addKey("UP", Up_Key, 0x5312, 16);
109   addKey("DOWN", Down_Key, 0xD392, 16);
110   addKey("FAV", Favorites_Key, 0x0B4A, 16);
111   addKey("INFO", Info_Key, 0x9DDC, 16);
112   addKey("1", One_Key, 0x0544, 16);
113   addKey("2", Two_Key, 0x85C4, 16);
114   addKey("3", Three_Key, 0x4504, 16);
115   addKey("4", Four_Key, 0xC584, 16);
116   addKey("5", Five_Key, 0x2564, 16);
117   addKey("6", Six_Key, 0xA5E4, 16);
118   addKey("7", Seven_Key, 0x6524, 16);
119   addKey("8", Eight_Key, 0xE5A4, 16);
120   addKey("9", Nine_Key, 0x1554, 16);
121   addKey("0", Zero_Key, 0x95D4, 16);
122   addKey("LOGO_TUNE", Unmapped_Key, 0xABEA, 16);
123   addKey("ALT_AUD", Unmapped_Key, 0x1D5C, 16);
124   addKey("TV/DSS", Input_Key, 0x3D7C, 16);
125   addKey("REC", Record_Key, 0x4302, 16);
126   addKey("ACTION", Select_Key, 0xC382, 16);
127   addKey("PROG", Program_Key, 0x5110, 16);
128   addKey("TXT", Unmapped_Key, 0x7B3A, 16);
129   addKey("STTL", Unmapped_Key, 0xFBBA, 16);
130   addKey("GUIDE", Guide_Key, 0xCB8A, 16);
131 //  addKey("EXIT", Unmapped_Key, 0xF3B2, 16);
132   addKey("RED", Red_Key, 0x3776, 16);
133   addKey("GREEN", Green_Key, 0xB7F6, 16);
134   addKey("YELLOW", Yellow_Key, 0xF7B6, 16);
135   addKey("BLUE", Blue_Key, 0x7736, 16);
136 }
137
138
139 PanasonicSat1a::PanasonicSat1a(
140   QObject *guiObject,
141   unsigned int index)
142   : PanasonicSat1(guiObject, index)
143 {
144   setKeysetName("Satellite Keyset 1a");
145   addKey("EXIT", Exit_Key, 0xF3B2, 16);
146   addKey("CH+", ChannelUp_Key, 0x4D0C, 16);
147   addKey("CH-", ChannelDown_Key, 0xCD8C, 16);
148 }
149
150
151 PanasonicTV1::PanasonicTV1(
152   QObject *guiObject,
153   unsigned int index)
154   : PIRKeysetMetaData(
155       "TV Keyset 1",
156       Panasonic_Make,
157       index)
158 {
159   NECProtocol *np = new NECProtocol(
160     guiObject,
161     index,
162     500, 400,
163     500, 1250,
164     75000, false,
165     LIRC_NEC);
166
167   threadableProtocol = np;
168
169   np->setHeaderPair(3500, 1700);
170   np->setTrailerPulse(500);
171
172 //  np->setMinRepeat(1);
173
174   setPreData(0x400401, 24);
175
176   addKey("POWER", Power_Key, 0x00BCBD, 24);
177   addKey("MUTE", Mute_Key, 0x004C4D, 24);
178   addKey("PICTURE", Unmapped_Key, 0x006061, 24);
179   addKey("SOUND", Unmapped_Key, 0x00E0E1, 24);
180   addKey("ACTION", Enter_Key, 0x004A4B, 24);
181   addKey("ACTION", Select_Key, 0x004A4B, 24);
182   addKey("UP", Up_Key, 0x005253, 24);
183   addKey("DOWN", Down_Key, 0x00D2D3, 24);
184   addKey("RIGHT", Right_Key, 0x00F2F3, 24);
185   addKey("LEFT", Left_Key, 0x007273, 24);
186   addKey("PROG_UP", ChannelUp_Key, 0x002C2D, 24);
187   addKey("PROG_DOWN", ChannelDown_Key, 0x00ACAD, 24);
188   addKey("VOLUME_UP", VolumeUp_Key, 0x000405, 24);
189   addKey("VOLUME_DOWN", VolumeDown_Key, 0x008485, 24);
190   addKey("RECALL", PrevChannel_Key, 0x009C9D, 24);
191   addKey("TV/AV", Input_Key, 0x00A0A1, 24);
192   addKey("RED", Red_Key, 0x000E0F, 24);
193   addKey("GREEN", Green_Key, 0x008E8F, 24);
194   addKey("YELLOW", Yellow_Key, 0x004E4F, 24);
195   addKey("BLUE", Blue_Key, 0x00CECF, 24);
196   addKey("1", One_Key, 0x000809, 24);
197   addKey("2", Two_Key, 0x008889, 24);
198   addKey("3", Three_Key, 0x004849, 24);
199   addKey("4", Four_Key, 0x00C8C9, 24);
200   addKey("5", Five_Key, 0x002829, 24);
201   addKey("6", Six_Key, 0x00A8A9, 24);
202   addKey("7", Seven_Key, 0x006869, 24);
203   addKey("8", Eight_Key, 0x00E8E9, 24);
204   addKey("9", Nine_Key, 0x001819, 24);
205   addKey("0", Zero_Key, 0x009899, 24);
206   addKey("C", Clear_Key, 0x005C5D, 24);
207   addKey("-/--", DoubleDigit_Key, 0x00DCDD, 24); // Might also be Dash_Key
208   addKey("SURROUND", Surround_Key, 0x008C8D, 24);
209   addKey("MULTIWINDOW", Unmapped_Key, 0x006766, 24);
210   addKey("N", Unmapped_Key, 0x003031, 24);
211   addKey("STR", Unmapped_Key, 0x00ABAA, 24);
212   addKey("TIMER", Timer_Key, 0x00F0F1, 24);
213   addKey("HELP", Unmapped_Key, 0x003534, 24);
214   addKey("R-TUNE", Unmapped_Key, 0x00ECED, 24);
215   addKey("GAME", Unmapped_Key, 0x00DDDC, 24);
216   addKey("S", Unmapped_Key, 0x007071, 24);
217   addKey("S_MENU", Unmapped_Key, 0x008A8B, 24);
218   addKey("P_MENU", Unmapped_Key, 0x000A0B, 24);
219   addKey("SAP", Unmapped_Key, 0x00CCCD, 24);
220   addKey("FM/TV", Unmapped_Key, 0x007776, 24);
221   addKey("Exit", Unmapped_Key, 0x00CBCA, 24);
222   addKey("Return", Unmapped_Key, 0x002B2A, 24);
223   addKey("MOOD_LIGHT", Unmapped_Key, 0x008584, 24);
224
225   addKey("ASPECT", AspectRatio_Key, 0x207B5A, 24);
226
227   addKey("PROG", Program_Key, 0x405110, 24);
228   addKey("MENU", Menu_Key, 0x402362, 24);
229   addKey("EXIT", Exit_Key, 0x406322, 24);
230   addKey("GUIDE", Guide_Key, 0x40A3E2, 24);
231   addKey("TV", Unmapped_Key, 0x400C4D, 24);
232
233   addKey("TV/TEXT", Teletext_Key, 0x80C041, 24);
234   addKey("FP", Unmapped_Key, 0x80A021, 24);
235   addKey("INDEX", Unmapped_Key, 0x801091, 24);
236   addKey("HOLD", TeletextHold_Key, 0x809011, 24);
237   addKey("TIMETEXT", TeletextTime_Key, 0x80D051, 24);
238   addKey("REVEAL", TeletextReveal_Key, 0x8038B9, 24);
239   addKey("FTB", Unmapped_Key, 0x8030B1, 24);
240   addKey("Display_Cancel", Unmapped_Key, 0x8020A1, 24);
241   addKey("List/F.Text", Unmapped_Key, 0x80B839, 24);
242
243   addKey("DIRECTREC", Record_Key, 0x909100, 24);
244   addKey("Link", Unmapped_Key, 0x908D1C, 24);
245   addKey("Option", Unmapped_Key, 0x90E574, 24);
246   addKey("SDCard", Unmapped_Key, 0x90D544, 24);
247   addKey("Guide", Unmapped_Key, 0x90E170, 24);
248   addKey("prog-", Unmapped_Key, 0x900B9A, 24);
249 }
250
251
252 PanasonicTV1a::PanasonicTV1a(
253   QObject *guiObject,
254   unsigned int index)
255   : PanasonicTV1(guiObject, index)
256 {
257   setKeysetName("TV Keyset 1a");
258   // Overwrite some of the keys:
259   addKey("OK", Select_Key, 0x009293, 24);
260   addKey("MENU", Menu_Key, 0x006061, 24);
261 }
262
263
264 PanasonicTV1b::PanasonicTV1b(
265   QObject *guiObject,
266   unsigned int index)
267   : PanasonicTV1(guiObject, index)
268 {
269   setKeysetName("TV Keyset 1b");
270
271   addControlledDevice(Panasonic_Make, "Viera TX-32LZD80", TV_Device);
272   addControlledDevice(Panasonic_Make, "Viera 42PZ700U", TV_Device);
273
274   addKey("Menu", Menu_Key, 0x004A4B, 24);
275   addKey("OK", Select_Key, 0x009293, 24);
276   addKey("Guide", Guide_Key, 0x90E170, 24);
277 //  addKey("Exit", Exit_Key, 0x00CBCA, 24);
278   addKey("Info", Info_Key, 0x009C9D, 24);
279   addKey("Exit", Exit_Key, 0x9059C8, 24);
280 }
281
282
283 PanasonicVCR1::PanasonicVCR1(
284   QObject *guiObject,
285   unsigned int index)
286   : PIRKeysetMetaData(
287       "VCR Keyset 1",
288       Panasonic_Make,
289       index)
290 {
291   NECProtocol *np = new NECProtocol(
292     guiObject,
293     index,
294     550, 330,
295     550, 1200,
296     75000, false,
297     LIRC_NEC);
298
299   threadableProtocol = np;
300
301   np->setHeaderPair(3600, 1650);
302   np->setTrailerPulse(550);
303
304   setPreData(0x400409, 24);
305
306   addKey("POWER", Power_Key, 0x00BCB5, 24);
307   addKey("PROGRAMME^", ChannelUp_Key, 0x002C25, 24);
308   addKey("PROGRAMMEv", ChannelDown_Key, 0x00ACA5, 24);
309   addKey("REC", Record_Key, 0x001019, 24);
310   addKey("PAUSE", Pause_Key, 0x006069, 24);
311   addKey("PLAY", Play_Key, 0x005059, 24);
312   addKey("STOP", Stop_Key, 0x000009, 24);
313   addKey("FORWARD", FastForward_Key, 0x00C0C9, 24);
314   addKey("REWIND", Rewind_Key, 0x004049, 24);
315   addKey("INFO", Info_Key, 0x009C95, 24);
316   addKey("1", One_Key, 0x000801, 24);
317   addKey("2", Two_Key, 0x008881, 24);
318   addKey("3", Three_Key, 0x004841, 24);
319   addKey("4", Four_Key, 0x00C8C1, 24);
320   addKey("5", Five_Key, 0x002821, 24);
321   addKey("6", Six_Key, 0x00A8A1, 24);
322   addKey("7", Seven_Key, 0x006861, 24);
323   addKey("8", Eight_Key, 0x00E8E1, 24);
324   addKey("9", Nine_Key, 0x001811, 24);
325   addKey("0", Zero_Key, 0x009891, 24);
326   addKey("100", PlusOneHundred_Key, 0x00A7AE, 24);
327   addKey("TV-SAT", Input_Key, 0x006C65, 24);
328   addKey("TRACKING_MINUS", TrackingMinus_Key, 0x004D44, 24);
329   addKey("TRACKING_PLUS", TrackingPlus_Key, 0x008D84, 24);
330   addKey("TRACKING_AUTO", AutoTracking_Key, 0x000D04, 24);
331   addKey("STILL", StepForward_Key, 0x003039, 24);  // also "ADV"
332   addKey("INDEXL", Unmapped_Key, 0x00929B, 24);
333   addKey("INDEXR", Unmapped_Key, 0x00525B, 24);
334   addKey("AV", Unmapped_Key, 0x00030A, 24);
335   addKey("-/--", DoubleDigit_Key, 0x00DCD5, 24);
336   addKey("REPLAY", Replay_Key, 0x00EFE6, 24);
337   addKey("DIRECT_TV_REC", Unmapped_Key, 0x00434A, 24);
338   addKey("TIMERREC", Timer_Key, 0x002D24, 24);
339   addKey("COUNTER_RESET", Unmapped_Key, 0x002A23, 24);
340   addKey("AUDIO", Audio_Key, 0x00CCC5, 24);
341   addKey("SLOW", Slow_Key, 0x00F0F9, 24);
342   addKey("INDEX", Unmapped_Key, 0x00020B, 24);
343   addKey("+", Unmapped_Key, 0x007178, 24);
344   addKey("-", Unmapped_Key, 0x00F1F8, 24);
345   addKey("mem_rep", Unmapped_Key, 0x00CAC3, 24);
346   addKey("time_search", Unmapped_Key, 0x00222B, 24);
347   addKey("monitor", Unmapped_Key, 0x008980, 24);
348   addKey("repeat", Repeat_Key, 0x000F06, 24);
349   addKey("memory", Program_Key, 0x008F86, 24);
350   addKey("sleep", Sleep_Key, 0x004F46, 24);
351   addKey("rew2", Unmapped_Key, 0x00CFC6, 24);
352   addKey("cm-zero", Unmapped_Key, 0x001F16, 24);
353   addKey("CLOCK/COUNTER", Clock_Key, 0x006A63, 24);
354   addKey("TAPE_REMAIN", Unmapped_Key, 0x00AAA3, 24);
355   addKey("mesecam", Unmapped_Key, 0x00939A, 24);
356   addKey("zerostop", Unmapped_Key, 0x00AFA6, 24);
357   addKey("sap/hi-fi", Unmapped_Key, 0x00676E, 24);
358
359   addKey("DISPLAY", Unmapped_Key, 0x80FA73, 24);
360   addKey("SEARCH", Unmapped_Key, 0x80B930, 24);
361   addKey("SPEED", VHSSpeed_Key, 0x8050D9, 24);
362   addKey("SHOWVIEW", Unmapped_Key, 0x80BA33, 24);
363   addKey("MENU", Menu_Key, 0x806AE3, 24);
364   addKey("OK", Select_Key, 0x801A93, 24);
365   addKey("EXIT", Exit_Key, 0x8066EF, 24);
366   addKey("CHECK+", Unmapped_Key, 0x800980, 24);
367   addKey("CHECK-", Unmapped_Key, 0x808900, 24);
368   addKey("DATE+", Unmapped_Key, 0x8049C0, 24);
369   addKey("DATE-", Unmapped_Key, 0x80C940, 24);
370   addKey("ON+", Unmapped_Key, 0x8029A0, 24);
371   addKey("ON-", Unmapped_Key, 0x80A920, 24);
372   addKey("OFF+", Unmapped_Key, 0x8069E0, 24);
373   addKey("OFF-", Unmapped_Key, 0x80E960, 24);
374   addKey("PROG/CHECK", Program_Key, 0x808009, 24);
375   addKey("CANCEL", Clear_Key, 0x809019, 24);
376   addKey("TAPE", Unmapped_Key, 0x80078E, 24);
377   addKey("ADD/DELETE", Unmapped_Key, 0x808C05, 24);
378   addKey("RADIO_TUNE", Unmapped_Key, 0x801C95, 24);
379   addKey("VPS/PDC", Unmapped_Key, 0x8060E9, 24);
380   addKey("OffTimer", Sleep_Key, 0x801099, 24);
381   addKey("rotate", Unmapped_Key, 0x8040C9, 24);
382   addKey("rotatedown", Unmapped_Key, 0x80C049, 24);
383   addKey("set", Unmapped_Key, 0x8020A9, 24);
384   addKey("clear", Unmapped_Key, 0x80A029, 24);
385
386   addKey("TV/TEXT", Unmapped_Key, 0xA0EA43, 24);
387   addKey("STILL_ALBUM", Unmapped_Key, 0xA0C46D, 24);
388   addKey("ExtLink", Unmapped_Key, 0xA0DA73, 24);
389   addKey("I-Timer", Unmapped_Key, 0xA0FC55, 24);
390   addKey("PROG_PLAY", Unmapped_Key, 0xA05CF5, 24);
391
392 // These are fishy:
393 //  addKey("RESET_STORE", Unmapped_Key, 0x801A93, 24);
394 }
395
396
397 PanasonicVCR1a::PanasonicVCR1a(
398   QObject *guiObject,
399   unsigned int index)
400   : PanasonicVCR1(guiObject, index)
401 {
402   setKeysetName("VCR Keyset 1a");
403
404   addKey("DISPLAY", Info_Key, 0x80FA73, 24);
405   addKey("AV", Input_Key, 0x00030A, 24);
406   addKey("OSD", Info_Key, 0x00EAE3, 24);
407 }
408
409
410 PanasonicVCR1b::PanasonicVCR1b(
411   QObject *guiObject,
412   unsigned int index)
413   : PanasonicVCR1(guiObject, index)
414 {
415   setKeysetName("VCR Keyset 1b");
416
417   addKey("clear", Clear_Key, 0x8050D9, 24);
418   addKey("prog", Program_Key, 0x00FFF6, 24);
419   addKey("repeat", Repeat_Key, 0x009F96, 24);
420 }
421
422
423 PanasonicVCR1c::PanasonicVCR1c(
424   QObject *guiObject,
425   unsigned int index)
426   : PanasonicVCR1(guiObject, index)
427 {
428   setKeysetName("VCR Keyset 1c");
429
430   addKey("rotate", Up_Key, 0x8040C9, 24);
431   addKey("rotatedown", Down_Key, 0x80C049, 24);
432   addKey("set", Select_Key, 0x8020A9, 24);
433   addKey("clear", Exit_Key, 0x80A029, 24);
434 }
435
436
437 PanasonicDVD1::PanasonicDVD1(
438   QObject *guiObject,
439   unsigned int index)
440   : PIRKeysetMetaData(
441       "DVD Keyset 1",
442       Panasonic_Make,
443       index)
444 {
445   NECProtocol *np = new NECProtocol(
446     guiObject,
447     index,
448     500, 400,
449     500, 1200,
450     75000, false,
451     LIRC_NEC);
452
453   threadableProtocol = np;
454
455   np->setHeaderPair(3500, 1650);
456   np->setTrailerPulse(500);
457
458   setPreData(0x40040D00, 32);
459
460   addKey("POWER", Power_Key, 0xBCB1, 16);
461   addKey("PLAY", Play_Key, 0x505D, 16);
462   addKey("REW", Rewind_Key, 0x202D, 16);
463   addKey("FF", FastForward_Key, 0xA0AD, 16);
464   addKey("STOP", Stop_Key, 0x000D, 16);
465   addKey("PAUSE", Pause_Key, 0x606D, 16);
466   addKey("PREV", Previous_Key, 0x929F, 16);
467   addKey("NEXT", Next_Key, 0x525F, 16);
468   addKey("UP", Up_Key, 0xA1AC, 16);
469   addKey("LEFT", Left_Key, 0xE1EC, 16);
470   addKey("RIGHT", Right_Key, 0x111C, 16);
471   addKey("DOWN", Down_Key, 0x616C, 16);
472   addKey("ACTION", Select_Key, 0x414C, 16);
473   addKey("RETURN", Exit_Key, 0x818C, 16);
474   addKey("MENU", Menu_Key, 0x010C, 16);
475   addKey("INFO", Info_Key, 0x4944, 16);
476   addKey("1", One_Key, 0x0805, 16);
477   addKey("2", Two_Key, 0x8885, 16);
478   addKey("3", Three_Key, 0x4845, 16);
479   addKey("4", Four_Key, 0xC8C5, 16);
480   addKey("5", Five_Key, 0x2825, 16);
481   addKey("6", Six_Key, 0xA8A5, 16);
482   addKey("7", Seven_Key, 0x6865, 16);
483   addKey("8", Eight_Key, 0xE8E5, 16);
484   addKey("9", Nine_Key, 0x1815, 16);
485   addKey("0", Zero_Key, 0x9895, 16);
486   addKey("CANCEL", Clear_Key, 0xC1CC, 16);
487   addKey("+10", DoubleDigit_Key, 0x919C, 16);
488   addKey("inputselect", Input_Key, 0x919C, 16);
489 //  addKey("R-TUNE", Unmapped_Key, 0xD9D4, 16);
490   addKey("TOP_MENU", DiscTitle_Key, 0xD9D4, 16);
491   addKey("OPEN/CLOSE", Eject_Key, 0x808D, 16);
492 //  addKey("TV-SAT", Input_Key, 0x808D, 16);
493   addKey("CH_DOWN", ChannelDown_Key, 0xE0ED, 16);
494   addKey("CH_UP", ChannelUp_Key, 0xF0FD, 16);
495   addKey("SLEEP", Sleep_Key, 0xD7DA, 16);
496   addKey("SUBTITLE", Captions_Key, 0x8984, 16);
497   addKey("AUDIO", Audio_Key, 0xCCC1, 16);
498   addKey("ANGLE", Angle_Key, 0x0904, 16);
499   addKey("QUICK_REPLAY", Replay_Key, 0xD1DC, 16);
500   addKey("PROGRAM", Program_Key, 0x515C, 16);
501   addKey("RANDOM", Random_Key, 0xB2BF, 16);
502   addKey("REPEAT", Repeat_Key, 0x313C, 16);
503   addKey("A-B_REPEAT", RepeatAB_Key, 0x121F, 16);
504   addKey("A.SRD", Unmapped_Key, 0x7974, 16);
505   addKey("BASS", Unmapped_Key, 0x2B26, 16);
506   addKey("CINEMA", Unmapped_Key, 0x030E, 16);
507   addKey("D.ENH", Unmapped_Key, 0xABA6, 16);
508   addKey("ZOOM", Zoom_Key, 0x838E, 16);
509   addKey("POSITION_MEMORY", Unmapped_Key, 0x626F, 16);
510   addKey("ONETOUCH_MEMORY", Unmapped_Key, 0x6B66, 16);
511   addKey("GROUP", Unmapped_Key, 0x070A, 16);
512   addKey("PLAY_MODE", Unmapped_Key, 0xB1BC, 16);
513   addKey("SETUP", Unmapped_Key, 0x2924, 16);
514   addKey("CINEMA", Unmapped_Key, 0x030E, 16);
515   addKey("VOLUMEUP", VolumeUp_Key, 0xC6CB, 16);
516   addKey("VOLUMEDOWN", VolumeDown_Key, 0x262B, 16);
517   addKey("showview", Unmapped_Key, 0xFEF3, 16);
518   addKey("manualskip", Unmapped_Key, 0x323F, 16);
519   addKey("functions", Unmapped_Key, 0xEAE7, 16);
520   addKey("progcheck", Unmapped_Key, 0x3E33, 16);
521   addKey("status", Unmapped_Key, 0xFAF7, 16);
522   addKey("timeslip", Unmapped_Key, 0xD2DF, 16);
523   addKey("rec", Record_Key, 0x101D, 16);
524   addKey("recmode", Unmapped_Key, 0x8A87, 16);
525   addKey("extlink", Unmapped_Key, 0xC4C9, 16);
526   addKey("timer", Timer_Key, 0x1E13, 16);
527   addKey("createchapter", Unmapped_Key, 0x1A17, 16);
528   addKey("erase", Unmapped_Key, 0x222F, 16);
529   addKey("frec", Unmapped_Key, 0xE3EE, 16);
530   addKey("DISC", Unmapped_Key, 0xEDE0, 16);
531   addKey("SEQUENTIAL", Unmapped_Key, 0xFDF0, 16);
532   addKey("FL_SELECT", Unmapped_Key, 0x6D60, 16);
533   addKey("i", Unmapped_Key, 0x666B, 16);
534 //  addKey("EXIT", Unmapped_Key, 0x808A07, 24);
535 //  addKey("RED", Unmapped_Key, 0x80820F, 24);
536 //  addKey("GREEN", Unmapped_Key, 0x8042CF, 24);
537 }
538
539
540 PanasonicDVD1a::PanasonicDVD1a(
541   QObject *guiObject,
542   unsigned int index)
543   : PanasonicDVD1(guiObject, index)
544 {
545   setKeysetName("DVD Keyset 1a");
546
547   addKey("channel2up", ChannelUp_Key, 0x2C21, 16);
548   addKey("channel2down", ChannelDown_Key, 0xACA1, 16);
549   addKey("DELETE", Clear_Key, 0x222F, 16);
550   addKey("INPUT_SELECT", Input_Key, 0x0A07, 16);
551 }
552
553
554 PanasonicAudio1::PanasonicAudio1(
555   QObject *guiObject,
556   unsigned int index)
557   : PIRKeysetMetaData(
558       "Audio Keyset 1",
559       Panasonic_Make,
560       index)
561 {
562   addControlledDevice(Panasonic_Make, "RX-DS25", Audio_Device);
563   addControlledDevice(Panasonic_Make, "RX-e300", Audio_Device);
564
565   NECProtocol *np = new NECProtocol(
566     guiObject,
567     index,
568     400, 400,
569     400, 1200,
570     76000, false,
571     LIRC_NEC);
572
573   threadableProtocol = np;
574
575   np->setHeaderPair(4000, 1600);
576   np->setTrailerPulse(400);
577
578 //  np->setMinimumRepetitions(1);
579
580   setPreData(0x40040543, 32);
581
582   addKey("power", Power_Key, 0xFDBB, 16);
583   addKey("tape", Unmapped_Key, 0x3573, 16);
584   addKey("1", One_Key, 0x094F, 16);
585   addKey("2", Two_Key, 0x89CF, 16);
586   addKey("3", Three_Key, 0x490F, 16);
587   addKey("4", Four_Key, 0xC98F, 16);
588   addKey("5", Five_Key, 0x296F, 16);
589   addKey("6", Six_Key, 0xA9EF, 16);
590   addKey("7", Seven_Key, 0x692F, 16);
591   addKey("8", Eight_Key, 0xE9AF, 16);
592   addKey("9", Nine_Key, 0x195F, 16);
593   addKey("+10", DoubleDigit_Key, 0xF9BF, 16);
594   addKey("10/0", Zero_Key, 0x99DF, 16);
595   addKey("cancel", Clear_Key, 0xB1F7, 16);
596   addKey("program", Program_Key, 0xD197, 16); // "MEMORY"
597   addKey("tuner-band", TunerBand_Key, 0x1D5B, 16);
598   addKey("tuning-", ChannelDown_Key, 0x5711, 16);
599   addKey("tuning+", ChannelUp_Key, 0x97D1, 16);
600   addKey("TUNER_PRESET_TUNE_DOWN", Unmapped_Key, 0x1751, 16);
601   addKey("TUNER_PRESET_TUNE_UP", Unmapped_Key, 0xE7A1, 16);
602   addKey("fm-mode", Unmapped_Key, 0x2761, 16); // "st-mono"
603   addKey("cd", Unmapped_Key, 0x6D2B, 16);
604   addKey("prev", Previous_Key, 0x2167, 16);
605   addKey("next", Next_Key, 0xA1E7, 16);
606   addKey("stop-clear", Stop_Key, 0x0147, 16);
607   addKey("play-pause", Play_Key, 0xE1A7, 16);
608   addKey("play-pause", Pause_Key, 0xE1A7, 16);
609   addKey("repeat", Repeat_Key, 0x81C7, 16);
610   addKey("xbs", Unmapped_Key, 0x6B2D, 16);
611   addKey("vol-", VolumeDown_Key, 0x8DCB, 16);
612   addKey("vol+", VolumeUp_Key, 0x0D4B, 16);
613   addKey("sleep", Sleep_Key, 0x3D7B, 16);
614   addKey("display", Info_Key, 0xF1B7, 16);
615   addKey("preset_eq", Unmapped_Key, 0x9BDD, 16);
616   addKey("bp", Unmapped_Key, 0xF7B1, 16); // "TUNER_BP"
617   addKey("tape_record", Record_Key, 0x2563, 16);
618   addKey("counter_reset", Reset_Key, 0xF5B3, 16);
619   addKey("rev_mode", Unmapped_Key, 0x7533, 16); // "TAPE_REV_MODE"
620   addKey("rew", Rewind_Key, 0x4503, 16);
621   addKey("ff", FastForward_Key, 0xC583, 16);
622   addKey("tape_play", Unmapped_Key, 0x6523, 16);
623   addKey("tape_stop", Unmapped_Key, 0x0543, 16);
624   addKey("random", Random_Key, 0x4107, 16);
625   addKey("TAPE_DECK", Unmapped_Key, 0xB5F3, 16);
626   addKey("TAPE_PLAY_REWIND", Unmapped_Key, 0xA5E3, 16);
627   addKey("TAPE_PLAY_FORWARD", Unmapped_Key, 0x6523, 16);
628   addKey("panelclose", Unmapped_Key, 0xAFE9, 16); // "TOP_PANEL_CLOSE"
629   addKey("panelopen", Unmapped_Key, 0x2F69, 16);  // "TOP_PANEL_OPEN"
630   addKey("virtualizer", Unmapped_Key, 0x5B1D, 16); // "S.VIRT"
631   addKey("AUTOSCAN", Unmapped_Key, 0x3771, 16);
632   addKey("TRACK<<", Unmapped_Key, 0x8BCD, 16);
633   addKey("TRACK>>", Unmapped_Key, 0x0B4D, 16);
634   addKey("INTRO", Unmapped_Key, 0x6224, 16);
635 }
636
637
638 PanasonicAudio1a::PanasonicAudio1a(
639   QObject *guiObject,
640   unsigned int index)
641   : PanasonicAudio1(guiObject, index)
642 {
643   setKeysetName("Audio Keyset 1a");
644
645   addControlledDevice(Panasonic_Make, "RX-DT55", Audio_Device);
646   addControlledDevice(Panasonic_Make, "RX-DT505", Audio_Device);
647
648   addKey("CD_PAUSE", Pause_Key, 0x6127, 16);
649   addKey("CD_<<", Rewind_Key, 0x2167, 16);
650   addKey("CD_>>", FastForward_Key, 0xA1E7, 16);
651   addKey("TAPE_<<", Unmapped_Key, 0x4503, 16);
652   addKey("TAPE_>>", Unmapped_Key, 0xC583, 16);
653   addKey("eject", Eject_Key, 0x7137, 16);
654 }