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