Advanced Settings Panel
[pierogi] / keysets / rca.cpp
1 #include "rca.h"
2 #include "protocols/lircprotocol.h"
3 #include "protocols/rcaprotocol.h"
4
5 RCATV1::RCATV1(
6   unsigned int index)
7   : PIRKeysetMetaData(
8       "TV Keyset 1",
9       RCA_Make,
10       index)
11 {
12 }
13
14
15 void RCATV1::populateProtocol(
16   QObject *guiObject)
17 {
18   if (threadableProtocol)
19   {
20     // If the pointer is not null, the keyset must already be populated.
21     return;
22   }
23
24   threadableProtocol = new RCAProtocol(guiObject, index);
25
26   setPreData(0xF, 4);
27
28   addKey("Fav", Favorites_Key, 0x00, 8);
29   addKey("Band", Unmapped_Key, 0x04, 8);
30   addKey("tv-antenna", AntennaInput_Key, 0x05, 8);
31   addKey("tv-clear", Clear_Key, 0x06, 8);
32   addKey("tv-clear", Exit_Key, 0x06, 8);
33   addKey("Sleep", Sleep_Key, 0x07, 8);
34   addKey("tv-menu", Menu_Key, 0x08, 8);
35   addKey("Tracking Down", TrackingMinus_Key, 0x0A, 8);
36   addKey("Tracking Up", TrackingPlus_Key, 0x0B, 8);
37   addKey("Pip Freeze", PIPPause_Key, 0x0C, 8);
38   addKey("Slow", Slow_Key, 0x10, 8);
39   addKey("Presets", Unmapped_Key, 0x12, 8);
40   addKey("Pip Move", PIPMove_Key, 0x14, 8);
41   addKey("tv-play", Play_Key, 0x15, 8);
42   addKey("Alarm", Unmapped_Key, 0x16, 8);
43   addKey("tv-record", Record_Key, 0x17, 8);
44   addKey("setup-", Program_Key, 0x18, 8); // "Program"
45   addKey("tv-pause", Pause_Key, 0x19, 8);
46   addKey("tv-guide", Guide_Key, 0x1A, 8);
47   addKey("pip", PIP_Key, 0x1B, 8);
48   addKey("tv-forward", FastForward_Key, 0x1C, 8);
49   addKey("tv-reverse", Rewind_Key, 0x1D, 8);
50   addKey("tv-stop", Stop_Key, 0x1F, 8);
51   addKey("Band Right", Unmapped_Key, 0x20, 8);
52   addKey("Band Left", Unmapped_Key, 0x22, 8);
53   addKey("Erase", Unmapped_Key, 0x23, 8);
54   addKey("Add", Unmapped_Key, 0x24, 8);
55   addKey("tv-go-back", PrevChannel_Key, 0x27, 8); // "pc"
56   addKey("Seek", Unmapped_Key, 0x28, 8);
57   addKey("Surr Frz Rig", Unmapped_Key, 0x29, 8);
58   addKey("tv-on-off", Power_Key, 0x2A, 8);
59   addKey("Surr Frz Lef", Unmapped_Key, 0x2B, 8);
60   addKey("tv-ch-", ChannelDown_Key, 0x2C, 8);
61   addKey("tv-ch+", ChannelUp_Key, 0x2D, 8);
62   addKey("vol-left", VolumeDown_Key, 0x2E, 8);
63   addKey("vol-right", VolumeUp_Key, 0x2F, 8);
64   addKey("tv-0", Zero_Key, 0x30, 8);
65   addKey("tv-1", One_Key, 0x31, 8);
66   addKey("tv-2", Two_Key, 0x32, 8);
67   addKey("tv-3", Three_Key, 0x33, 8);
68   addKey("tv-4", Four_Key, 0x34, 8);
69   addKey("tv-5", Five_Key, 0x35, 8);
70   addKey("tv-6", Six_Key, 0x36, 8);
71   addKey("tv-7", Seven_Key, 0x37, 8);
72   addKey("tv-8", Eight_Key, 0x38, 8);
73   addKey("tv-9", Nine_Key, 0x39, 8);
74   addKey("tv", PowerOn_Key, 0x3A, 8); // "on"
75   addKey("off", PowerOff_Key, 0x3B, 8);
76   addKey("tv-info", Info_Key, 0x3C, 8); // "display"
77   addKey("Minute", Unmapped_Key, 0x3D, 8);
78   addKey("Clock", Clock_Key, 0x3E, 8);
79   addKey("mute", Mute_Key, 0x3F, 8);
80   addKey("Speed", VHSSpeed_Key, 0x46, 8);
81   addKey("Input", Unmapped_Key, 0x47, 8); // Which input is right? Both?
82   addKey("Pip Recall", Unmapped_Key, 0x49, 8);
83   addKey("Ch Memory", Unmapped_Key, 0x4A, 8);
84   addKey("Call Counter", Unmapped_Key, 0x4C, 8);
85   addKey("Call Channel", Unmapped_Key, 0x4D, 8);
86   addKey("Alternate Menu", Unmapped_Key, 0x52, 8);
87   addKey("skip", Advance_Key, 0x53, 8); // "Cs"
88   addKey("Zoom Out", Unmapped_Key, 0x54, 8);
89   addKey("Zoom In", Unmapped_Key, 0x55, 8);
90   addKey("tv-left", Left_Key, 0x56, 8);
91   addKey("tv-right", Right_Key, 0x57, 8);
92   addKey("tv-down", Down_Key, 0x58, 8);
93   addKey("tv-up", Up_Key, 0x59, 8);
94   addKey("Sound", SoundMode_Key, 0x5A, 8); // "Surr On/Off"
95   addKey("Surr Frz", Unmapped_Key, 0x5B, 8);
96   addKey("Surr Zoom Out", Unmapped_Key, 0x5C, 8);
97   addKey("Surr Zoom In", Unmapped_Key, 0x5D, 8);
98   addKey("Surr Frz Dow", Unmapped_Key, 0x5E, 8);
99   addKey("Surr Frz Up", Unmapped_Key, 0x5F, 8);
100   addKey("tv-who", Unmapped_Key, 0x61, 8); // "Favorite"
101   addKey("Down", Unmapped_Key, 0x62, 8);
102   addKey("Up", Unmapped_Key, 0x63, 8);
103   addKey("vid+", Unmapped_Key, 0x64, 8); // "Menu -"
104   addKey("setup+", Unmapped_Key, 0x65, 8); // "Menu +"
105   addKey("CC", Captions_Key, 0x80, 8);
106   addKey("Text On", Unmapped_Key, 0x85, 8);
107   addKey("aspect", AspectRatio_Key, 0x90, 8);
108   addKey("tv-fetch", Unmapped_Key, 0x93, 8);
109   addKey("vport", Unmapped_Key, 0x99, 8);
110   addKey("tv-input", Input_Key, 0xA3, 8);
111   addKey("Alt Audio", Unmapped_Key, 0xB0, 8);
112   addKey("tv_again", Unmapped_Key, 0xBA, 8);
113   addKey("swap", PIPSwap_Key, 0xC3, 8);
114   addKey("100", PlusOneHundred_Key, 0xD1, 8);
115   addKey("Help", Unmapped_Key, 0xD5, 8);
116   addKey("pgm", Unmapped_Key, 0xE1, 8); // "Audio Menu"
117   addKey("vid-", Unmapped_Key, 0xE2, 8); // "Video Menu"
118   addKey("Ch. cntrl", Unmapped_Key, 0xE5, 8);
119   addKey("tv-ok", Select_Key, 0xF4, 8);
120 }
121
122
123 RCATV1a::RCATV1a(
124   unsigned int index)
125   : RCATV1(index)
126 {
127   setKeysetName("TV Keyset 1a");
128 }
129
130
131 void RCATV1a::populateProtocol(
132   QObject *guiObject)
133 {
134   if (threadableProtocol)
135   {
136     // If the pointer is not null, the keyset must already be populated.
137     return;
138   }
139
140   RCATV1::populateProtocol(guiObject);
141
142   addKey("repeat", Repeat_Key, 0x05, 8);
143 }
144
145
146 RCATV1b::RCATV1b(
147   unsigned int index)
148   : RCATV1(index)
149 {
150   setKeysetName("TV Keyset 1b");
151 }
152
153
154 void RCATV1b::populateProtocol(
155   QObject *guiObject)
156 {
157   if (threadableProtocol)
158   {
159     // If the pointer is not null, the keyset must already be populated.
160     return;
161   }
162
163   RCATV1::populateProtocol(guiObject);
164
165   addKey("reset", Reset_Key, 0x12, 8);
166 }
167
168
169 /*
170 RCAAux1::RCAAux1(
171   QObject *guiObject,
172   unsigned int index)
173   : PIRKeysetMetaData(
174       "Aux(?) Keyset 1",
175       RCA_Make,
176       index)
177 {
178   LIRCProtocol *lp = new LIRCProtocol(
179     guiObject,
180     index,
181     500, 1000,
182     500, 2000,
183     64500, true);
184
185   threadableProtocol = lp;
186
187   lp->setHeaderPair(4000, 4000);
188   lp->setTrailerPulse(500);
189
190   setPreData(0x4, 4);
191
192   addKey("aux1_power", Power_Key, 0x2ABD5, 20);
193   addKey("skip", Advance_Key, 0x53BAC, 20);
194   addKey("aux-ch+", ChannelUp_Key, 0x2DBD2, 20);
195   addKey("aux-ch-", ChannelDown_Key, 0x2CBD3, 20);
196   addKey("aux-fetch", Unmapped_Key, 0x93B6C, 20);
197   addKey("aux-go-back", PrevChannel_Key, 0x27BD8, 20);
198   addKey("aux-guide", Guide_Key, 0x1ABE5, 20);
199   addKey("aux-up", Up_Key, 0x59BA6, 20);
200   addKey("aux-info", Info_Key, 0x3CBC3, 20);
201   addKey("aux-left", Left_Key, 0x56BA9, 20);
202   addKey("aux-ok", Select_Key, 0xF4B0B, 20);
203   addKey("aux-right", Right_Key, 0x57BA8, 20);
204   addKey("aux-menu", Menu_Key, 0x08BF7, 20);
205   addKey("aux-down", Down_Key, 0x58BA7, 20);
206   addKey("aux-clear", Clear_Key, 0x06BF9, 20);
207   addKey("aux-clear", Exit_Key, 0x06BF9, 20);
208   addKey("aux-1", One_Key, 0x31BCE, 20);
209   addKey("aux-2", Two_Key, 0x32BCD, 20);
210   addKey("aux-3", Three_Key, 0x33BCC, 20);
211   addKey("aux-4", Four_Key, 0x34BCB, 20);
212   addKey("aux-5", Five_Key, 0x35BCA, 20);
213   addKey("aux-6", Six_Key, 0x36BC9, 20);
214   addKey("aux-7", Seven_Key, 0x37BC8, 20);
215   addKey("aux-8", Eight_Key, 0x38BC7, 20);
216   addKey("aux-9", Nine_Key, 0x39BC6, 20);
217   addKey("aux-0", Zero_Key, 0x30BCF, 20);
218   addKey("aux-who", Unmapped_Key, 0x61B9E, 20);
219   addKey("aux-antenna", AntennaInput_Key, 0x05BFA, 20);
220   addKey("aux-reverse", Rewind_Key, 0x1DBE2, 20);
221   addKey("aux-play", Play_Key, 0x15BEA, 20);
222   addKey("aux-forward", FastForward_Key, 0x1CBE3, 20);
223   addKey("aux-record", Record_Key, 0x17BE8, 20);
224   addKey("aux-stop", Stop_Key, 0x1FBE0, 20);
225   addKey("aux-pause", Pause_Key, 0x19BE6, 20);
226 //  addKey("aux-mute", Mute_Key, 0x3FBC0, 20);
227 //  addKey("aux-vol-left", VolumeDown_Key, 0x2EBD1, 20);
228 //  addKey("aux-vol-right", VolumeUp_Key, 0x2FBD0, 20);
229 }
230
231
232 RCAAux2::RCAAux2(
233   QObject *guiObject,
234   unsigned int index)
235   : PIRKeysetMetaData(
236       "Aux(?) Keyset 2",
237       RCA_Make,
238       index)
239 {
240   LIRCProtocol *lp = new LIRCProtocol(
241     guiObject,
242     index,
243     500, 1000,
244     500, 2000,
245     64500, true);
246
247   threadableProtocol = lp;
248
249   lp->setHeaderPair(4000, 4000);
250   lp->setTrailerPulse(500);
251
252   setPreData(0xC, 4);
253
254   addKey("aux-on-off", Power_Key, 0x3B3C4, 20);
255   addKey("aux-mute", Mute_Key, 0x3F3C0, 20);
256   addKey("aux-who", Unmapped_Key, 0x6139E, 20);
257   addKey("aux-ch+", ChannelUp_Key, 0x2D3D2, 20);
258   addKey("aux-ch-", ChannelDown_Key, 0x2C3D3, 20);
259   addKey("aux-vol-left", VolumeDown_Key, 0x2E3D1, 20);
260   addKey("aux-vol-right", VolumeUp_Key, 0x2F3D0, 20);
261   addKey("aux-fetch", Unmapped_Key, 0x9336C, 20);
262   addKey("aux-go-back", PrevChannel_Key, 0x273D8, 20);
263   addKey("aux-guide", Guide_Key, 0x1A3E5, 20);
264   addKey("aux-info", Info_Key, 0x3C3C3, 20);
265   addKey("aux-menu", Menu_Key, 0x083F7, 20);
266   addKey("aux-clear", Clear_Key, 0x063F9, 20);
267   addKey("aux-clear", Exit_Key, 0x063F9, 20);
268   addKey("aux-up", Up_Key, 0x593A6, 20);
269   addKey("aux-down", Down_Key, 0x583A7, 20);
270   addKey("aux-right", Right_Key, 0x573A8, 20);
271   addKey("aux-left", Left_Key, 0x563A9, 20);
272   addKey("aux-ok", Select_Key, 0xF430B, 20);
273   addKey("aux-1", One_Key, 0x313CE, 20);
274   addKey("aux-2", Two_Key, 0x323CD, 20);
275   addKey("aux-3", Three_Key, 0x333CC, 20);
276   addKey("aux-4", Four_Key, 0x343CB, 20);
277   addKey("aux-5", Five_Key, 0x353CA, 20);
278   addKey("aux-6", Six_Key, 0x363C9, 20);
279   addKey("aux-7", Seven_Key, 0x373C8, 20);
280   addKey("aux-8", Eight_Key, 0x383C7, 20);
281   addKey("aux-9", Nine_Key, 0x393C6, 20);
282   addKey("aux-0", Zero_Key, 0x303CF, 20);
283   addKey("aux-antenna", AntennaInput_Key, 0x053FA, 20);
284   addKey("aux-reverse", Rewind_Key, 0x1D3E2, 20);
285   addKey("aux-play", Play_Key, 0x153EA, 20);
286   addKey("aux-forward", FastForward_Key, 0x1C3E3, 20);
287   addKey("aux-record", Record_Key, 0x173E8, 20);
288   addKey("aux-stop", Stop_Key, 0x1F3E0, 20);
289   addKey("aux-pause", Pause_Key, 0x193E6, 20);
290   addKey("skip", Advance_Key, 0x533AC, 20);
291 }
292
293
294 RCAAux2a::RCAAux2a(
295   QObject *guiObject,
296   unsigned int index)
297   : RCAAux2(guiObject, index)
298 {
299   setKeysetName("Aux(?) Keyset 2a");
300
301   addKey("aux2_up", Up_Key, 0x6339C, 20);
302   addKey("aux2_left", Left_Key, 0x6439B, 20);
303   addKey("aux2_right", Right_Key, 0x6539A, 20);
304   addKey("aux2_down", Down_Key, 0x6239D, 20);
305   addKey("aux2_antenna", AntennaInput_Key, 0x413BE, 20);
306   addKey("aux2_whoinput", Input_Key, 0x283D7, 20);
307 }
308 */
309
310
311 RCAVCR1::RCAVCR1(
312   unsigned int index)
313   : PIRKeysetMetaData(
314       "VCR Keyset 1",
315       RCA_Make,
316       index)
317 {
318 }
319
320
321 void RCAVCR1::populateProtocol(
322   QObject *guiObject)
323 {
324   if (threadableProtocol)
325   {
326     // If the pointer is not null, the keyset must already be populated.
327     return;
328   }
329
330   threadableProtocol = new RCAProtocol(guiObject, index);
331
332   setPreData(0xE, 4);
333
334   addKey("vcr1-antenna", AntennaInput_Key, 0x05, 8);
335   addKey("vcr1-clear", Clear_Key, 0x06, 8);
336   addKey("vcr1-clear", Exit_Key, 0x06, 8);
337   addKey("vcr1-menu", Menu_Key, 0x08, 8);
338   addKey("trackminus", TrackingMinus_Key, 0x0A, 8);
339   addKey("trackplus", TrackingPlus_Key, 0x0B, 8);
340   addKey("vcr1-play", Play_Key, 0x15, 8);
341   addKey("vcr1-record", Record_Key, 0x17, 8);
342   addKey("vcr1-pause", Pause_Key, 0x19, 8);
343   addKey("vcr1-guide", Guide_Key, 0x1A, 8);
344   addKey("vcr1-forward", FastForward_Key, 0x1C, 8);
345   addKey("vcr1-reverse", Rewind_Key, 0x1D, 8);
346   addKey("vcr1-stop", Stop_Key, 0x1F, 8);
347   addKey("vcr1-go-back", PrevChannel_Key, 0x27, 8);
348   addKey("vcr1-on-off", Power_Key, 0x2A, 8);
349   addKey("vcr1-ch-", ChannelDown_Key, 0x2C, 8);
350   addKey("vcr1-ch+", ChannelUp_Key, 0x2D, 8);
351   addKey("vcr1-0", Zero_Key, 0x30, 8);
352   addKey("vcr1-1", One_Key, 0x31, 8);
353   addKey("vcr1-2", Two_Key, 0x32, 8);
354   addKey("vcr1-3", Three_Key, 0x33, 8);
355   addKey("vcr1-4", Four_Key, 0x34, 8);
356   addKey("vcr1-5", Five_Key, 0x35, 8);
357   addKey("vcr1-6", Six_Key, 0x36, 8);
358   addKey("vcr1-7", Seven_Key, 0x37, 8);
359   addKey("vcr1-8", Eight_Key, 0x38, 8);
360   addKey("vcr1-9", Nine_Key, 0x39, 8);
361   addKey("vcr", Unmapped_Key, 0x3A, 8);
362   addKey("vcr1-info", Info_Key, 0x3C, 8);
363   addKey("vcr_again", Unmapped_Key, 0x46, 8);
364   addKey("vcr1-input", Input_Key, 0x47, 8);
365   addKey("skip", Advance_Key, 0x53, 8);
366   addKey("vcr1-left", Left_Key, 0x56, 8);
367   addKey("vcr1-right", Right_Key, 0x57, 8);
368   addKey("vcr1-down", Down_Key, 0x58, 8);
369   addKey("vcr1-up", Up_Key, 0x59, 8);
370   addKey("vcr1-who", Unmapped_Key, 0x61, 8);
371   addKey("vcr1-fetch", Unmapped_Key, 0x93, 8);
372   addKey("vcr1-ok", Select_Key, 0xF4, 8);
373 }
374
375
376 RCAVCR1a::RCAVCR1a(
377   unsigned int index)
378   : RCAVCR1(index)
379 {
380   setKeysetName("VCR(alt) Keyset 1a");
381 }
382
383
384 void RCAVCR1a::populateProtocol(
385   QObject *guiObject)
386 {
387   if (threadableProtocol)
388   {
389     // If the pointer is not null, the keyset must already be populated.
390     return;
391   }
392
393   RCAVCR1::populateProtocol(guiObject);
394
395   setPreData(0xD, 4);
396 }
397
398
399 RCADVD1::RCADVD1(
400   unsigned int index)
401   : PIRKeysetMetaData(
402       "DVD Keyset 1",
403       RCA_Make,
404       index)
405 {
406 }
407
408
409 void RCADVD1::populateProtocol(
410   QObject *guiObject)
411 {
412   if (threadableProtocol)
413   {
414     // If the pointer is not null, the keyset must already be populated.
415     return;
416   }
417
418   threadableProtocol = new RCAProtocol(guiObject, index);
419
420   setPreData(0x5, 4);
421
422   addKey("dvd-antenna", AntennaInput_Key, 0x05, 8); // tv_vcr
423   addKey("dvd-clear", Clear_Key, 0x06, 8);
424   addKey("dvd-clear", Exit_Key, 0x06, 8);
425   addKey("dvd-menu", Menu_Key, 0x08, 8);
426   addKey("dvd_preset", Unmapped_Key, 0x12, 8);
427   addKey("dvd-play", Play_Key, 0x15, 8);
428   addKey("dvd-record", Record_Key, 0x17, 8);
429   addKey("dvd-pause", Pause_Key, 0x19, 8);
430   addKey("dvd-guide", Guide_Key, 0x1A, 8);
431   addKey("dvd-forward", FastForward_Key, 0x1C, 8);
432   addKey("dvd-reverse", Rewind_Key, 0x1D, 8);
433   addKey("dvd-stop", Stop_Key, 0x1F, 8);
434   addKey("dvd-go-back", PrevChannel_Key, 0x27, 8);
435   addKey("dvd-on-off", Power_Key, 0x2A, 8);
436   addKey("dvd-ch-", ChannelDown_Key, 0x2C, 8);
437   addKey("dvd-ch+", ChannelUp_Key, 0x2D, 8);
438   addKey("dvd-0", Zero_Key, 0x30, 8);
439   addKey("dvd-1", One_Key, 0x31, 8);
440   addKey("dvd-2", Two_Key, 0x32, 8);
441   addKey("dvd-3", Three_Key, 0x33, 8);
442   addKey("dvd-4", Four_Key, 0x34, 8);
443   addKey("dvd-5", Five_Key, 0x35, 8);
444   addKey("dvd-6", Six_Key, 0x36, 8);
445   addKey("dvd-7", Seven_Key, 0x37, 8);
446   addKey("dvd-8", Eight_Key, 0x38, 8);
447   addKey("dvd-9", Nine_Key, 0x39, 8);
448   addKey("dvd", Unmapped_Key, 0x3A, 8);
449   addKey("dvd-info", Info_Key, 0x3C, 8);
450   addKey("dvd_open_close", Eject_Key, 0x40, 8);
451   addKey("dvd-input", Input_Key, 0x47, 8);
452   addKey("skip", Advance_Key, 0x53, 8);
453   addKey("dvd-left", Left_Key, 0x56, 8);
454   addKey("dvd-right", Right_Key, 0x57, 8);
455   addKey("dvd-down", Down_Key, 0x58, 8);
456   addKey("dvd-up", Up_Key, 0x59, 8);
457   addKey("dvd-who", Unmapped_Key, 0x61, 8);
458   addKey("dvd_zoom", Zoom_Key, 0x90, 8);
459   addKey("dvd-fetch", Unmapped_Key, 0x93, 8);
460   addKey("dvd_again", Replay_Key, 0xBA, 8);
461   addKey("dvd-ok", Select_Key, 0xF4, 8);
462 }
463
464
465 RCADVD1a::RCADVD1a(
466   unsigned int index)
467   : RCADVD1(index)
468 {
469   setKeysetName("DVD Keyset 1a");
470 }
471
472
473 void RCADVD1a::populateProtocol(
474   QObject *guiObject)
475 {
476   if (threadableProtocol)
477   {
478     // If the pointer is not null, the keyset must already be populated.
479     return;
480   }
481
482   RCADVD1::populateProtocol(guiObject);
483
484   addKey("dvd_ch+", ChannelUp_Key, 0x20, 8);
485   addKey("dvd_ch-", ChannelDown_Key, 0x22, 8);
486 }
487
488
489 RCASat1::RCASat1(
490   unsigned int index)
491   : PIRKeysetMetaData(
492       "Satellite(DirecTV) Keyset 1",
493       RCA_Make,
494       index)
495 {
496 }
497
498
499 void RCASat1::populateProtocol(
500   QObject *guiObject)
501 {
502   if (threadableProtocol)
503   {
504     // If the pointer is not null, the keyset must already be populated.
505     return;
506   }
507
508   threadableProtocol = new RCAProtocol(guiObject, index);
509
510   setPreData(0x7, 4);
511
512   addKey("antenna", AntennaInput_Key, 0x05, 8); // "TV/VCR"
513   addKey("clear", Clear_Key, 0x06, 8);
514   addKey("clear", Exit_Key, 0x06, 8);
515   addKey("menu", Menu_Key, 0x08, 8);
516   addKey("hd-play", Play_Key, 0x15, 8);
517   addKey("hd-record", Record_Key, 0x17, 8);
518   addKey("hd-pause", Pause_Key, 0x19, 8);
519   addKey("guide", Guide_Key, 0x1A, 8);
520   addKey("PIP", PIP_Key, 0x1B, 8);
521   addKey("hd-forward", FastForward_Key, 0x1C, 8);
522   addKey("hd-reverse", Rewind_Key, 0x1D, 8);
523   addKey("hd-stop", Stop_Key, 0x1F, 8);
524   addKey("go-back", PrevChannel_Key, 0x27, 8);
525   addKey("on-off", Power_Key, 0x2A, 8);
526   addKey("ch-", ChannelDown_Key, 0x2C, 8);
527   addKey("ch+", ChannelUp_Key, 0x2D, 8);
528   addKey("0", Zero_Key, 0x30, 8);
529   addKey("1", One_Key, 0x31, 8);
530   addKey("2", Two_Key, 0x32, 8);
531   addKey("3", Three_Key, 0x33, 8);
532   addKey("4", Four_Key, 0x34, 8);
533   addKey("5", Five_Key, 0x35, 8);
534   addKey("6", Six_Key, 0x36, 8);
535   addKey("7", Seven_Key, 0x37, 8);
536   addKey("8", Eight_Key, 0x38, 8);
537   addKey("9", Nine_Key, 0x39, 8);
538   addKey("info", Info_Key, 0x3C, 8);
539   addKey("SAT", Unmapped_Key, 0x3A, 8);
540   addKey("hd-input", Input_Key, 0x47, 8);
541   addKey("skip", Advance_Key, 0x53, 8);
542   addKey("left", Left_Key, 0x56, 8);
543   addKey("right", Right_Key, 0x57, 8);
544   addKey("down", Down_Key, 0x58, 8);
545   addKey("up", Up_Key, 0x59, 8);
546   addKey("INPUT", Input_Key, 0x61, 8);
547 //  addKey("who", Unmapped_Key, 0x61, 8); // "cc", "-"
548   addKey("fetch", Unmapped_Key, 0x93, 8);
549   addKey("SWAP", PIPSwap_Key, 0xC3, 8);
550   addKey("ok", Select_Key, 0xF4, 8);
551   addKey("ok", Enter_Key, 0xF4, 8);
552 }
553
554
555 RCASat2::RCASat2(
556   unsigned int index)
557   : PIRKeysetMetaData(
558       "Satellite (Dish Network) Keyset 2",
559       RCA_Make,
560       index)
561 {
562 }
563
564
565 void RCASat2::populateProtocol(
566   QObject *guiObject)
567 {
568   if (threadableProtocol)
569   {
570     // If the pointer is not null, the keyset must already be populated.
571     return;
572   }
573
574   LIRCProtocol *lp = new LIRCProtocol(
575     guiObject,
576     index,
577     440, 2780,
578     440, 1645,
579     6115, false);
580
581   threadableProtocol = lp;
582
583   lp->setHeaderPair(525, 6045);
584   lp->setTrailerPulse(450);
585
586 //  lp->setMinimumRepetitions(6);
587   lp->setFullHeadlessRepeat(true);
588
589   lp->setCarrierFrequency(56000);
590   lp->setDutyCycle(32);
591
592   setPostData(0x000, 10);
593
594   addKey("info", Info_Key, 0x0, 6);
595   addKey("power_on", PowerOn_Key, 0x1, 6);
596   addKey("power", Power_Key, 0x2, 6);
597   addKey("1", One_Key, 0x4, 6);
598   addKey("2", Two_Key, 0x5, 6);
599   addKey("3", Three_Key, 0x6, 6);
600   addKey("4", Four_Key, 0x8, 6);
601   addKey("5", Five_Key, 0x9, 6);
602   addKey("6", Six_Key, 0x10, 6);
603   addKey("7", Seven_Key, 0x12, 6);
604   addKey("8", Eight_Key, 0x13, 6);
605   addKey("9", Nine_Key, 0x14, 6);
606   addKey("0", Zero_Key, 0x17, 6);
607   addKey("menu", Menu_Key, 0x11, 6);
608   addKey("select", Select_Key, 0x16, 6);
609   addKey("cancel", Exit_Key, 0x18, 6);
610   addKey("guide", Guide_Key, 0x20, 6);
611   addKey("view", Unmapped_Key, 0x22, 6);
612   addKey("tv_vcr", Input_Key, 0x23, 6);
613   addKey("right", Right_Key, 0x24, 6);
614   addKey("up", Up_Key, 0x26, 6);
615   addKey("recall", PrevChannel_Key, 0x27, 6);
616   addKey("left", Left_Key, 0x28, 6);
617   addKey("down", Down_Key, 0x30, 6);
618   addKey("record", Record_Key, 0x31, 6);
619   addKey("pause", Pause_Key, 0x32, 6);
620   addKey("stop", Stop_Key, 0x33, 6);
621   addKey("sys_info", Info_Key, 0x36, 6);
622   addKey("asterisk", Unmapped_Key, 0x37, 6);
623   addKey("pound", Unmapped_Key, 0x38, 6);
624   addKey("power_off", PowerOff_Key, 0x39, 6);
625   addKey("sat", CableInput_Key, 0x41, 6);
626   addKey("dish_home", Unmapped_Key, 0x52, 6);
627   addKey("sys_info2", Unmapped_Key, 0x54, 6);
628   addKey("dish_home2", Unmapped_Key, 0x56, 6);
629 }