Another "final" fix to the installer
[pierogi] / keysets / panasonic.cpp
1 #include "panasonic.h"
2 #include "protocols/necprotocol.h"
3 #include "protocols/kaseikyoprotocol.h"
4
5
6 PanasonicCarAudio::PanasonicCarAudio(
7   QObject *guiObject,
8   unsigned int index)
9   : PIRKeysetMetaData(
10       "Car Audio Keyset",
11       Panasonic_Make,
12       index)
13 {
14   threadableProtocol = new NECProtocol(guiObject, index, true, false);
15
16 //  setPreData(0x8156, 16);
17   setPreData(0x6A81, 16);
18
19   addKey("Power", Power_Key, 0x12, 8);
20   addKey("ATT", Unmapped_Key, 0x14, 8);
21   addKey("Vol_Down", VolumeDown_Key, 0x19, 8);
22   addKey("Mode", SoundMode_Key, 0x1A, 8);
23   addKey("PRG", Program_Key, 0x1C, 8);
24   addKey("Vol_Up", VolumeUp_Key, 0x1D, 8);
25   addKey("Tune/Track_Down", ChannelDown_Key, 0x1E, 8);
26   addKey("Tune/Track_Up", ChannelUp_Key, 0x1F, 8);
27 }
28
29
30 PanasonicSat1::PanasonicSat1(
31   QObject *guiObject,
32   unsigned int index)
33   : PIRKeysetMetaData(
34       "Satellite Keyset 1",
35       Panasonic_Make,
36       index)
37 {
38   threadableProtocol = new KaseikyoProtocol(guiObject, index);
39
40 //  setPreData(0x40040140, 32);
41   setPreData(0x2002, 16);
42
43   addKaseikyoKey("PROG", Program_Key, 0x028, 0x8A);
44   addKaseikyoKey("1", One_Key, 0x028, 0xA0);
45   addKaseikyoKey("2", Two_Key, 0x028, 0xA1);
46   addKaseikyoKey("3", Three_Key, 0x028, 0xA2);
47   addKaseikyoKey("4", Four_Key, 0x028, 0xA3);
48   addKaseikyoKey("5", Five_Key, 0x028, 0xA4);
49   addKaseikyoKey("6", Six_Key, 0x028, 0xA5);
50   addKaseikyoKey("7", Seven_Key, 0x028, 0xA6);
51   addKaseikyoKey("8", Eight_Key, 0x028, 0xA7);
52   addKaseikyoKey("9", Nine_Key, 0x028, 0xA8);
53   addKaseikyoKey("0", Zero_Key, 0x028, 0xA9);
54   addKaseikyoKey("CH-", ChannelDown_Key, 0x028, 0xB6);
55   addKaseikyoKey("CH+", ChannelUp_Key, 0x028, 0xB7);
56   addKaseikyoKey("ALT_AUD", Audio_Key, 0x028, 0xB8);
57   addKaseikyoKey("INFO", Info_Key, 0x028, 0xB9);
58   addKaseikyoKey("TV/DSS", Input_Key, 0x028, 0xBC);
59   addKaseikyoKey("POWER", Power_Key, 0x028, 0xBD);
60   addKaseikyoKey("REC", Record_Key, 0x028, 0xC2);
61   addKaseikyoKey("ACTION", Select_Key, 0x028, 0xC3);
62   addKaseikyoKey("MENU", Menu_Key, 0x028, 0xC4);
63   addKaseikyoKey("GUIDE", Guide_Key, 0x028, 0xC5);
64   addKaseikyoKey("EXIT", Exit_Key, 0x028, 0xC6);
65   addKaseikyoKey("UP", Up_Key, 0x028, 0xCA);
66   addKaseikyoKey("DOWN", Down_Key, 0x028, 0xCB);
67   addKaseikyoKey("LEFT", Left_Key, 0x028, 0xCD);
68   addKaseikyoKey("RIGHT", Right_Key, 0x028, 0xCE);
69   addKaseikyoKey("FAV", Favorites_Key, 0x028, 0xD0);
70   addKaseikyoKey("R_TUNE", PrevChannel_Key, 0x028, 0xD1);
71   addKaseikyoKey("GUIDE", Guide_Key, 0x028, 0xD3);
72   addKaseikyoKey("LOGO_TUNE", Unmapped_Key, 0x028, 0xD5);
73   addKaseikyoKey("TXT", Teletext_Key, 0x028, 0xDE);
74   addKaseikyoKey("STTL", Unmapped_Key, 0x028, 0xDF);
75
76   addKaseikyoKey("RED", Red_Key, 0x028, 0xEC);
77   addKaseikyoKey("GREEN", Green_Key, 0x028, 0xED);
78   addKaseikyoKey("BLUE", Blue_Key, 0x028, 0xEE);
79   addKaseikyoKey("YELLOW", Yellow_Key, 0x028, 0xEF);
80 }
81
82
83 PanasonicSat1a::PanasonicSat1a(
84   QObject *guiObject,
85   unsigned int index)
86   : PanasonicSat1(guiObject, index)
87 {
88   setKeysetName("Satellite Keyset 1a");
89
90   addKaseikyoKey("EXIT", Exit_Key, 0x028, 0xCF);
91   addKaseikyoKey("CH+", ChannelUp_Key, 0x028, 0xB2);
92   addKaseikyoKey("CH-", ChannelDown_Key, 0x028, 0xB3);
93 }
94
95
96 PanasonicTV1::PanasonicTV1(
97   QObject *guiObject,
98   unsigned int index)
99   : PIRKeysetMetaData(
100       "TV Keyset 1",
101       Panasonic_Make,
102       index)
103 {
104   threadableProtocol = new KaseikyoProtocol(guiObject, index);
105
106 //  setPreData(0x400401, 24);
107   setPreData(0x2002, 16);
108
109   addKaseikyoKey("TV/AV", Input_Key, 0x008, 0x05);
110   addKaseikyoKey("PICTURE", PictureMode_Key, 0x008, 0x06);
111   addKaseikyoKey("SOUND", SoundMode_Key, 0x008, 0x07);
112   addKaseikyoKey("N", Unmapped_Key, 0x008, 0x0C);
113   addKaseikyoKey("S", Unmapped_Key, 0x008, 0x0E);
114   addKaseikyoKey("TIMER", Sleep_Key, 0x008, 0x0F); // "Sleep"
115   addKaseikyoKey("1", One_Key, 0x008, 0x10);
116   addKaseikyoKey("2", Two_Key, 0x008, 0x11);
117   addKaseikyoKey("3", Three_Key, 0x008, 0x12);
118   addKaseikyoKey("4", Four_Key, 0x008, 0x13);
119   addKaseikyoKey("5", Five_Key, 0x008, 0x14);
120   addKaseikyoKey("6", Six_Key, 0x008, 0x15);
121   addKaseikyoKey("7", Seven_Key, 0x008, 0x16);
122   addKaseikyoKey("8", Eight_Key, 0x008, 0x17);
123   addKaseikyoKey("9", Nine_Key, 0x008, 0x18);
124   addKaseikyoKey("0", Zero_Key, 0x008, 0x19);
125   addKaseikyoKey("VOLUME_UP", VolumeUp_Key, 0x008, 0x20);
126   addKaseikyoKey("VOLUME_DOWN", VolumeDown_Key, 0x008, 0x21);
127   addKaseikyoKey("Bass Up", BassUp_Key, 0x008, 0x22);
128   addKaseikyoKey("Bass Down", BassDown_Key, 0x008, 23);
129   addKaseikyoKey("Treble Up", TrebleUp_Key, 0x008, 0x24);
130   addKaseikyoKey("Treble Down", TrebleDown_Key, 0x008, 0x25);
131   addKaseikyoKey("Balance Left", BalanceLeft_Key, 0x008, 0x26);
132   addKaseikyoKey("Balance Right", BalanceRight_Key, 0x008, 0x27);
133   addKaseikyoKey("SURROUND", Surround_Key, 0x008, 0x31);
134   addKaseikyoKey("MUTE", Mute_Key, 0x008, 0x32);
135   addKaseikyoKey("SAP", Audio_Key, 0x008, 0x33); // "Stereo/Mono/Bilingual"
136   addKaseikyoKey("PROG_UP", ChannelUp_Key, 0x008, 0x34);
137   addKaseikyoKey("PROG_DOWN", ChannelDown_Key, 0x008, 0x35);
138   addKaseikyoKey("R-TUNE", Unmapped_Key, 0x008, 0x37);
139   addKaseikyoKey("RECALL", PrevChannel_Key, 0x008, 0x39);
140   addKaseikyoKey("C", Clear_Key, 0x008, 0x3A);
141   addKaseikyoKey("-/--", DoubleDigit_Key, 0x008, 0x3B); // Also Dash_Key?
142   addKaseikyoKey("POWER", Power_Key, 0x008, 0x3D);
143   addKaseikyoKey("On", PowerOn_Key, 0x008, 0x3E);
144   addKaseikyoKey("Off", PowerOff_Key, 0x008, 0x3F);
145   addKaseikyoKey("Color Up", ColorUp_Key, 0x008, 0x40);
146   addKaseikyoKey("Color Down", ColorDown_Key, 0x008, 0x41);
147   addKaseikyoKey("Contrast Up", ContrastUp_Key, 0x008, 0x42);
148   addKaseikyoKey("Contrast Down", ContrastDown_Key, 0x008, 0x43);
149   addKaseikyoKey("Brightness Up", BrightnessUp_Key, 0x008, 0x44);
150   addKaseikyoKey("Brightness Down", BrightnessDown_Key, 0x008, 0x45);
151   addKaseikyoKey("select", Select_Key, 0x008, 0x49); // "OK"
152   addKaseikyoKey("UP", Up_Key, 0x008, 0x4A);
153   addKaseikyoKey("DOWN", Down_Key, 0x008, 0x4B);
154   addKaseikyoKey("LEFT", Left_Key, 0x008, 0x4E);
155   addKaseikyoKey("RIGHT", Right_Key, 0x008, 0x4F);
156   addKaseikyoKey("P_MENU", Unmapped_Key, 0x008, 0x50);
157   addKaseikyoKey("S_MENU", Unmapped_Key, 0x008, 0x51);
158 //  addKaseikyoKey("ACTION", Enter_Key, 0x008, 0x52); // Might be wrong
159   addKaseikyoKey("setup", Menu_Key, 0x008, 0x52); // "ACTION"
160   addKaseikyoKey("pip swap", PIPSwap_Key, 0x008, 0x5E);
161   addKaseikyoKey("pip move", PIPMove_Key, 0x008, 0x67);
162   addKaseikyoKey("RED", Red_Key, 0x008, 0x70);
163   addKaseikyoKey("GREEN", Green_Key, 0x008, 0x71);
164   addKaseikyoKey("YELLOW", Yellow_Key, 0x008, 0x72);
165   addKaseikyoKey("BLUE", Blue_Key, 0x008, 0x73);
166   addKaseikyoKey("MOOD_LIGHT", Unmapped_Key, 0x008, 0xA1);
167   addKaseikyoKey("HELP", Unmapped_Key, 0x008, 0xAC);
168   addKaseikyoKey("GAME", Unmapped_Key, 0x008, 0xBB);
169   addKaseikyoKey("Exit", Unmapped_Key, 0x008, 0xD3);
170   addKaseikyoKey("Return", Unmapped_Key, 0x008, 0xD4); // "R"
171   addKaseikyoKey("STR", Unmapped_Key, 0x008,0xD5);
172   addKaseikyoKey("MULTIWINDOW", Unmapped_Key, 0x008, 0xE6); // "multi pip"
173   addKaseikyoKey("FM/TV", Unmapped_Key, 0x008, 0xEE);
174   addKaseikyoKey("System reset", Unmapped_Key, 0x008, 0xFF);
175
176   addKaseikyoKey("Mix", TeletextAndTV_Key, 0x018, 0x01);
177   addKaseikyoKey("TV/TEXT", Teletext_Key, 0x018, 0x03);
178   addKaseikyoKey("Display_Cancel", Unmapped_Key, 0x018, 0x04);
179   addKaseikyoKey("FP (Favorite Page)", Unmapped_Key, 0x018, 0x05);
180   addKaseikyoKey("INDEX", TeletextIndex_Key, 0x018, 0x08);
181   addKaseikyoKey("HOLD", TeletextHold_Key, 0x018, 0x09);
182   addKaseikyoKey("List Store", TeletextStore_Key, 0x018, 0x0A);
183   addKaseikyoKey("TIMETEXT", TeletextTime_Key, 0x018, 0x0B);
184   addKaseikyoKey("FTB (Full/Top/Bottom)", TeletextSize_Key, 0x018, 0x0C);
185   addKaseikyoKey("REVEAL", TeletextReveal_Key, 0x018, 0x1C);
186   addKaseikyoKey("List/F.Text", Unmapped_Key, 0x018, 0x1D);
187   addKaseikyoKey("Text Reset", Unmapped_Key, 0x018, 0x1E);
188
189   addKaseikyoKey("TV", Unmapped_Key, 0x028, 0x30);
190   addKaseikyoKey("PROG", Program_Key, 0x028, 0x8A);
191   addKaseikyoKey("MENU", Menu_Key, 0x028, 0xC4);
192   addKaseikyoKey("GUIDE", Guide_Key, 0x028, 0xC5);
193   addKaseikyoKey("EXIT", Exit_Key, 0x028, 0xC6);
194
195   addKaseikyoKey("ASPECT", AspectRatio_Key, 0x048, 0xDE);
196   addKaseikyoKey("picture position/size", PIPSize_Key, 0x048, 0xE5);
197
198   addKaseikyoKey("Guide", Unmapped_Key, 0x098, 0x87);
199   addKaseikyoKey("DIRECTREC", Record_Key, 0x098, 0x89);
200   addKaseikyoKey("Exit", Unmapped_Key, 0x098, 0x9A);
201   addKaseikyoKey("Option", Unmapped_Key, 0x098, 0xA7);
202   addKaseikyoKey("SDCard", Unmapped_Key, 0x098, 0xAB);
203   addKaseikyoKey("Favorite", Unmapped_Key, 0x098, 0xAE);
204   addKaseikyoKey("Link", Unmapped_Key, 0x098, 0xB1);
205   addKaseikyoKey("prog-", Unmapped_Key, 0x098, 0xD0);
206
207   // Some media keys, possibly a combo DVD-TV?
208 //  addKaseikyoKey("STOP", Stop_Key, 0x00B, 0x00);
209 //  addKaseikyoKey("PLAY", Play_Key, 0x00B, 0x0A);
210 //  addKaseikyoKey("FORWARD", FastForward_Key, 0x00B, 0x4A);
211 //  addKaseikyoKey("REWIND", Rewind_Key, 0x00B, 0x49);
212 }
213
214
215 PanasonicTV1a::PanasonicTV1a(
216   QObject *guiObject,
217   unsigned int index)
218   : PanasonicTV1(guiObject, index)
219 {
220   setKeysetName("TV Keyset 1a");
221   // Overwrite some of the keys:
222   addKaseikyoKey("OK", Select_Key, 0x008, 0x49);
223   addKaseikyoKey("MENU", Menu_Key, 0x008, 0x06);
224 }
225
226
227 PanasonicTV1b::PanasonicTV1b(
228   QObject *guiObject,
229   unsigned int index)
230   : PanasonicTV1(guiObject, index)
231 {
232   setKeysetName("TV Keyset 1b");
233
234   addControlledDevice(Panasonic_Make, "Viera TX-32LZD80", TV_Device);
235   addControlledDevice(Panasonic_Make, "Viera 42PZ700U", TV_Device);
236
237   addKaseikyoKey("Info", Info_Key, 0x008, 0x39); // "OSD"
238   addKaseikyoKey("OK", Select_Key, 0x008, 0x49);
239   addKaseikyoKey("Menu", Menu_Key, 0x008, 0x52);
240 //  addKaseikyoKey("Exit", Exit_Key, 0x008, 0xD3);
241
242   addKaseikyoKey("Guide", Guide_Key, 0x098, 0x87);
243   addKaseikyoKey("Exit", Exit_Key, 0x098, 0x9A);
244 }
245
246
247 PanasonicVCR1::PanasonicVCR1(
248   QObject *guiObject,
249   unsigned int index)
250   : PIRKeysetMetaData(
251       "VCR Keyset 1",
252       Panasonic_Make,
253       index)
254 {
255   threadableProtocol = new KaseikyoProtocol(guiObject, index);
256
257 //  setPreData(0x400409, 24);
258   setPreData(0x2002, 16);
259
260   addKaseikyoKey("STOP", Stop_Key, 0x009, 0x00);
261   addKaseikyoKey("REWIND", Rewind_Key, 0x009, 0x02);
262   addKaseikyoKey("FORWARD", FastForward_Key, 0x009, 0x03);
263   addKaseikyoKey("PAUSE", Pause_Key, 0x009, 0x06);
264   addKaseikyoKey("REC", Record_Key, 0x009, 0x08);
265   addKaseikyoKey("PLAY", Play_Key, 0x009, 0x0A);
266   addKaseikyoKey("STILL", StepForward_Key, 0x009, 0x0C);  // also "ADV"
267   addKaseikyoKey("SLOW", Slow_Key, 0x009, 0x0F);
268   addKaseikyoKey("1", One_Key, 0x009, 0x10);
269   addKaseikyoKey("2", Two_Key, 0x009, 0x11);
270   addKaseikyoKey("3", Three_Key, 0x009, 0x12);
271   addKaseikyoKey("4", Four_Key, 0x009, 0x13);
272   addKaseikyoKey("5", Five_Key, 0x009, 0x14);
273   addKaseikyoKey("6", Six_Key, 0x009, 0x15);
274   addKaseikyoKey("7", Seven_Key, 0x009, 0x16);
275   addKaseikyoKey("8", Eight_Key, 0x009, 0x17);
276   addKaseikyoKey("9", Nine_Key, 0x009, 0x18);
277   addKaseikyoKey("0", Zero_Key, 0x009, 0x19);
278   addKaseikyoKey("AUDIO", Audio_Key, 0x009, 0x33);
279   addKaseikyoKey("PROGRAMME^", ChannelUp_Key, 0x009, 0x34);
280   addKaseikyoKey("PROGRAMMEv", ChannelDown_Key, 0x009, 0x35);
281   addKaseikyoKey("TV-SAT", Input_Key, 0x009, 0x36);
282   addKaseikyoKey("INFO", Info_Key, 0x009, 0x39);
283   addKaseikyoKey("-/--", DoubleDigit_Key, 0x009, 0x3B);
284   addKaseikyoKey("POWER", Power_Key, 0x009, 0x3D);
285   addKaseikyoKey("INDEX", Unmapped_Key, 0x009, 0x40);
286   addKaseikyoKey("time_search", Unmapped_Key, 0x009, 0x44);
287   addKaseikyoKey("INDEXL", Unmapped_Key, 0x009, 0x49);
288   addKaseikyoKey("INDEXR", Unmapped_Key, 0x009, 0x4A);
289   addKaseikyoKey("mem_rep", Unmapped_Key, 0x009, 0x53);
290   addKaseikyoKey("COUNTER_RESET", Unmapped_Key, 0x009, 0x54);
291   addKaseikyoKey("TAPE_REMAIN", Unmapped_Key, 0x009, 0x55);
292   addKaseikyoKey("CLOCK/COUNTER", Clock_Key, 0x009, 0x56);
293   addKaseikyoKey("+", Unmapped_Key, 0x009, 0x8E);
294   addKaseikyoKey("-", Unmapped_Key, 0x009, 0x8F);
295   addKaseikyoKey("monitor", Unmapped_Key, 0x009, 0x91);
296   addKaseikyoKey("TRACKING_AUTO", AutoTracking_Key, 0x009, 0xB0);
297   addKaseikyoKey("TRACKING_PLUS", TrackingPlus_Key, 0x009, 0xB1);
298   addKaseikyoKey("TRACKING_MINUS", TrackingMinus_Key, 0x009, 0xB2);
299   addKaseikyoKey("TIMERREC", Timer_Key, 0x009, 0xB4);
300   addKaseikyoKey("AV", Unmapped_Key, 0x009, 0xC0);
301   addKaseikyoKey("DIRECT_TV_REC", Unmapped_Key, 0x009, 0xC2);
302   addKaseikyoKey("mesecam", Unmapped_Key, 0x009, 0xC9);
303   addKaseikyoKey("100", PlusOneHundred_Key, 0x009, 0xE5);
304   addKaseikyoKey("sap/hi-fi", Unmapped_Key, 0x009, 0xE6);
305   addKaseikyoKey("repeat", Repeat_Key, 0x009, 0xF0);
306   addKaseikyoKey("memory", Program_Key, 0x009, 0xF1);
307   addKaseikyoKey("sleep", Sleep_Key, 0x009, 0xF2);
308   addKaseikyoKey("rew2", Unmapped_Key, 0x009, 0xF3);
309   addKaseikyoKey("zerostop", Unmapped_Key, 0x009, 0xF5);
310   addKaseikyoKey("REPLAY", Replay_Key, 0x009, 0xF7);
311   addKaseikyoKey("cm-zero", Unmapped_Key, 0x009, 0xF8);
312
313   addKaseikyoKey("PROG/CHECK", Program_Key, 0x019, 0x01);
314   addKaseikyoKey("rotate", Unmapped_Key, 0x019, 0x02);
315   addKaseikyoKey("rotatedown", Unmapped_Key, 0x019, 0x03);
316   addKaseikyoKey("set", Unmapped_Key, 0x019, 0x04);
317   addKaseikyoKey("clear", Unmapped_Key, 0x019, 0x05);
318   addKaseikyoKey("VPS/PDC", Unmapped_Key, 0x019, 0x06);
319   addKaseikyoKey("OffTimer", Sleep_Key, 0x019, 0x08);
320   addKaseikyoKey("CANCEL", Clear_Key, 0x019, 0x09);
321   addKaseikyoKey("SPEED", VHSSpeed_Key, 0x019, 0x0A);
322   addKaseikyoKey("ADD/DELETE", Unmapped_Key, 0x019, 0x31);
323   addKaseikyoKey("RADIO_TUNE", Unmapped_Key, 0x019, 0x38);
324   addKaseikyoKey("MENU", Menu_Key, 0x019, 0x56);
325   addKaseikyoKey("OK", Select_Key, 0x019, 0x58);
326   addKaseikyoKey("SHOWVIEW", Unmapped_Key, 0x019, 0x5D);
327   addKaseikyoKey("DISPLAY", Unmapped_Key, 0x019, 0x5F);
328   addKaseikyoKey("EXIT", Exit_Key, 0x019, 0x66);
329   addKaseikyoKey("CHECK+", Unmapped_Key, 0x019, 0x90);
330   addKaseikyoKey("CHECK-", Unmapped_Key, 0x019, 0x91);
331   addKaseikyoKey("DATE+", Unmapped_Key, 0x019, 0x92);
332   addKaseikyoKey("DATE-", Unmapped_Key, 0x019, 0x93);
333   addKaseikyoKey("ON+", Unmapped_Key, 0x019, 0x94);
334   addKaseikyoKey("ON-", Unmapped_Key, 0x019, 0x95);
335   addKaseikyoKey("OFF+", Unmapped_Key, 0x019, 0x96);
336   addKaseikyoKey("OFF-", Unmapped_Key, 0x019, 0x97);
337   addKaseikyoKey("SEARCH", Unmapped_Key, 0x019, 0x9D);
338   addKaseikyoKey("TAPE", Unmapped_Key, 0x019, 0xE0);
339
340   addKaseikyoKey("STILL_ALBUM", Unmapped_Key, 0x059, 0x23);
341   addKaseikyoKey("PROG_PLAY", Unmapped_Key, 0x059, 0x3A);
342   addKaseikyoKey("I-Timer", Unmapped_Key, 0x059, 0x3F);
343   addKaseikyoKey("TV/TEXT", Unmapped_Key, 0x059, 0x57);
344   addKaseikyoKey("ExtLink", Unmapped_Key, 0x059, 0x5B);
345
346 // These are fishy:
347 //  addKaseikyoKey("RESET_STORE", Unmapped_Key, 0x019, 0x58);
348 }
349
350
351 PanasonicVCR1a::PanasonicVCR1a(
352   QObject *guiObject,
353   unsigned int index)
354   : PanasonicVCR1(guiObject, index)
355 {
356   setKeysetName("VCR Keyset 1a");
357
358   addKaseikyoKey("OSD", Info_Key, 0x009, 0x57);
359   addKaseikyoKey("AV", Input_Key, 0x009, 0xC0);
360   addKaseikyoKey("DISPLAY", Info_Key, 0x019, 0x5F);
361 }
362
363
364 PanasonicVCR1b::PanasonicVCR1b(
365   QObject *guiObject,
366   unsigned int index)
367   : PanasonicVCR1(guiObject, index)
368 {
369   setKeysetName("VCR Keyset 1b");
370
371   addKaseikyoKey("repeat", Repeat_Key, 0x009, 0xF9);
372   addKaseikyoKey("prog", Program_Key, 0x009, 0xFF);
373   addKaseikyoKey("clear", Clear_Key, 0x019, 0x0A);
374 }
375
376
377 PanasonicVCR1c::PanasonicVCR1c(
378   QObject *guiObject,
379   unsigned int index)
380   : PanasonicVCR1(guiObject, index)
381 {
382   setKeysetName("VCR Keyset 1c");
383
384   addKaseikyoKey("rotate", Up_Key, 0x019, 0x02);
385   addKaseikyoKey("rotatedown", Down_Key, 0x019, 0x03);
386   addKaseikyoKey("set", Select_Key, 0x019, 0x04);
387   addKaseikyoKey("clear", Exit_Key, 0x019, 0x05);
388 }
389
390
391 PanasonicDVD1::PanasonicDVD1(
392   QObject *guiObject,
393   unsigned int index)
394   : PIRKeysetMetaData(
395       "DVD Keyset 1",
396       Panasonic_Make,
397       index)
398 {
399   threadableProtocol = new KaseikyoProtocol(guiObject, index);
400
401 //  setPreData(0x40040D00, 32);
402   setPreData(0x2002, 16);
403
404   addKaseikyoKey("STOP", Stop_Key, 0x00B, 0x00);
405   addKaseikyoKey("OPEN/CLOSE", Eject_Key, 0x00B, 0x01);
406 //  addKaseikyoKey("TV-SAT", Input_Key, 0x00B, 0x01);
407   addKaseikyoKey("REW", Rewind_Key, 0x00B, 0x04);
408   addKaseikyoKey("FF", FastForward_Key, 0x00B, 0x05);
409   addKaseikyoKey("PAUSE", Pause_Key, 0x00B, 0x06);
410   addKaseikyoKey("CH_DOWN", ChannelDown_Key, 0x00B, 0x07);
411   addKaseikyoKey("rec", Record_Key, 0x00B, 0x08);
412   addKaseikyoKey("PLAY", Play_Key, 0x00B, 0x0A);
413   addKaseikyoKey("CH_UP", ChannelUp_Key, 0x00B, 0x0F);
414   addKaseikyoKey("1", One_Key, 0x00B, 0x10);
415   addKaseikyoKey("2", Two_Key, 0x00B, 0x11);
416   addKaseikyoKey("3", Three_Key, 0x00B, 0x12);
417   addKaseikyoKey("4", Four_Key, 0x00B, 0x13);
418   addKaseikyoKey("5", Five_Key, 0x00B, 0x14);
419   addKaseikyoKey("6", Six_Key, 0x00B, 0x15);
420   addKaseikyoKey("7", Seven_Key, 0x00B, 0x16);
421   addKaseikyoKey("8", Eight_Key, 0x00B, 0x17);
422   addKaseikyoKey("9", Nine_Key, 0x00B, 0x18);
423   addKaseikyoKey("0", Zero_Key, 0x00B, 0x19);
424   addKaseikyoKey("extlink", Unmapped_Key, 0x00B, 0x23);
425   addKaseikyoKey("AUDIO", Audio_Key, 0x00B, 0x33);
426   addKaseikyoKey("POWER", Power_Key, 0x00B, 0x3D);
427   addKaseikyoKey("erase", Unmapped_Key, 0x00B, 0x44); // "DELETE"
428   addKaseikyoKey("POSITION_MEMORY", Unmapped_Key, 0x00B, 0x46);
429   addKaseikyoKey("A-B_REPEAT", RepeatAB_Key, 0x00B, 0x48);
430   addKaseikyoKey("PREV", Previous_Key, 0x00B, 0x49);
431   addKaseikyoKey("NEXT", Next_Key, 0x00B, 0x04A);
432   addKaseikyoKey("timeslip", Unmapped_Key, 0x00B, 0x4B);
433   addKaseikyoKey("manualskip", Unmapped_Key, 0x00B, 0x4C);
434   addKaseikyoKey("RANDOM", Random_Key, 0x00B, 0x4D);
435   addKaseikyoKey("recmode", Unmapped_Key, 0x00B, 0x51);
436   addKaseikyoKey("functions", Unmapped_Key, 0x00B, 0x57);
437   addKaseikyoKey("createchapter", Unmapped_Key, 0x00B, 0x58);
438   addKaseikyoKey("status", Unmapped_Key, 0x00B, 0x5F);
439   addKaseikyoKey("VOLUMEDOWN", VolumeDown_Key, 0x00B, 0x62);
440   addKaseikyoKey("VOLUMEUP", VolumeUp_Key, 0x00B, 0x63);
441   addKaseikyoKey("i", Unmapped_Key, 0x00B, 0x66);
442   addKaseikyoKey("timer", Timer_Key, 0x00B, 0x78);
443   addKaseikyoKey("progcheck", Unmapped_Key, 0x00B, 0x7C);
444   addKaseikyoKey("showview", Unmapped_Key, 0x00B, 0x7F);
445   addKaseikyoKey("MENU", Menu_Key, 0x00B, 0x80);
446   addKaseikyoKey("RETURN", Exit_Key, 0x00B, 0x81);
447   addKaseikyoKey("ACTION", Select_Key, 0x00B, 0x82);
448   addKaseikyoKey("CANCEL", Clear_Key, 0x00B, 0x83);
449   addKaseikyoKey("UP", Up_Key, 0x00B, 0x85);
450   addKaseikyoKey("DOWN", Down_Key, 0x00B, 0x86);
451   addKaseikyoKey("LEFT", Left_Key, 0x00B, 0x87);
452   addKaseikyoKey("RIGHT", Right_Key, 0x00B, 0x88);
453   addKaseikyoKey("+10", DoubleDigit_Key, 0x00B, 0x89);
454 //  addKaseikyoKey("inputselect", Input_Key, 0x00B, 0x89); // odd!
455   addKaseikyoKey("PROGRAM", Program_Key, 0x00B, 0x8A);
456   addKaseikyoKey("QUICK_REPLAY", Replay_Key, 0x00B, 0x8B);
457   addKaseikyoKey("REPEAT", Repeat_Key, 0x00B, 0x8C);
458   addKaseikyoKey("PLAY_MODE", Unmapped_Key, 0x00B, 0x8D);
459   addKaseikyoKey("ANGLE", Angle_Key, 0x00B, 0x90);
460   addKaseikyoKey("SUBTITLE", Captions_Key, 0x00B, 0x91);
461   addKaseikyoKey("INFO", Info_Key, 0x00B, 0x92);
462   addKaseikyoKey("SETUP", Unmapped_Key, 0x00B, 0x94);
463 //  addKaseikyoKey("R-TUNE", PrevChannel_Key, 0x00B, 0x9B);
464   addKaseikyoKey("TOP_MENU", DiscTitle_Key, 0x00B, 0x9B);
465   addKaseikyoKey("A.SRD", Unmapped_Key, 0x00B, 0x9E);
466   addKaseikyoKey("FL_SELECT", Unmapped_Key, 0x00B, 0xB6);
467   addKaseikyoKey("DISC", Unmapped_Key, 0x00B, 0xB7);
468   addKaseikyoKey("SEQUENTIAL", Unmapped_Key, 0x00B, 0xBF);
469   addKaseikyoKey("CINEMA", Unmapped_Key, 0x00B, 0xC0);
470   addKaseikyoKey("ZOOM", Zoom_Key, 0x00B, 0xC1);
471   addKaseikyoKey("frec", Unmapped_Key, 0x00B, 0xC7);
472   addKaseikyoKey("BASS", EnhancedBass_Key, 0x00B, 0xD4);
473   addKaseikyoKey("D.ENH", Unmapped_Key, 0x00B, 0xD5);
474   addKaseikyoKey("ONETOUCH_MEMORY", Unmapped_Key, 0x00B, 0xD6);
475   addKaseikyoKey("GROUP", Unmapped_Key, 0x00B, 0xE0);
476   addKaseikyoKey("SLEEP", Sleep_Key, 0x00B, 0xEB);
477 }
478
479
480 PanasonicDVD1a::PanasonicDVD1a(
481   QObject *guiObject,
482   unsigned int index)
483   : PanasonicDVD1(guiObject, index)
484 {
485   setKeysetName("DVD Keyset 1a");
486
487   addKaseikyoKey("channel2up", ChannelUp_Key, 0x00B, 0x34);
488   addKaseikyoKey("channel2down", ChannelDown_Key, 0x00B, 0x35);
489   addKaseikyoKey("INPUT_SELECT", Input_Key, 0x00B, 0x50);
490 }
491
492
493 PanasonicAudio1::PanasonicAudio1(
494   QObject *guiObject,
495   unsigned int index)
496   : PIRKeysetMetaData(
497       "Audio Keyset 1",
498       Panasonic_Make,
499       index)
500 {
501   addControlledDevice(Panasonic_Make, "RX-DS25", Audio_Device);
502   addControlledDevice(Panasonic_Make, "RX-e300", Audio_Device);
503
504   threadableProtocol = new KaseikyoProtocol(guiObject, index);
505
506 //  setPreData(0x40040543, 32);
507   setPreData(0x2002, 16);
508
509   addKaseikyoKey("INTRO", Unmapped_Key, 0xC2A, 0x46); // odd
510
511   addKaseikyoKey("stop-clear", Stop_Key, 0xC2A, 0x80);
512   addKaseikyoKey("repeat", Repeat_Key, 0xC2A, 0x81);
513   addKaseikyoKey("random", Random_Key, 0xC2A, 0x82);
514   addKaseikyoKey("eject", Eject_Key, 0xC2A, 0x8E);
515   addKaseikyoKey("prev", Rewind_Key, 0xC2A, 0x84); // "CD_<<"
516   addKaseikyoKey("next", FastForward_Key, 0xC2A, 0x85); // "CD_>>"
517   addKaseikyoKey("CD_PAUSE", Pause_Key, 0xC2A, 0x86);
518   addKaseikyoKey("play-pause", Play_Key, 0xC2A, 0x87);
519   addKaseikyoKey("program", Program_Key, 0xC2A, 0x8B); // "MEMORY"
520   addKaseikyoKey("cancel", Clear_Key, 0xC2A, 0x8D);
521   addKaseikyoKey("display", Info_Key, 0xC2A, 0x8F);
522
523   addKaseikyoKey("1", One_Key, 0xC2A, 0x90);
524   addKaseikyoKey("2", Two_Key, 0xC2A, 0x91);
525   addKaseikyoKey("3", Three_Key, 0xC2A, 0x92);
526   addKaseikyoKey("4", Four_Key, 0xC2A, 0x93);
527   addKaseikyoKey("5", Five_Key, 0xC2A, 0x94);
528   addKaseikyoKey("6", Six_Key, 0xC2A, 0x95);
529   addKaseikyoKey("7", Seven_Key, 0xC2A, 0x96);
530   addKaseikyoKey("8", Eight_Key, 0xC2A, 0x97);
531   addKaseikyoKey("9", Nine_Key, 0xC2A, 0x98);
532   addKaseikyoKey("10/0", Zero_Key, 0xC2A, 0x99);
533   addKaseikyoKey("+10", DoubleDigit_Key, 0xC2A, 0x9F);
534
535   addKaseikyoKey("tape_stop", Unmapped_Key, 0xC2A, 0xA0);
536   addKaseikyoKey("rew", Unmapped_Key, 0xC2A, 0xA2); // "TAPE_<<"
537   addKaseikyoKey("ff", Unmapped_Key, 0xC2A, 0xA3); // "TAPE_>>"
538   addKaseikyoKey("tape_record", Record_Key, 0xC2A, 0xA4);
539   addKaseikyoKey("TAPE_PLAY_REWIND", Unmapped_Key, 0xC2A, 0xA5);
540   addKaseikyoKey("tape_play", Unmapped_Key, 0xC2A, 0xA6); // "TAPE_PLAY_FORWARD"
541   addKaseikyoKey("tape", TapeInput_Key, 0xC2A, 0xAC);
542   addKaseikyoKey("TAPE_DECK", Unmapped_Key, 0xC2A, 0xAD);
543   addKaseikyoKey("rev_mode", Unmapped_Key, 0xC2A, 0xAE); // "TAPE_REV_MODE"
544   addKaseikyoKey("counter_reset", Reset_Key, 0xC2A, 0xAF);
545
546   addKaseikyoKey("vol+", VolumeUp_Key, 0xC2A, 0xB0);
547   addKaseikyoKey("vol-", VolumeDown_Key, 0xC2A, 0xB1);
548   addKaseikyoKey("cd", CDInput_Key, 0xC2A, 0xB6);
549   addKaseikyoKey("tuner-band", TunerBand_Key, 0xC2A, 0xB8);
550   addKaseikyoKey("sleep", Sleep_Key, 0xC2A, 0xBC);
551   addKaseikyoKey("power", Power_Key, 0xC2A, 0xBF);
552
553   addKaseikyoKey("TRACK>>", Unmapped_Key, 0xC2A, 0xD0);
554   addKaseikyoKey("TRACK<<", Unmapped_Key, 0xC2A, 0xD1);
555   addKaseikyoKey("xbs", Unmapped_Key, 0xC2A, 0xD6);
556   addKaseikyoKey("preset_eq", Unmapped_Key, 0xC2A, 0xD9);
557   addKaseikyoKey("virtualizer", Unmapped_Key, 0xC2A, 0xDA); // "S.VIRT"
558
559   addKaseikyoKey("fm-mode", FMMode_Key, 0xC2A, 0xE4); // "st-mono"
560   addKaseikyoKey("TUNER_PRESET_TUNE_UP", NextPreset_Key, 0xC2A, 0xE7);
561   addKaseikyoKey("TUNER_PRESET_TUNE_UP", Next_Key, 0xC2A, 0xE7);
562   addKaseikyoKey("TUNER_PRESET_TUNE_DOWN", PrevPreset_Key, 0xC2A, 0xE8);
563   addKaseikyoKey("TUNER_PRESET_TUNE_DOWN", Previous_Key, 0xC2A, 0xE8);
564   addKaseikyoKey("tuning+", ChannelUp_Key, 0xC2A, 0xE9);
565   addKaseikyoKey("tuning-", ChannelDown_Key, 0xC2A, 0xEA);
566   addKaseikyoKey("AUTOSCAN", Scan_Key, 0xC2A, 0xEC);
567   addKaseikyoKey("bp", Unmapped_Key, 0xC2A, 0xEF); // "TUNER_BP", beat-proof?
568
569   addKaseikyoKey("panelopen", Unmapped_Key, 0xC2A, 0xF4);  // "TOP_PANEL_OPEN"
570   addKaseikyoKey("panelclose", Unmapped_Key, 0xC2A, 0xF5); // "TOP_PANEL_CLOSE"
571 }
572