Interim Update
[pierogi] / keysets / daewoo.cpp
1 #include "daewoo.h"
2 #include "protocols/rc5protocol.h"
3 #include "protocols/daewooprotocol.h"
4 #include "protocols/necprotocol.h"
5
6 DaewooTV1::DaewooTV1(
7   unsigned int index)
8   : PIRKeysetMetaData(
9       "TV Keyset 1",
10       Daewoo_Make,
11       index)
12 {
13   addControlledDevice(Daewoo_Make, "21T5T", TV_Device);
14 }
15
16
17 void DaewooTV1::populateProtocol(
18   QObject *guiObject)
19 {
20   if (threadableProtocol)
21   {
22     // If the pointer is not null, the keyset must already be populated.
23     return;
24   }
25
26   threadableProtocol = new RC5Protocol(guiObject, index);
27
28   addKey("MENU", Menu_Key, 0x0012, 13);
29   addKey("OK", Select_Key, 0x0017, 13); // "enter"
30
31   addKey("0", Zero_Key, 0x1000, 13);
32   addKey("1", One_Key, 0x1001, 13);
33   addKey("2", Two_Key, 0x1002, 13);
34   addKey("3", Three_Key, 0x1003, 13);
35   addKey("4", Four_Key, 0x1004, 13);
36   addKey("5", Five_Key, 0x1005, 13);
37   addKey("6", Six_Key, 0x1006, 13);
38   addKey("7", Seven_Key, 0x1007, 13);
39   addKey("8", Eight_Key, 0x1008, 13);
40   addKey("9", Nine_Key, 0x1009, 13);
41   addKey("POWER", Power_Key, 0x100C, 13);
42   addKey("MUTE", Mute_Key, 0x100D, 13);
43   addKey("normal", Unmapped_Key, 0x100E, 13);
44   addKey("RECALL", PrevChannel_Key, 0x100F, 13);
45
46   addKey("VOL+", VolumeUp_Key, 0x1010, 13); // "Right"
47   addKey("VOL+", Right_Key, 0x1010, 13); // "Right"
48   addKey("VOL-", VolumeDown_Key, 0x1011, 13); // "Left"
49   addKey("VOL-", Left_Key, 0x1011, 13); // "Left"
50
51   addKey("PR+", ChannelUp_Key, 0x1020, 13); // "Up"
52   addKey("PR+", Up_Key, 0x1020, 13); // "Up"
53   addKey("PR-", ChannelDown_Key, 0x1021, 13); // "Down"
54   addKey("PR-", Down_Key, 0x1021, 13); // "Down"
55   addKey("system", Guide_Key, 0x1022, 13); // Not quite a guide
56   addKey("i-ii", Audio_Key, 0x1023, 13);
57   addKey("two_semicircles", Unmapped_Key, 0x1024, 13);
58   addKey("SLEEP", Sleep_Key, 0x1026, 13);
59   addKey("time", Unmapped_Key, 0x102A, 13);
60   addKey("SKIP", Unmapped_Key, 0x102D, 13); // woofer
61
62   addKey("yellow", Yellow_Key, 0x1032, 13); // "TIME"
63   addKey("blue", Blue_Key, 0x1034, 13); // "MODE"
64   addKey("videotext_info", Unmapped_Key, 0x1035, 13);
65   addKey("green", Green_Key, 0x1036, 13); // "MOVE"
66   addKey("red", Red_Key, 0x1037, 13); // "DEL"
67   addKey("scartmode", AuxInput_Key, 0x1038, 13); // "IN", "Src"
68   addKey("Teletext", Teletext_Key, 0x103C, 13); // "PAGE", "videotextmode"
69   addKey("tvmode", Input_Key, 0x103F, 13);
70 }
71
72
73 DaewooTV2::DaewooTV2(
74   unsigned int index)
75   : PIRKeysetMetaData(
76       "TV Keyset 1",
77       Daewoo_Make,
78       index)
79 {
80   addControlledDevice(Daewoo_Make, "DMQ-2141", TV_Device);
81 }
82
83
84 void DaewooTV2::populateProtocol(
85   QObject *guiObject)
86 {
87   if (threadableProtocol)
88   {
89     // If the pointer is not null, the keyset must already be populated.
90     return;
91   }
92
93   threadableProtocol = new DaewooProtocol(guiObject, index);
94
95   setPreData(0x14, 8);
96
97   addKey("0", Zero_Key, 0x00, 8);
98   addKey("1", One_Key, 0x01, 8);
99   addKey("2", Two_Key, 0x02, 8);
100   addKey("3", Three_Key, 0x03, 8);
101   addKey("4", Four_Key, 0x04, 8);
102   addKey("5", Five_Key, 0x05, 8);
103   addKey("6", Six_Key, 0x06, 8);
104   addKey("7", Seven_Key, 0x07, 8);
105   addKey("8", Eight_Key, 0x08, 8);
106   addKey("9", Nine_Key, 0x09, 8);
107   addKey("1-", Unmapped_Key, 0x0A, 8); // sort of double digit here...
108   addKey("2-", Unmapped_Key, 0x0B, 8);
109   addKey("AFT/Band", Unmapped_Key, 0x0C, 8); // Tuner Band key?
110   addKey("Preset", Unmapped_Key, 0x0D, 8);
111   addKey("Auto_Search+", Unmapped_Key, 0x0E, 8);
112   addKey("Fine_Tuning+", Unmapped_Key, 0x0F, 8);
113   addKey("Channel_Call", Unmapped_Key, 0x10, 8);
114   addKey("On_Timer", Timer_Key, 0x11, 8);
115   addKey("Auto_Search-", Unmapped_Key, 0x12, 8);
116   addKey("Fine_Tuning-", Unmapped_Key, 0x13, 8);
117   addKey("Hour", Unmapped_Key, 0x14, 8);
118   addKey("Minute", Unmapped_Key, 0x15, 8);
119   addKey("On_Timer_Enable", Unmapped_Key, 0x16, 8);
120   addKey("Sleep", Sleep_Key, 0x17, 8);
121   addKey("Volume+", VolumeUp_Key, 0x18, 8);
122   addKey("Up", Up_Key, 0x19, 8);
123   addKey("Select", Select_Key, 0x1A, 8);
124   addKey("Mute", Mute_Key, 0x1B, 8);
125   addKey("Volume-", VolumeDown_Key, 0x1C, 8);
126   addKey("Down", Down_Key, 0x1D, 8);
127   addKey("TV/VCR", Input_Key, 0x1E, 8);
128   addKey("Standby", Power_Key, 0x1F, 8);
129   addKey("3-", Unmapped_Key, 0x28, 8);
130   addKey("4-", Unmapped_Key, 0x29, 8);
131   addKey("Channel+", ChannelUp_Key, 0x30, 8);
132   addKey("Channel-", ChannelDown_Key, 0x34, 8);
133   addKey("Skip", Unmapped_Key, 0x38, 8);
134   addKey("System", Menu_Key, 0x39, 8);
135   addKey("Q.V.", Unmapped_Key, 0x3C, 8);
136 }
137
138
139 DaewooTV3::DaewooTV3(
140   unsigned int index)
141   : PIRKeysetMetaData(
142       "TV Keyset 3",
143       Daewoo_Make,
144       index)
145 {
146 }
147
148
149 void DaewooTV3::populateProtocol(
150   QObject *guiObject)
151 {
152   if (threadableProtocol)
153   {
154     // If the pointer is not null, the keyset must already be populated.
155     return;
156   }
157
158   threadableProtocol = new NECProtocol(guiObject, index, false, true);
159
160   setPreData(0x14, 8);
161
162   addKey("0/10", Zero_Key, 0x00, 8);
163   addKey("1", One_Key, 0x01, 8);
164   addKey("2", Two_Key, 0x02, 8);
165   addKey("3", Three_Key, 0x03, 8);
166   addKey("4", Four_Key, 0x04, 8);
167   addKey("5", Five_Key, 0x05, 8);
168   addKey("6", Six_Key, 0x06, 8);
169   addKey("7", Seven_Key, 0x07, 8);
170   addKey("8", Eight_Key, 0x08, 8);
171   addKey("9", Nine_Key, 0x09, 8);
172   addKey("SOUND MODE", SoundMode_Key, 0x0A, 8);
173   addKey("100", PlusOneHundred_Key, 0x0B, 8);
174   addKey("TV/CATV", Input_Key, 0x0C, 8);
175   addKey("SLEEP", Sleep_Key, 0x0D, 8);
176   addKey("RECALL", Unmapped_Key, 0x11, 8);
177   addKey("MUTE", Mute_Key, 0x12, 8);
178   addKey("VOL UP", VolumeUp_Key, 0x13, 8);
179   addKey("VOL DOWN", VolumeDown_Key, 0x14, 8);
180   addKey("POWER", Power_Key, 0x15, 8);
181   addKey("AV/COMP", AuxInput_Key, 0x16, 8);
182   addKey("CH UP", ChannelUp_Key, 0x17, 8);
183   addKey("CH DOWN", ChannelDown_Key, 0x18, 8);
184   addKey("SOUND EFFECT", Unmapped_Key, 0x1B, 8);
185   addKey("PREVIOUS CH", PrevChannel_Key, 0x20, 8);
186   addKey("MENU", Menu_Key, 0x22, 8);
187   addKey("CAPTION TEXT", Captions_Key, 0x25, 8);
188   addKey("PANEL LOCK", Unmapped_Key, 0x26, 8);
189   addKey("PICTURE MODE NORMAL", PictureMode_Key, 0x27, 8);
190   addKey("PIP.ON/OFF", PIP_Key, 0x28, 8);
191   addKey("P.SWAP", PIPSwap_Key, 0x29, 8);
192   addKey("P.STILL", PIPPause_Key, 0x2A, 8);
193   addKey("P.POSITION", PIPMove_Key, 0x2B, 8);
194   addKey("P.INPUT", PIPSource_Key, 0x2C, 8);
195   addKey("P.CH UP", PIPChannelUp_Key, 0x2D, 8);
196   addKey("ADD/DEL", Unmapped_Key, 0x2E, 8);
197   addKey("P.CH DOWN", PIPChannelDown_Key, 0x2F, 8);
198   addKey("T.RED", Red_Key, 0x32, 8);
199   addKey("T.GREEN", Green_Key, 0x33, 8);
200   addKey("T.YELLOW", Yellow_Key, 0x34, 8);
201   addKey("T.CYAN", Blue_Key, 0x35, 8);
202   addKey("GUIDE", Guide_Key, 0x36, 8);
203   addKey("ENTER", Select_Key, 0x37, 8);
204   addKey("FAVORITE CH", Favorites_Key, 0x3C, 8);
205   addKey("WIDE MODE", AspectRatio_Key, 0x3D, 8);
206   addKey("SUBTITLE", Unmapped_Key, 0x3E, 8);
207   addKey("T.MIX", TeletextAndTV_Key, 0x40, 8);
208   addKey("T.INDEX", TeletextIndex_Key, 0x41, 8);
209   addKey("T.HOLD", TeletextHold_Key, 0x42, 8);
210   addKey("T.SIZE", TeletextSize_Key, 0x43, 8);
211   addKey("T.SUB CODE", Unmapped_Key, 0x44, 8); // shows a subpage?
212   addKey("T.REVEAL", TeletextReveal_Key, 0x45, 8);
213   addKey("T.CANCEL", Unmapped_Key, 0x48, 8); // turns off teletext
214   addKey("MINIOR CHANNEL UP", Unmapped_Key, 0x4E, 8); // I have no clue
215   addKey("MINIOR CHANNEL DOWN", Unmapped_Key, 0x4F, 8);
216   addKey("PROG. GUIDE", Unmapped_Key, 0x52, 8); // which guide is which?
217   addKey("DTV/PC (000218)", PCInput_Key, 0x54, 8);
218   addKey("KEY ALL SENSOR", Unmapped_Key, 0x55, 8);
219   addKey("CHILD LOCK DISPLAY", Unmapped_Key, 0x56, 8);
220   addKey("Digital/Analog", Unmapped_Key, 0x61, 8);
221   addKey("POWER ON", PowerOn_Key, 0x63, 8);
222   addKey("POWER DOWN", PowerOff_Key, 0x64, 8);
223 }
224
225
226 DaewooTV4::DaewooTV4(
227   unsigned int index)
228   : PIRKeysetMetaData(
229       "TV Keyset 4",
230       Daewoo_Make,
231       index)
232 {
233 }
234
235
236 void DaewooTV4::populateProtocol(
237   QObject *guiObject)
238 {
239   if (threadableProtocol)
240   {
241     // If the pointer is not null, the keyset must already be populated.
242     return;
243   }
244
245   threadableProtocol = new NECProtocol(guiObject, index, true, true);
246
247   setPreData(0x1004, 16);
248
249   addKey("0", Zero_Key, 0x00, 8);
250   addKey("1", One_Key, 0x01, 8);
251   addKey("2", Two_Key, 0x02, 8);
252   addKey("3", Three_Key, 0x03, 8);
253   addKey("4", Four_Key, 0x04, 8);
254   addKey("5", Five_Key, 0x05, 8);
255   addKey("6", Six_Key, 0x06, 8);
256   addKey("7", Seven_Key, 0x07, 8);
257   addKey("8", Eight_Key, 0x08, 8);
258   addKey("9", Nine_Key, 0x09, 8);
259   addKey("channel up", ChannelUp_Key, 0x0A, 8); // "up arrow"
260   addKey("channel up", Up_Key, 0x0A, 8); // "up arrow"
261   addKey("channel down", ChannelDown_Key, 0x0B, 8);  // "down arrow"
262   addKey("channel down", Down_Key, 0x0B, 8);  // "down arrow"
263   addKey("vol up", VolumeUp_Key, 0x0C, 8); // "right arrow"
264   addKey("vol up", Right_Key, 0x0C, 8); // "right arrow"
265   addKey("vol down", VolumeDown_Key, 0x0D, 8); // "left arrow"
266   addKey("vol down", Left_Key, 0x0D, 8); // "left arrow"
267   addKey("mute", Mute_Key, 0x0E, 8);
268   addKey("power", Power_Key, 0x0F, 8);
269   addKey("tv/catv (ant/cbl)", AntennaInput_Key, 0x10, 8);
270   addKey("+100", PlusOneHundred_Key, 0x11, 8);
271   addKey("tv/vcr", Input_Key, 0x12, 8);
272   addKey("sound", SoundMode_Key, 0x13, 8);
273   addKey("scan", Scan_Key, 0x14, 8);
274   addKey("sleep", Sleep_Key, 0x15, 8);
275   addKey("picture menu", PictureMode_Key, 0x16, 8);
276   addKey("display", Info_Key, 0x17, 8);
277   addKey("menu", Menu_Key, 0x18, 8);
278   addKey("last (prev ch)", PrevChannel_Key, 0x19, 8);
279   addKey("memory", Memory_Key, 0x1A, 8);
280   addKey("fuzzy", Unmapped_Key, 0x1B, 8);  // what?
281   // these look bad:
282 //  addKey("enter", Enter_Key, 0x11, 8);
283 //  addKey("pip move", PIPPosition_Key, 0x14, 8);
284 //  addKey("select", Select_Key, 0x18, 8);
285 //  addKey("pip on/off", PIP_Key, 0x19, 8);
286 }
287
288
289 DaewooDVD1::DaewooDVD1(
290   unsigned int index)
291   : PIRKeysetMetaData(
292       "DVD Keyset 1",
293       Daewoo_Make,
294       index)
295 {
296 }
297
298
299 void DaewooDVD1::populateProtocol(
300   QObject *guiObject)
301 {
302   if (threadableProtocol)
303   {
304     // If the pointer is not null, the keyset must already be populated.
305     return;
306   }
307
308   threadableProtocol = new DaewooProtocol(guiObject, index);
309
310   setPreData(0x15, 8);
311
312   addKey("NUM0", Zero_Key, 0x90, 8);
313   addKey("NUM1", One_Key, 0x91, 8);
314   addKey("NUM2", Two_Key, 0x92, 8);
315   addKey("NUM3", Three_Key, 0x93, 8);
316   addKey("NUM4", Four_Key, 0x94, 8);
317   addKey("NUM5", Five_Key, 0x95, 8);
318   addKey("NUM6", Six_Key, 0x96, 8);
319   addKey("NUM7", Seven_Key, 0x97, 8);
320   addKey("NUM8", Eight_Key, 0x98, 8);
321   addKey("NUM9", Nine_Key, 0x99, 8);
322   addKey("SYSTEM", Guide_Key, 0x9A, 8); // not quite guide
323   addKey("SETUP", Menu_Key, 0x9B, 8);
324   addKey("PAUSE", Pause_Key, 0x9C, 8);
325   addKey("STOP", Stop_Key, 0x9D, 8);
326   addKey("PLAY", Play_Key, 0x9E, 8);
327   addKey("FFWD", FastForward_Key, 0x9F, 8);
328
329   addKey("REW", Rewind_Key, 0xA0, 8);
330   addKey("MENU", DiscMenu_Key, 0xA1, 8);
331   addKey("ENTER", Select_Key, 0xA2, 8);
332   addKey("NEXT", Next_Key, 0xA3, 8);
333   addKey("PREV", Previous_Key, 0xA4, 8);
334   addKey("POWER", Power_Key, 0xA5, 8);
335   addKey("SREW", StepBack_Key, 0xA6, 8);
336   addKey("UP", Up_Key, 0xA7, 8);
337   addKey("DOWN", Down_Key, 0xA8, 8);
338   addKey("RIGHT", Right_Key, 0xA9, 8);
339   addKey("LEFT", Left_Key, 0xAA, 8);
340   addKey("ANGLE", Angle_Key, 0xAB, 8);
341   addKey("CLEAR", Clear_Key, 0xAC, 8); // Might be exit key
342   addKey("AUDIO", Audio_Key, 0xAD, 8);
343   addKey("OPEN", Eject_Key, 0xAE, 8);
344   addKey("DISPLAY", Info_Key, 0xAF, 8);
345
346   addKey("TITLE", DiscTitle_Key, 0xB0, 8);
347   addKey("ZOOM", Zoom_Key, 0xB1, 8);
348   addKey("AB", RepeatAB_Key, 0xB3, 8);
349   addKey("3D", Unmapped_Key, 0xB4, 8);
350   addKey("SUB", Captions_Key, 0xB5, 8);
351   addKey("REPEAT", Repeat_Key, 0xB8, 8);
352   addKey("SCART", ScartInput_Key, 0xBA, 8);
353   addKey("PROG", Program_Key, 0xBB, 8);
354   addKey("SFFWD", StepForward_Key, 0xBC, 8);
355   addKey("SEARCH", Unmapped_Key, 0xBE, 8);
356   addKey("MUTE", Mute_Key, 0xBF, 8);
357 }
358
359
360 DaewooVCR1::DaewooVCR1(
361   unsigned int index)
362   : PIRKeysetMetaData(
363       "VCR Keyset 1",
364       Daewoo_Make,
365       index)
366 {
367   addControlledDevice(Daewoo_Make, "PV-200", VCR_Device);
368 }
369
370
371 void DaewooVCR1::populateProtocol(
372   QObject *guiObject)
373 {
374   if (threadableProtocol)
375   {
376     // If the pointer is not null, the keyset must already be populated.
377     return;
378   }
379
380   threadableProtocol = new NECProtocol(guiObject, index, false, true);
381
382   setPreData(0x31, 8);
383
384   addKey("+CH", ChannelUp_Key, 0x01, 8);
385   addKey("-CH", ChannelDown_Key, 0x02, 8);
386   addKey("1", One_Key, 0x04, 8);
387   addKey("2", Two_Key, 0x05, 8);
388   addKey("3", Three_Key, 0x06, 8);
389   addKey("4", Four_Key, 0x07, 8);
390
391   addKey("5", Five_Key, 0x0C, 8);
392   addKey("6", Six_Key, 0x0D, 8);
393   addKey("7", Seven_Key, 0x0E, 8);
394   addKey("8", Eight_Key, 0x0F, 8);
395
396   addKey("STOP", Stop_Key, 0x10, 8);
397   addKey("PAUSE/STILL", Pause_Key, 0x11, 8);
398   addKey("REW", Rewind_Key, 0x12, 8);
399   addKey("PLAY", Play_Key, 0x14, 8);
400   addKey("FF", FastForward_Key, 0x13, 8);
401   addKey("REC", Record_Key, 0x15, 8);
402   addKey("TYPE", Unmapped_Key, 0x18, 8);
403   addKey("INDEX", Unmapped_Key, 0x19, 8);
404   addKey("9", Nine_Key, 0x1C, 8);
405   addKey("0", Zero_Key, 0x1D, 8);
406   addKey("INPUT", Input_Key, 0x1E, 8);
407
408   addKey("MEMORY", Memory_Key, 0x43, 8);
409   addKey("RESET", Reset_Key, 0x44, 8);
410   addKey("CLEAR", Clear_Key, 0x4A, 8);
411   addKey("OK", Select_Key, 0x4B, 8); // enter key?
412   addKey("DISPLAY", Info_Key, 0x4C, 8);
413   addKey("VPS/PDC", Unmapped_Key, 0x4F, 8);
414
415   addKey("POWER", Power_Key, 0x5B, 8);
416
417   addKey("ShowView", Unmapped_Key, 0x8C, 8);
418   addKey("PRESET", Unmapped_Key, 0x9E, 8);
419   addKey("MENU/TV", Menu_Key, 0xCA, 8);
420 }
421
422
423 DaewooVCR2::DaewooVCR2(
424   unsigned int index)
425   : PIRKeysetMetaData(
426       "VCR Keyset 2",
427       Daewoo_Make,
428       index)
429 {
430   addControlledDevice(Daewoo_Make, "VQ857S", VCR_Device);
431 }
432
433
434 void DaewooVCR2::populateProtocol(
435   QObject *guiObject)
436 {
437   if (threadableProtocol)
438   {
439     // If the pointer is not null, the keyset must already be populated.
440     return;
441   }
442
443   threadableProtocol = new DaewooProtocol(guiObject, index);
444
445   setPreData(0x15, 8);
446
447   addKey("ch0", Zero_Key, 0x00, 8);
448   addKey("ch1", One_Key, 0x01, 8);
449   addKey("ch2", Two_Key, 0x02, 8);
450   addKey("ch3", Three_Key, 0x03, 8);
451   addKey("ch4", Four_Key, 0x04, 8);
452   addKey("ch5", Five_Key, 0x05, 8);
453   addKey("ch6", Six_Key, 0x06, 8);
454   addKey("ch7", Seven_Key, 0x07, 8);
455   addKey("ch8", Eight_Key, 0x08, 8);
456   addKey("ch9", Nine_Key, 0x09, 8);
457   addKey("stop", Stop_Key, 0x0D, 8);
458   addKey("play", Play_Key, 0x0E, 8);
459   addKey("ffwd", FastForward_Key, 0x0F, 8);
460
461   addKey("rew", Rewind_Key, 0x10, 8);
462   addKey("pause", Pause_Key, 0x11, 8);
463   addKey("O", Unmapped_Key, 0x12, 8);
464   addKey("next", Next_Key, 0x13, 8);
465   addKey("power", Power_Key, 0x15, 8);
466   addKey("tv/vcr", Input_Key, 0x16, 8);
467   addKey("prup", ChannelUp_Key, 0x17, 8);
468   addKey("prdown", ChannelDown_Key, 0x18, 8);
469   addKey("ad", Unmapped_Key, 0x19, 8);
470   addKey("asel", Unmapped_Key, 0x1A, 8);
471   addKey("sp/lp", VHSSpeed_Key, 0x1B, 8);
472   addKey("svc", Unmapped_Key, 0x1C, 8);
473   addKey("a", Unmapped_Key, 0x1D, 8);
474   addKey("gt30", Unmapped_Key, 0x1E, 8);
475   addKey("pal/sec", Unmapped_Key, 0x1F, 8);
476
477   addKey("eject", Eject_Key, 0x21, 8);
478   addKey("menu", Menu_Key, 0x22, 8);
479   addKey("qs", Unmapped_Key, 0x27, 8);
480   addKey("ok", Select_Key, 0x29, 8);
481   addKey("left", Left_Key, 0x31, 8);
482   addKey("indexup", Unmapped_Key, 0x33, 8);
483   addKey("right", Right_Key, 0x35, 8);
484   addKey("av", AuxInput_Key, 0x36, 8);
485   addKey("sv/v+", Unmapped_Key, 0x39, 8);
486   addKey("indexdown", Unmapped_Key, 0x3F, 8);
487 }