Added Hildon Banners, bugfixes, new keysets
[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   addControlledDevice(Panasonic_Make, "Viera 42PZ8ES", TV_Device);
237
238   addKaseikyoKey("Info", Info_Key, 0x008, 0x39); // "OSD"
239   addKaseikyoKey("OK", Select_Key, 0x008, 0x49);
240   addKaseikyoKey("Menu", Menu_Key, 0x008, 0x52);
241 //  addKaseikyoKey("Exit", Exit_Key, 0x008, 0xD3);
242
243   addKaseikyoKey("Guide", Guide_Key, 0x098, 0x87);
244   addKaseikyoKey("Exit", Exit_Key, 0x098, 0x9A);
245 }
246
247
248 PanasonicVCR1::PanasonicVCR1(
249   QObject *guiObject,
250   unsigned int index)
251   : PIRKeysetMetaData(
252       "VCR Keyset 1",
253       Panasonic_Make,
254       index)
255 {
256   threadableProtocol = new KaseikyoProtocol(guiObject, index);
257
258 //  setPreData(0x400409, 24);
259   setPreData(0x2002, 16);
260
261   addKaseikyoKey("STOP", Stop_Key, 0x009, 0x00);
262   addKaseikyoKey("REWIND", Rewind_Key, 0x009, 0x02);
263   addKaseikyoKey("FORWARD", FastForward_Key, 0x009, 0x03);
264   addKaseikyoKey("PAUSE", Pause_Key, 0x009, 0x06);
265   addKaseikyoKey("REC", Record_Key, 0x009, 0x08);
266   addKaseikyoKey("PLAY", Play_Key, 0x009, 0x0A);
267   addKaseikyoKey("STILL", StepForward_Key, 0x009, 0x0C);  // also "ADV"
268   addKaseikyoKey("SLOW", Slow_Key, 0x009, 0x0F);
269   addKaseikyoKey("1", One_Key, 0x009, 0x10);
270   addKaseikyoKey("2", Two_Key, 0x009, 0x11);
271   addKaseikyoKey("3", Three_Key, 0x009, 0x12);
272   addKaseikyoKey("4", Four_Key, 0x009, 0x13);
273   addKaseikyoKey("5", Five_Key, 0x009, 0x14);
274   addKaseikyoKey("6", Six_Key, 0x009, 0x15);
275   addKaseikyoKey("7", Seven_Key, 0x009, 0x16);
276   addKaseikyoKey("8", Eight_Key, 0x009, 0x17);
277   addKaseikyoKey("9", Nine_Key, 0x009, 0x18);
278   addKaseikyoKey("0", Zero_Key, 0x009, 0x19);
279   addKaseikyoKey("AUDIO", Audio_Key, 0x009, 0x33);
280   addKaseikyoKey("PROGRAMME^", ChannelUp_Key, 0x009, 0x34);
281   addKaseikyoKey("PROGRAMMEv", ChannelDown_Key, 0x009, 0x35);
282   addKaseikyoKey("TV-SAT", Input_Key, 0x009, 0x36);
283   addKaseikyoKey("INFO", Info_Key, 0x009, 0x39);
284   addKaseikyoKey("-/--", DoubleDigit_Key, 0x009, 0x3B);
285   addKaseikyoKey("POWER", Power_Key, 0x009, 0x3D);
286   addKaseikyoKey("INDEX", Unmapped_Key, 0x009, 0x40);
287   addKaseikyoKey("time_search", Unmapped_Key, 0x009, 0x44);
288   addKaseikyoKey("INDEXL", Unmapped_Key, 0x009, 0x49);
289   addKaseikyoKey("INDEXR", Unmapped_Key, 0x009, 0x4A);
290   addKaseikyoKey("mem_rep", Unmapped_Key, 0x009, 0x53);
291   addKaseikyoKey("COUNTER_RESET", Unmapped_Key, 0x009, 0x54);
292   addKaseikyoKey("TAPE_REMAIN", Unmapped_Key, 0x009, 0x55);
293   addKaseikyoKey("CLOCK/COUNTER", Clock_Key, 0x009, 0x56);
294   addKaseikyoKey("+", Unmapped_Key, 0x009, 0x8E);
295   addKaseikyoKey("-", Unmapped_Key, 0x009, 0x8F);
296   addKaseikyoKey("monitor", Unmapped_Key, 0x009, 0x91);
297   addKaseikyoKey("TRACKING_AUTO", AutoTracking_Key, 0x009, 0xB0);
298   addKaseikyoKey("TRACKING_PLUS", TrackingPlus_Key, 0x009, 0xB1);
299   addKaseikyoKey("TRACKING_MINUS", TrackingMinus_Key, 0x009, 0xB2);
300   addKaseikyoKey("TIMERREC", Timer_Key, 0x009, 0xB4);
301   addKaseikyoKey("AV", Unmapped_Key, 0x009, 0xC0);
302   addKaseikyoKey("DIRECT_TV_REC", Unmapped_Key, 0x009, 0xC2);
303   addKaseikyoKey("mesecam", Unmapped_Key, 0x009, 0xC9);
304   addKaseikyoKey("100", PlusOneHundred_Key, 0x009, 0xE5);
305   addKaseikyoKey("sap/hi-fi", Unmapped_Key, 0x009, 0xE6);
306   addKaseikyoKey("repeat", Repeat_Key, 0x009, 0xF0);
307   addKaseikyoKey("memory", Program_Key, 0x009, 0xF1);
308   addKaseikyoKey("sleep", Sleep_Key, 0x009, 0xF2);
309   addKaseikyoKey("rew2", Unmapped_Key, 0x009, 0xF3);
310   addKaseikyoKey("zerostop", Unmapped_Key, 0x009, 0xF5);
311   addKaseikyoKey("REPLAY", Replay_Key, 0x009, 0xF7);
312   addKaseikyoKey("cm-zero", Unmapped_Key, 0x009, 0xF8);
313
314   addKaseikyoKey("PROG/CHECK", Program_Key, 0x019, 0x01);
315   addKaseikyoKey("rotate", Unmapped_Key, 0x019, 0x02);
316   addKaseikyoKey("rotatedown", Unmapped_Key, 0x019, 0x03);
317   addKaseikyoKey("set", Unmapped_Key, 0x019, 0x04);
318   addKaseikyoKey("clear", Unmapped_Key, 0x019, 0x05);
319   addKaseikyoKey("VPS/PDC", Unmapped_Key, 0x019, 0x06);
320   addKaseikyoKey("OffTimer", Sleep_Key, 0x019, 0x08);
321   addKaseikyoKey("CANCEL", Clear_Key, 0x019, 0x09);
322   addKaseikyoKey("SPEED", VHSSpeed_Key, 0x019, 0x0A);
323   addKaseikyoKey("ADD/DELETE", Unmapped_Key, 0x019, 0x31);
324   addKaseikyoKey("RADIO_TUNE", Unmapped_Key, 0x019, 0x38);
325   addKaseikyoKey("MENU", Menu_Key, 0x019, 0x56);
326   addKaseikyoKey("OK", Select_Key, 0x019, 0x58);
327   addKaseikyoKey("SHOWVIEW", Unmapped_Key, 0x019, 0x5D);
328   addKaseikyoKey("DISPLAY", Unmapped_Key, 0x019, 0x5F);
329   addKaseikyoKey("EXIT", Exit_Key, 0x019, 0x66);
330   addKaseikyoKey("CHECK+", Unmapped_Key, 0x019, 0x90);
331   addKaseikyoKey("CHECK-", Unmapped_Key, 0x019, 0x91);
332   addKaseikyoKey("DATE+", Unmapped_Key, 0x019, 0x92);
333   addKaseikyoKey("DATE-", Unmapped_Key, 0x019, 0x93);
334   addKaseikyoKey("ON+", Unmapped_Key, 0x019, 0x94);
335   addKaseikyoKey("ON-", Unmapped_Key, 0x019, 0x95);
336   addKaseikyoKey("OFF+", Unmapped_Key, 0x019, 0x96);
337   addKaseikyoKey("OFF-", Unmapped_Key, 0x019, 0x97);
338   addKaseikyoKey("SEARCH", Unmapped_Key, 0x019, 0x9D);
339   addKaseikyoKey("TAPE", Unmapped_Key, 0x019, 0xE0);
340
341   addKaseikyoKey("STILL_ALBUM", Unmapped_Key, 0x059, 0x23);
342   addKaseikyoKey("PROG_PLAY", Unmapped_Key, 0x059, 0x3A);
343   addKaseikyoKey("I-Timer", Unmapped_Key, 0x059, 0x3F);
344   addKaseikyoKey("TV/TEXT", Unmapped_Key, 0x059, 0x57);
345   addKaseikyoKey("ExtLink", Unmapped_Key, 0x059, 0x5B);
346
347 // These are fishy:
348 //  addKaseikyoKey("RESET_STORE", Unmapped_Key, 0x019, 0x58);
349 }
350
351
352 PanasonicVCR1a::PanasonicVCR1a(
353   QObject *guiObject,
354   unsigned int index)
355   : PanasonicVCR1(guiObject, index)
356 {
357   setKeysetName("VCR Keyset 1a");
358
359   addKaseikyoKey("OSD", Info_Key, 0x009, 0x57);
360   addKaseikyoKey("AV", Input_Key, 0x009, 0xC0);
361   addKaseikyoKey("DISPLAY", Info_Key, 0x019, 0x5F);
362 }
363
364
365 PanasonicVCR1b::PanasonicVCR1b(
366   QObject *guiObject,
367   unsigned int index)
368   : PanasonicVCR1(guiObject, index)
369 {
370   setKeysetName("VCR Keyset 1b");
371
372   addKaseikyoKey("repeat", Repeat_Key, 0x009, 0xF9);
373   addKaseikyoKey("prog", Program_Key, 0x009, 0xFF);
374   addKaseikyoKey("clear", Clear_Key, 0x019, 0x0A);
375 }
376
377
378 PanasonicVCR1c::PanasonicVCR1c(
379   QObject *guiObject,
380   unsigned int index)
381   : PanasonicVCR1(guiObject, index)
382 {
383   setKeysetName("VCR Keyset 1c");
384
385   addKaseikyoKey("rotate", Up_Key, 0x019, 0x02);
386   addKaseikyoKey("rotatedown", Down_Key, 0x019, 0x03);
387   addKaseikyoKey("set", Select_Key, 0x019, 0x04);
388   addKaseikyoKey("clear", Exit_Key, 0x019, 0x05);
389 }
390
391
392 PanasonicDVD1::PanasonicDVD1(
393   QObject *guiObject,
394   unsigned int index)
395   : PIRKeysetMetaData(
396       "DVD Keyset 1",
397       Panasonic_Make,
398       index)
399 {
400   threadableProtocol = new KaseikyoProtocol(guiObject, index);
401
402 //  setPreData(0x40040D00, 32);
403   setPreData(0x2002, 16);
404
405   addKaseikyoKey("STOP", Stop_Key, 0x00B, 0x00);
406   addKaseikyoKey("OPEN/CLOSE", Eject_Key, 0x00B, 0x01);
407 //  addKaseikyoKey("TV-SAT", Input_Key, 0x00B, 0x01);
408   addKaseikyoKey("REW", Rewind_Key, 0x00B, 0x04);
409   addKaseikyoKey("FF", FastForward_Key, 0x00B, 0x05);
410   addKaseikyoKey("PAUSE", Pause_Key, 0x00B, 0x06);
411   addKaseikyoKey("CH_DOWN", ChannelDown_Key, 0x00B, 0x07);
412   addKaseikyoKey("rec", Record_Key, 0x00B, 0x08);
413   addKaseikyoKey("PLAY", Play_Key, 0x00B, 0x0A);
414   addKaseikyoKey("CH_UP", ChannelUp_Key, 0x00B, 0x0F);
415   addKaseikyoKey("1", One_Key, 0x00B, 0x10);
416   addKaseikyoKey("2", Two_Key, 0x00B, 0x11);
417   addKaseikyoKey("3", Three_Key, 0x00B, 0x12);
418   addKaseikyoKey("4", Four_Key, 0x00B, 0x13);
419   addKaseikyoKey("5", Five_Key, 0x00B, 0x14);
420   addKaseikyoKey("6", Six_Key, 0x00B, 0x15);
421   addKaseikyoKey("7", Seven_Key, 0x00B, 0x16);
422   addKaseikyoKey("8", Eight_Key, 0x00B, 0x17);
423   addKaseikyoKey("9", Nine_Key, 0x00B, 0x18);
424   addKaseikyoKey("0", Zero_Key, 0x00B, 0x19);
425   addKaseikyoKey("extlink", Unmapped_Key, 0x00B, 0x23);
426   addKaseikyoKey("AUDIO", Audio_Key, 0x00B, 0x33);
427   addKaseikyoKey("POWER", Power_Key, 0x00B, 0x3D);
428   addKaseikyoKey("erase", Unmapped_Key, 0x00B, 0x44); // "DELETE"
429   addKaseikyoKey("POSITION_MEMORY", Unmapped_Key, 0x00B, 0x46);
430   addKaseikyoKey("A-B_REPEAT", RepeatAB_Key, 0x00B, 0x48);
431   addKaseikyoKey("PREV", Previous_Key, 0x00B, 0x49);
432   addKaseikyoKey("NEXT", Next_Key, 0x00B, 0x04A);
433   addKaseikyoKey("timeslip", Unmapped_Key, 0x00B, 0x4B);
434   addKaseikyoKey("manualskip", Unmapped_Key, 0x00B, 0x4C);
435   addKaseikyoKey("RANDOM", Random_Key, 0x00B, 0x4D);
436   addKaseikyoKey("recmode", Unmapped_Key, 0x00B, 0x51);
437   addKaseikyoKey("functions", Unmapped_Key, 0x00B, 0x57);
438   addKaseikyoKey("createchapter", Unmapped_Key, 0x00B, 0x58);
439   addKaseikyoKey("status", Unmapped_Key, 0x00B, 0x5F);
440   addKaseikyoKey("VOLUMEDOWN", VolumeDown_Key, 0x00B, 0x62);
441   addKaseikyoKey("VOLUMEUP", VolumeUp_Key, 0x00B, 0x63);
442   addKaseikyoKey("i", Unmapped_Key, 0x00B, 0x66);
443   addKaseikyoKey("timer", Timer_Key, 0x00B, 0x78);
444   addKaseikyoKey("progcheck", Unmapped_Key, 0x00B, 0x7C);
445   addKaseikyoKey("showview", Unmapped_Key, 0x00B, 0x7F);
446   addKaseikyoKey("MENU", Menu_Key, 0x00B, 0x80);
447   addKaseikyoKey("RETURN", Exit_Key, 0x00B, 0x81);
448   addKaseikyoKey("ACTION", Select_Key, 0x00B, 0x82);
449   addKaseikyoKey("CANCEL", Clear_Key, 0x00B, 0x83);
450   addKaseikyoKey("UP", Up_Key, 0x00B, 0x85);
451   addKaseikyoKey("DOWN", Down_Key, 0x00B, 0x86);
452   addKaseikyoKey("LEFT", Left_Key, 0x00B, 0x87);
453   addKaseikyoKey("RIGHT", Right_Key, 0x00B, 0x88);
454   addKaseikyoKey("+10", DoubleDigit_Key, 0x00B, 0x89);
455 //  addKaseikyoKey("inputselect", Input_Key, 0x00B, 0x89); // odd!
456   addKaseikyoKey("PROGRAM", Program_Key, 0x00B, 0x8A);
457   addKaseikyoKey("QUICK_REPLAY", Replay_Key, 0x00B, 0x8B);
458   addKaseikyoKey("REPEAT", Repeat_Key, 0x00B, 0x8C);
459   addKaseikyoKey("PLAY_MODE", Unmapped_Key, 0x00B, 0x8D);
460   addKaseikyoKey("ANGLE", Angle_Key, 0x00B, 0x90);
461   addKaseikyoKey("SUBTITLE", Captions_Key, 0x00B, 0x91);
462   addKaseikyoKey("INFO", Info_Key, 0x00B, 0x92);
463   addKaseikyoKey("SETUP", Unmapped_Key, 0x00B, 0x94);
464 //  addKaseikyoKey("R-TUNE", PrevChannel_Key, 0x00B, 0x9B);
465   addKaseikyoKey("TOP_MENU", DiscTitle_Key, 0x00B, 0x9B);
466   addKaseikyoKey("A.SRD", Unmapped_Key, 0x00B, 0x9E);
467   addKaseikyoKey("FL_SELECT", Unmapped_Key, 0x00B, 0xB6);
468   addKaseikyoKey("DISC", Unmapped_Key, 0x00B, 0xB7);
469   addKaseikyoKey("SEQUENTIAL", Unmapped_Key, 0x00B, 0xBF);
470   addKaseikyoKey("CINEMA", Unmapped_Key, 0x00B, 0xC0);
471   addKaseikyoKey("ZOOM", Zoom_Key, 0x00B, 0xC1);
472   addKaseikyoKey("frec", Unmapped_Key, 0x00B, 0xC7);
473   addKaseikyoKey("BASS", EnhancedBass_Key, 0x00B, 0xD4);
474   addKaseikyoKey("D.ENH", Unmapped_Key, 0x00B, 0xD5);
475   addKaseikyoKey("ONETOUCH_MEMORY", Unmapped_Key, 0x00B, 0xD6);
476   addKaseikyoKey("GROUP", Unmapped_Key, 0x00B, 0xE0);
477   addKaseikyoKey("SLEEP", Sleep_Key, 0x00B, 0xEB);
478 }
479
480
481 PanasonicDVD1a::PanasonicDVD1a(
482   QObject *guiObject,
483   unsigned int index)
484   : PanasonicDVD1(guiObject, index)
485 {
486   setKeysetName("DVD Keyset 1a");
487
488   addKaseikyoKey("channel2up", ChannelUp_Key, 0x00B, 0x34);
489   addKaseikyoKey("channel2down", ChannelDown_Key, 0x00B, 0x35);
490   addKaseikyoKey("INPUT_SELECT", Input_Key, 0x00B, 0x50);
491 }
492
493
494 PanasonicAudio1::PanasonicAudio1(
495   QObject *guiObject,
496   unsigned int index)
497   : PIRKeysetMetaData(
498       "Audio Keyset 1",
499       Panasonic_Make,
500       index)
501 {
502   addControlledDevice(Panasonic_Make, "RX-DS25", Audio_Device);
503   addControlledDevice(Panasonic_Make, "RX-e300", Audio_Device);
504
505   threadableProtocol = new KaseikyoProtocol(guiObject, index);
506
507 //  setPreData(0x40040543, 32);
508   setPreData(0x2002, 16);
509
510   addKaseikyoKey("INTRO", Unmapped_Key, 0xC2A, 0x46); // odd
511
512   addKaseikyoKey("stop-clear", Stop_Key, 0xC2A, 0x80);
513   addKaseikyoKey("repeat", Repeat_Key, 0xC2A, 0x81);
514   addKaseikyoKey("random", Random_Key, 0xC2A, 0x82);
515   addKaseikyoKey("eject", Eject_Key, 0xC2A, 0x8E);
516   addKaseikyoKey("prev", Rewind_Key, 0xC2A, 0x84); // "CD_<<"
517   addKaseikyoKey("next", FastForward_Key, 0xC2A, 0x85); // "CD_>>"
518   addKaseikyoKey("CD_PAUSE", Pause_Key, 0xC2A, 0x86);
519   addKaseikyoKey("play-pause", Play_Key, 0xC2A, 0x87);
520   addKaseikyoKey("program", Program_Key, 0xC2A, 0x8B); // "MEMORY"
521   addKaseikyoKey("cancel", Clear_Key, 0xC2A, 0x8D);
522   addKaseikyoKey("display", Info_Key, 0xC2A, 0x8F);
523
524   addKaseikyoKey("1", One_Key, 0xC2A, 0x90);
525   addKaseikyoKey("2", Two_Key, 0xC2A, 0x91);
526   addKaseikyoKey("3", Three_Key, 0xC2A, 0x92);
527   addKaseikyoKey("4", Four_Key, 0xC2A, 0x93);
528   addKaseikyoKey("5", Five_Key, 0xC2A, 0x94);
529   addKaseikyoKey("6", Six_Key, 0xC2A, 0x95);
530   addKaseikyoKey("7", Seven_Key, 0xC2A, 0x96);
531   addKaseikyoKey("8", Eight_Key, 0xC2A, 0x97);
532   addKaseikyoKey("9", Nine_Key, 0xC2A, 0x98);
533   addKaseikyoKey("10/0", Zero_Key, 0xC2A, 0x99);
534   addKaseikyoKey("+10", DoubleDigit_Key, 0xC2A, 0x9F);
535
536   addKaseikyoKey("tape_stop", Unmapped_Key, 0xC2A, 0xA0);
537   addKaseikyoKey("rew", Unmapped_Key, 0xC2A, 0xA2); // "TAPE_<<"
538   addKaseikyoKey("ff", Unmapped_Key, 0xC2A, 0xA3); // "TAPE_>>"
539   addKaseikyoKey("tape_record", Record_Key, 0xC2A, 0xA4);
540   addKaseikyoKey("TAPE_PLAY_REWIND", Unmapped_Key, 0xC2A, 0xA5);
541   addKaseikyoKey("tape_play", Unmapped_Key, 0xC2A, 0xA6); // "TAPE_PLAY_FORWARD"
542   addKaseikyoKey("tape", TapeInput_Key, 0xC2A, 0xAC);
543   addKaseikyoKey("TAPE_DECK", Unmapped_Key, 0xC2A, 0xAD);
544   addKaseikyoKey("rev_mode", Unmapped_Key, 0xC2A, 0xAE); // "TAPE_REV_MODE"
545   addKaseikyoKey("counter_reset", Reset_Key, 0xC2A, 0xAF);
546
547   addKaseikyoKey("vol+", VolumeUp_Key, 0xC2A, 0xB0);
548   addKaseikyoKey("vol-", VolumeDown_Key, 0xC2A, 0xB1);
549   addKaseikyoKey("cd", CDInput_Key, 0xC2A, 0xB6);
550   addKaseikyoKey("tuner-band", TunerBand_Key, 0xC2A, 0xB8);
551   addKaseikyoKey("sleep", Sleep_Key, 0xC2A, 0xBC);
552   addKaseikyoKey("power", Power_Key, 0xC2A, 0xBF);
553
554   addKaseikyoKey("TRACK>>", Unmapped_Key, 0xC2A, 0xD0);
555   addKaseikyoKey("TRACK<<", Unmapped_Key, 0xC2A, 0xD1);
556   addKaseikyoKey("xbs", Unmapped_Key, 0xC2A, 0xD6);
557   addKaseikyoKey("preset_eq", Unmapped_Key, 0xC2A, 0xD9);
558   addKaseikyoKey("virtualizer", Unmapped_Key, 0xC2A, 0xDA); // "S.VIRT"
559
560   addKaseikyoKey("fm-mode", FMMode_Key, 0xC2A, 0xE4); // "st-mono"
561   addKaseikyoKey("TUNER_PRESET_TUNE_UP", NextPreset_Key, 0xC2A, 0xE7);
562   addKaseikyoKey("TUNER_PRESET_TUNE_UP", Next_Key, 0xC2A, 0xE7);
563   addKaseikyoKey("TUNER_PRESET_TUNE_DOWN", PrevPreset_Key, 0xC2A, 0xE8);
564   addKaseikyoKey("TUNER_PRESET_TUNE_DOWN", Previous_Key, 0xC2A, 0xE8);
565   addKaseikyoKey("tuning+", ChannelUp_Key, 0xC2A, 0xE9);
566   addKaseikyoKey("tuning-", ChannelDown_Key, 0xC2A, 0xEA);
567   addKaseikyoKey("AUTOSCAN", Scan_Key, 0xC2A, 0xEC);
568   addKaseikyoKey("bp", Unmapped_Key, 0xC2A, 0xEF); // "TUNER_BP", beat-proof?
569
570   addKaseikyoKey("panelopen", Unmapped_Key, 0xC2A, 0xF4);  // "TOP_PANEL_OPEN"
571   addKaseikyoKey("panelclose", Unmapped_Key, 0xC2A, 0xF5); // "TOP_PANEL_CLOSE"
572 }
573