1 #include "pirkeysetmanager.h"
5 #include "pirkeysetmetadata.h"
6 #include "pirselectkeysetform.h"
7 #include "pirkeysetwidgetitem.h"
8 #include "dialogs/pirfavoritesdialog.h"
10 #include "keysets/acer.h"
11 #include "keysets/adb.h"
12 #include "keysets/admiral.h"
13 #include "keysets/aiwa.h"
14 #include "keysets/anitech.h"
15 #include "keysets/aoc.h"
16 #include "keysets/apple.h"
17 #include "keysets/arcam.h"
18 #include "keysets/beko.h"
19 #include "keysets/benq.h"
20 #include "keysets/blaupunkt.h"
21 #include "keysets/bose.h"
22 #include "keysets/bush.h"
23 #include "keysets/cambridge.h"
24 #include "keysets/canon.h"
25 #include "keysets/changhong.h"
26 #include "keysets/cisco.h"
27 #include "keysets/compro.h"
28 #include "keysets/creative.h"
29 #include "keysets/crown.h"
30 #include "keysets/crownmustang.h"
31 #include "keysets/daewoo.h"
32 #include "keysets/dell.h"
33 #include "keysets/denon.h"
34 #include "keysets/deutschetelekom.h"
35 #include "keysets/digitalstream.h"
36 #include "keysets/directv.h"
37 #include "keysets/dish.h"
38 #include "keysets/dreambox.h"
39 #include "keysets/dse.h"
40 #include "keysets/dynex.h"
41 #include "keysets/ei.h"
42 #include "keysets/elgato.h"
43 #include "keysets/emerson.h"
44 #include "keysets/emtec.h"
45 #include "keysets/epson.h"
46 #include "keysets/fortec.h"
47 #include "keysets/foxtel.h"
48 #include "keysets/frontech.h"
49 #include "keysets/gadmei.h"
50 #include "keysets/genius.h"
51 #include "keysets/goldstar.h"
52 #include "keysets/goodmans.h"
53 #include "keysets/grundig.h"
54 #include "keysets/haier.h"
55 #include "keysets/hantarex.h"
56 #include "keysets/harmankardon.h"
57 #include "keysets/hauppauge.h"
58 #include "keysets/hitachi.h"
59 #include "keysets/homecast.h"
60 #include "keysets/hp.h"
61 #include "keysets/huawei.h"
62 #include "keysets/humax.h"
63 #include "keysets/hyundai.h"
64 #include "keysets/irobot.h"
65 #include "keysets/jvc.h"
66 #include "keysets/kaon.h"
67 #include "keysets/kathrein.h"
68 #include "keysets/kenwood.h"
69 #include "keysets/keymat.h"
70 #include "keysets/konka.h"
71 #include "keysets/lexuz.h"
72 #include "keysets/lg.h"
73 #include "keysets/lifetec.h"
74 #include "keysets/loewe.h"
75 #include "keysets/logitech.h"
76 #include "keysets/magnavox.h"
77 #include "keysets/magnum.h"
78 #include "keysets/mce.h"
79 #include "keysets/medialink.h"
80 #include "keysets/medion.h"
81 #include "keysets/mitsubishi.h"
82 #include "keysets/motorola.h"
83 #include "keysets/multichoice.h"
84 #include "keysets/nad.h"
85 #include "keysets/nec.h"
86 #include "keysets/nikon.h"
87 #include "keysets/nokia.h"
88 #include "keysets/octagon.h"
89 #include "keysets/olympus.h"
90 #include "keysets/onida.h"
91 #include "keysets/onkyo.h"
92 #include "keysets/orion.h"
93 #include "keysets/panasonic.h"
94 #include "keysets/pentax.h"
95 #include "keysets/philco.h"
96 #include "keysets/philips.h"
97 #include "keysets/pinnacle.h"
98 #include "keysets/pioneer.h"
99 #include "keysets/proview.h"
100 #include "keysets/qnap.h"
101 #include "keysets/raite.h"
102 #include "keysets/rca.h"
103 #include "keysets/roku.h"
104 #include "keysets/saba.h"
105 #include "keysets/sagem.h"
106 #include "keysets/samsung.h"
107 #include "keysets/sanyo.h"
108 #include "keysets/sharp.h"
109 #include "keysets/sinotec.h"
110 #include "keysets/sky.h"
111 #include "keysets/sony.h"
112 #include "keysets/starsat.h"
113 #include "keysets/strong.h"
114 #include "keysets/sylvania.h"
115 #include "keysets/technics.h"
116 #include "keysets/technisat.h"
117 #include "keysets/telefunken.h"
118 #include "keysets/telenet.h"
119 #include "keysets/thomson.h"
120 #include "keysets/tivo.h"
121 #include "keysets/topfield.h"
122 #include "keysets/toshiba.h"
123 #include "keysets/triax.h"
124 #include "keysets/united.h"
125 #include "keysets/universum.h"
126 #include "keysets/vestel.h"
127 #include "keysets/viewsat.h"
128 #include "keysets/viewsonic.h"
129 #include "keysets/virgin.h"
130 #include "keysets/vizio.h"
131 #include "keysets/wd.h"
132 #include "keysets/westinghouse.h"
133 #include "keysets/wiwa.h"
134 #include "keysets/xcruiser.h"
135 #include "keysets/yamaha.h"
136 #include "keysets/zenith.h"
138 #include "pirexception.h"
140 // Need mutex for thread support:
143 // Debugging includes:
146 // Global communications mechanism:
147 extern bool stopRepeatingFlag;
148 extern QMutex stopRepeatingMutex;
150 // Global helper objects:
151 PIRMakeMgr makeManager;
153 // Now, on to the actual method definitions:
155 PIRKeysetManager::PIRKeysetManager()
156 : counter(0) // Note: Zero is now a sentinel value, no keysets can use it!
158 // Create the keysets. Ugly! This needs to be worked on!
159 setupKeyset(new AcerTV1(++counter));
160 setupKeyset(new AcerPC1(++counter));
162 setupKeyset(new ADBSTB1(++counter));
163 setupKeyset(new ADBSTB2(++counter));
164 setupKeyset(new ADBSTB3(++counter));
165 setupKeyset(new ADBSTB4(++counter));
166 setupKeyset(new ADBSTB5(++counter));
167 setupKeyset(new ADBSTB6(++counter));
169 setupKeyset(new AdmiralTV1(++counter));
170 setupKeyset(new AdmiralTV2(++counter));
171 setupKeyset(new AdmiralVCR1(++counter));
173 setupKeyset(new AiwaVCR1(++counter));
174 setupKeyset(new AiwaVCR2(++counter));
175 setupKeyset(new AiwaVCR3(++counter));
176 setupKeyset(new AiwaAudio1(++counter));
177 setupKeyset(new AiwaAudio1a(++counter));
178 setupKeyset(new AiwaAudio2(++counter));
179 setupKeyset(new AiwaAudio2a(++counter));
180 setupKeyset(new AiwaAudio2b(++counter));
181 setupKeyset(new AiwaAudio2c(++counter));
182 setupKeyset(new AiwaAudio3(++counter));
183 setupKeyset(new AiwaAudio4(++counter));
184 setupKeyset(new AiwaAudio5(++counter));
185 setupKeyset(new AiwaAudio6(++counter));
186 setupKeyset(new AiwaCarStereo1(++counter));
187 setupKeyset(new AiwaDVD1(++counter));
189 setupKeyset(new AnitechTV1(++counter));
190 setupKeyset(new AnitechVCR1(++counter));
192 setupKeyset(new AOCTV1(++counter));
194 setupKeyset(new AppleWhiteRemote(++counter));
196 setupKeyset(new ArcamReceiver1(++counter));
198 setupKeyset(new BekoTV1(++counter));
200 setupKeyset(new BenQTV1(++counter));
202 setupKeyset(new BlaupunktVCR1(++counter));
204 setupKeyset(new BoseRadio1(++counter));
205 setupKeyset(new BoseRadio2(++counter));
206 setupKeyset(new BoseRadio3(++counter));
207 setupKeyset(new BoseHomeTheater1(++counter));
209 setupKeyset(new BushTV1(++counter));
210 setupKeyset(new BushTV2(++counter));
211 setupKeyset(new BushSTB1(++counter));
213 setupKeyset(new CambridgeCD1(++counter));
214 setupKeyset(new CambridgeAudio1(++counter));
215 setupKeyset(new CambridgeAudio2(++counter));
216 setupKeyset(new CambridgeAudio3(++counter));
217 setupKeyset(new CambridgeDVD1(++counter));
219 setupKeyset(new CanonDSLR1(++counter));
220 setupKeyset(new CanonCamcorder1(++counter));
221 setupKeyset(new CanonPowershot1(++counter));
223 setupKeyset(new ChanghongTV1(++counter));
224 setupKeyset(new ChanghongTV1a(++counter));
225 setupKeyset(new ChanghongTV1b(++counter));
226 setupKeyset(new ChanghongTV2(++counter));
227 setupKeyset(new ChanghongTV3(++counter));
229 setupKeyset(new CiscoSTB1(++counter));
230 setupKeyset(new CiscoSTB2(++counter));
231 setupKeyset(new CiscoSTB3(++counter));
233 setupKeyset(new ComproTVCard1(++counter));
235 setupKeyset(new CreativeAudio1(++counter));
236 setupKeyset(new CreativeAudio2(++counter));
237 setupKeyset(new CreativeAudio3(++counter));
238 setupKeyset(new CreativeAudio4(++counter));
240 setupKeyset(new CrownTV1(++counter));
241 setupKeyset(new CrownAudio1(++counter));
243 setupKeyset(new CrownMustangTV1(++counter));
245 setupKeyset(new DaewooTV1(++counter));
246 setupKeyset(new DaewooTV2(++counter));
247 setupKeyset(new DaewooTV3(++counter));
248 setupKeyset(new DaewooTV4(++counter));
249 setupKeyset(new DaewooTV5(++counter));
250 setupKeyset(new DaewooDVD1(++counter));
251 setupKeyset(new DaewooVCR1(++counter));
252 setupKeyset(new DaewooVCR2(++counter));
254 setupKeyset(new DenonDVD1(++counter));
255 setupKeyset(new DenonDVD2(++counter));
256 setupKeyset(new DenonDVD3(++counter));
257 setupKeyset(new DenonReceiver1(++counter));
258 setupKeyset(new DenonReceiver1a(++counter));
259 setupKeyset(new DenonReceiver1b(++counter));
260 setupKeyset(new DenonReceiver1c(++counter));
261 setupKeyset(new DenonReceiver1d(++counter));
262 setupKeyset(new DenonReceiver1e(++counter));
263 setupKeyset(new DenonReceiver1f(++counter));
264 setupKeyset(new DenonReceiver2(++counter));
265 setupKeyset(new DenonReceiver2a(++counter));
266 setupKeyset(new DenonReceiver3(++counter));
267 setupKeyset(new DenonAudio1(++counter));
268 setupKeyset(new DenonAudio1a(++counter));
269 setupKeyset(new DenonAudio1b(++counter));
270 setupKeyset(new DenonAudio1c(++counter));
271 setupKeyset(new DenonAudio1d(++counter));
272 setupKeyset(new DenonAudio2(++counter));
273 setupKeyset(new DenonAudio3(++counter));
274 setupKeyset(new DenonAudio4(++counter));
276 setupKeyset(new DellRemote1(++counter));
278 // setupKeyset(new DeutscheTelekomSTB1(++counter));
280 setupKeyset(new DigitalStreamReceiver(++counter));
282 setupKeyset(new DirectvReceiver1(++counter));
283 setupKeyset(new DirectvReceiver1a(++counter));
284 setupKeyset(new DirectvReceiver1b(++counter));
285 setupKeyset(new DirectvReceiver1c(++counter));
286 setupKeyset(new DirectvReceiver1d(++counter));
287 setupKeyset(new DirectvReceiver1e(++counter));
289 setupKeyset(new DishReceiver1(++counter));
290 setupKeyset(new DishReceiver1a(++counter));
291 setupKeyset(new DishReceiver1b(++counter));
292 setupKeyset(new DishReceiver1c(++counter));
293 setupKeyset(new DishReceiver1d(++counter));
294 setupKeyset(new DishReceiver1e(++counter));
295 setupKeyset(new DishReceiver1f(++counter));
296 setupKeyset(new DishReceiver1g(++counter));
297 setupKeyset(new DishReceiver1h(++counter));
298 setupKeyset(new DishReceiver1i(++counter));
299 setupKeyset(new DishReceiver1j(++counter));
300 setupKeyset(new DishReceiver1k(++counter));
301 setupKeyset(new DishReceiver1l(++counter));
302 setupKeyset(new DishReceiver1m(++counter));
303 setupKeyset(new DishReceiver1n(++counter));
304 setupKeyset(new DishReceiver1o(++counter));
306 setupKeyset(new DreamboxSat1(++counter));
307 setupKeyset(new DreamboxSat1a(++counter));
308 setupKeyset(new DreamboxSat1b(++counter));
309 setupKeyset(new DreamboxSat1c(++counter));
310 setupKeyset(new DreamboxSat2(++counter));
311 setupKeyset(new DreamboxSat3(++counter));
312 setupKeyset(new DreamboxSat4(++counter));
313 setupKeyset(new DreamboxSat5(++counter));
315 setupKeyset(new DSEDVD1(++counter));
316 setupKeyset(new DSESat1(++counter));
318 setupKeyset(new DynexTV1(++counter));
320 setupKeyset(new EiTV1(++counter));
322 setupKeyset(new ElgatoEyeTV1(++counter));
324 setupKeyset(new EmersonTV1(++counter));
325 setupKeyset(new EmersonDVD1(++counter));
327 setupKeyset(new EmtecSTB1(++counter));
328 setupKeyset(new EmtecSTB2(++counter));
330 setupKeyset(new EpsonProjector1(++counter));
331 setupKeyset(new EpsonProjector2(++counter));
333 setupKeyset(new FortecReceiver1(++counter));
334 setupKeyset(new FortecReceiver2(++counter));
336 setupKeyset(new FoxtelSTB1(++counter));
337 setupKeyset(new FoxtelSTB2(++counter));
339 setupKeyset(new FrontechTV1(++counter));
340 setupKeyset(new FrontechTV2(++counter));
342 setupKeyset(new GadmeiTuner1(++counter));
344 setupKeyset(new GeniusSpeakers1(++counter));
346 setupKeyset(new GoldStarTV1(++counter));
347 setupKeyset(new GoldStarTV2(++counter));
348 setupKeyset(new GoldStarVCR1(++counter));
349 setupKeyset(new GoldStarVCR1a(++counter));
350 setupKeyset(new GoldStarVCR1b(++counter));
351 setupKeyset(new GoldStarVCR1c(++counter));
352 setupKeyset(new GoldStarCD1(++counter));
354 setupKeyset(new GoodmansSTB1(++counter));
355 setupKeyset(new GoodmansVCR1(++counter));
356 setupKeyset(new GoodmansDVD1(++counter));
357 setupKeyset(new GoodmansAudio1(++counter));
359 setupKeyset(new GrundigSat1(++counter));
360 setupKeyset(new GrundigSat2(++counter));
361 setupKeyset(new GrundigSat3(++counter));
362 setupKeyset(new GrundigAmp1(++counter));
363 setupKeyset(new GrundigAudio1(++counter));
364 setupKeyset(new GrundigAudio2(++counter));
365 setupKeyset(new GrundigVCR1(++counter));
366 setupKeyset(new GrundigVCR1a(++counter));
367 setupKeyset(new GrundigTV1(++counter));
368 setupKeyset(new GrundigTV2(++counter));
369 setupKeyset(new GrundigTV3(++counter));
370 setupKeyset(new GrundigTV4(++counter));
371 setupKeyset(new GrundigDVD1(++counter));
373 setupKeyset(new HaierTV1(++counter));
375 setupKeyset(new HantarexTV1(++counter));
376 setupKeyset(new HantarexTV2(++counter));
378 setupKeyset(new HarmanKardonAmp1(++counter));
379 setupKeyset(new HarmanKardonAmp2(++counter));
380 setupKeyset(new HarmanKardonReceiver2(++counter));
381 setupKeyset(new HarmanKardonTape1(++counter));
382 setupKeyset(new HarmanKardonDVD1(++counter));
383 setupKeyset(new HarmanKardonDVD1a(++counter));
384 setupKeyset(new HarmanKardonCD1(++counter));
385 setupKeyset(new HarmanKardonCD2(++counter));
387 setupKeyset(new HauppaugePCTV1(++counter));
388 setupKeyset(new HauppaugePCTV1a(++counter));
389 setupKeyset(new HauppaugePCTV1b(++counter));
390 setupKeyset(new HauppaugePCTV1c(++counter));
391 setupKeyset(new HauppaugePCTV2(++counter));
393 setupKeyset(new HitachiTV1(++counter));
394 setupKeyset(new HitachiTV1a(++counter));
395 setupKeyset(new HitachiTV1b(++counter));
396 setupKeyset(new HitachiTV1c(++counter));
397 setupKeyset(new HitachiTV2(++counter));
398 setupKeyset(new HitachiTV3(++counter));
399 setupKeyset(new HitachiProjector(++counter));
400 setupKeyset(new HitachiDVD1(++counter));
401 setupKeyset(new HitachiAudio1(++counter));
402 setupKeyset(new HitachiVCR1(++counter));
404 setupKeyset(new HomecastReceiver1(++counter));
405 setupKeyset(new HomecastReceiver2(++counter));
407 setupKeyset(new HPRemote1(++counter));
409 setupKeyset(new HuaweiSTB1(++counter));
410 setupKeyset(new HuaweiSTB2(++counter));
412 setupKeyset(new HumaxReceiver1(++counter));
413 setupKeyset(new HumaxReceiver2(++counter));
414 setupKeyset(new HumaxReceiver3(++counter));
416 setupKeyset(new HyundaiDVD1(++counter));
417 setupKeyset(new HyundaiAudio1(++counter));
418 setupKeyset(new HyundaiTV1(++counter));
420 setupKeyset(new IRobotRoomba1(++counter));
422 setupKeyset(new JVCSat1(++counter));
423 setupKeyset(new JVCSat2(++counter));
424 setupKeyset(new JVCVCR1(++counter));
425 setupKeyset(new JVCVCR1a(++counter));
426 setupKeyset(new JVCVCRBmode1(++counter));
427 setupKeyset(new JVCVCRBmode1a(++counter));
428 setupKeyset(new JVCTV1(++counter));
429 setupKeyset(new JVCTV1a(++counter));
430 setupKeyset(new JVCTV1b(++counter));
431 setupKeyset(new JVCTV1c(++counter));
432 setupKeyset(new JVCTV1d(++counter));
433 setupKeyset(new JVCDAT1(++counter));
434 setupKeyset(new JVCCarDeck1(++counter));
435 setupKeyset(new JVCAudio1(++counter));
436 setupKeyset(new JVCAudio1a(++counter));
437 setupKeyset(new JVCAudio1b(++counter));
438 setupKeyset(new JVCAudio2(++counter));
439 setupKeyset(new JVCDVD1(++counter));
441 setupKeyset(new KaonSat1(++counter));
443 setupKeyset(new KathreinSat1(++counter));
444 setupKeyset(new KathreinSat2(++counter));
445 setupKeyset(new KathreinSat3(++counter));
447 setupKeyset(new KenwoodAudio1(++counter));
448 setupKeyset(new KenwoodComponent1(++counter));
449 setupKeyset(new KenwoodComponent2(++counter));
450 setupKeyset(new KenwoodComponent3(++counter));
451 setupKeyset(new KenwoodCD1(++counter));
452 setupKeyset(new KenwoodDVD1(++counter));
453 setupKeyset(new KenwoodTV1(++counter));
455 setupKeyset(new KeymatTV1(++counter));
456 setupKeyset(new KeymatTV2(++counter));
458 setupKeyset(new KonkaTV1(++counter));
459 setupKeyset(new KonkaTV2(++counter));
461 setupKeyset(new LexuzDVB1(++counter));
463 setupKeyset(new LGTV1(++counter));
464 setupKeyset(new LGTV1a(++counter));
465 setupKeyset(new LGTV1b(++counter));
466 setupKeyset(new LGTV1c(++counter));
467 setupKeyset(new LGTV2(++counter));
468 setupKeyset(new LGTV2a(++counter));
469 setupKeyset(new LGTV2b(++counter));
470 setupKeyset(new LGHT1(++counter));
471 setupKeyset(new LGHT2(++counter));
472 setupKeyset(new LGHT2a(++counter));
473 setupKeyset(new LGDisc1(++counter));
474 setupKeyset(new LGDisc2(++counter));
475 setupKeyset(new LGDisc2a(++counter));
476 setupKeyset(new LGVCR1(++counter));
477 setupKeyset(new LGVCR1a(++counter));
478 setupKeyset(new LGVCR1b(++counter));
479 setupKeyset(new LGAC1(++counter));
481 setupKeyset(new LifetecTV1(++counter));
482 setupKeyset(new LifetecTV2(++counter));
483 setupKeyset(new LifetecVCR1(++counter));
484 setupKeyset(new LifetecAudio1(++counter));
486 setupKeyset(new LoeweTV1(++counter));
487 setupKeyset(new LoeweVCR1(++counter));
488 setupKeyset(new LoeweDVD1(++counter));
490 setupKeyset(new LogitechSpeakers(++counter));
491 setupKeyset(new LogitechSqueezebox(++counter));
493 setupKeyset(new MagnavoxDVD1(++counter));
494 setupKeyset(new MagnavoxVCR1(++counter));
495 setupKeyset(new MagnavoxConverterBox1(++counter));
496 setupKeyset(new MagnavoxTV1(++counter));
498 setupKeyset(new MagnumTV1(++counter));
500 setupKeyset(new MCERemote1(++counter));
501 setupKeyset(new MCERemote1a(++counter));
502 setupKeyset(new MCERemote1b(++counter));
503 setupKeyset(new MCERemote1c(++counter));
504 setupKeyset(new MCERemote1d(++counter));
505 setupKeyset(new MCERemote1e(++counter));
506 setupKeyset(new MCERemote1f(++counter));
507 setupKeyset(new MCERemote1g(++counter));
509 setupKeyset(new MedialinkSTB1(++counter));
511 setupKeyset(new MedionSTB1(++counter));
512 setupKeyset(new MedionDVD1(++counter));
513 setupKeyset(new MedionDVD2(++counter));
514 setupKeyset(new MedionVCR1(++counter));
516 setupKeyset(new MitsubishiTV1(++counter));
517 setupKeyset(new MitsubishiTV1a(++counter));
518 setupKeyset(new MitsubishiVCR1(++counter));
519 setupKeyset(new MitsubishiVCR1a(++counter));
520 setupKeyset(new MitsubishiProjector1(++counter));
522 setupKeyset(new Motorola4DTV(++counter));
523 setupKeyset(new MotorolaSTB1(++counter));
524 setupKeyset(new MotorolaSTB1a(++counter));
525 setupKeyset(new MotorolaSTB1b(++counter));
526 setupKeyset(new MotorolaSkyDigital(++counter));
528 setupKeyset(new MultichoiceSTB1(++counter));
529 setupKeyset(new MultichoiceSTB2(++counter));
531 setupKeyset(new NADAudio1(++counter));
532 setupKeyset(new NADTuner1(++counter));
533 setupKeyset(new NADDVD1(++counter));
534 setupKeyset(new NADCD1(++counter));
535 setupKeyset(new NADCD2(++counter));
536 setupKeyset(new NADTape1(++counter));
538 setupKeyset(new NECTV1(++counter));
539 setupKeyset(new NECVCR1(++counter));
540 setupKeyset(new NECVCR2(++counter));
541 setupKeyset(new NECVCR3(++counter));
542 setupKeyset(new NECDVD1(++counter));
543 setupKeyset(new NECProjector1(++counter));
544 setupKeyset(new NECProjector2(++counter));
546 setupKeyset(new NikonDSLR1(++counter));
548 setupKeyset(new NokiaGenericVCR(++counter));
550 setupKeyset(new OctagonSat1(++counter));
551 setupKeyset(new OctagonSat1a(++counter));
552 setupKeyset(new OctagonSat2(++counter));
554 setupKeyset(new OlympusCamera1(++counter));
556 setupKeyset(new OnidaTV1(++counter));
557 setupKeyset(new OnidaDVD1(++counter));
559 setupKeyset(new OnkyoAudio1(++counter));
560 setupKeyset(new OnkyoAudio2(++counter));
561 setupKeyset(new OnkyoAudio2a(++counter));
562 setupKeyset(new OnkyoAudio3(++counter));
563 setupKeyset(new OnkyoAudio4(++counter));
564 setupKeyset(new OnkyoAudio5(++counter));
565 setupKeyset(new OnkyoDVD1(++counter));
566 setupKeyset(new OnkyoDVD2(++counter));
568 setupKeyset(new OrionTV1(++counter));
569 setupKeyset(new OrionTV2(++counter));
570 setupKeyset(new OrionTV3(++counter));
571 setupKeyset(new OrionVCR1(++counter));
572 setupKeyset(new OrionVCR2(++counter));
573 setupKeyset(new OrionDVD1(++counter));
575 setupKeyset(new PanasonicCarAudio(++counter));
576 setupKeyset(new PanasonicSat1(++counter));
577 setupKeyset(new PanasonicSat1a(++counter));
578 setupKeyset(new PanasonicTV1(++counter));
579 setupKeyset(new PanasonicTV1a(++counter));
580 setupKeyset(new PanasonicTV1b(++counter));
581 setupKeyset(new PanasonicVCR1(++counter));
582 setupKeyset(new PanasonicVCR1a(++counter));
583 setupKeyset(new PanasonicVCR1b(++counter));
584 setupKeyset(new PanasonicVCR1c(++counter));
585 setupKeyset(new PanasonicDVD1(++counter));
586 setupKeyset(new PanasonicDVD1a(++counter));
587 setupKeyset(new PanasonicAudio1(++counter));
588 setupKeyset(new PanasonicAudio2(++counter));
589 setupKeyset(new PanasonicAudio2a(++counter));
590 setupKeyset(new PanasonicAC1(++counter));
592 setupKeyset(new PentaxCamera1(++counter));
594 setupKeyset(new PhilcoTV(++counter));
596 setupKeyset(new PhilipsTV1(++counter));
597 setupKeyset(new PhilipsTV1a(++counter));
598 setupKeyset(new PhilipsTV1b(++counter));
599 setupKeyset(new PhilipsTV1c(++counter));
600 setupKeyset(new PhilipsTV1d(++counter));
601 setupKeyset(new PhilipsTV1e(++counter));
602 setupKeyset(new PhilipsTV1f(++counter));
603 setupKeyset(new PhilipsTV2(++counter));
604 setupKeyset(new PhilipsTV2a(++counter));
605 setupKeyset(new PhilipsTV2b(++counter));
606 setupKeyset(new PhilipsTV3(++counter));
607 setupKeyset(new PhilipsDVD1(++counter));
608 setupKeyset(new PhilipsDVD1a(++counter));
609 setupKeyset(new PhilipsDVD1b(++counter));
610 setupKeyset(new PhilipsDVD1c(++counter));
611 setupKeyset(new PhilipsDVD1d(++counter));
612 setupKeyset(new PhilipsDVD2(++counter));
613 setupKeyset(new PhilipsDVD3(++counter));
614 setupKeyset(new PhilipsDVD3a(++counter));
615 setupKeyset(new PhilipsDVD4(++counter));
616 setupKeyset(new PhilipsVCR1(++counter));
617 setupKeyset(new PhilipsVCR1a(++counter));
618 setupKeyset(new PhilipsVCR1b(++counter));
619 setupKeyset(new PhilipsVCR1c(++counter));
620 setupKeyset(new PhilipsSat1(++counter));
621 setupKeyset(new PhilipsSat2(++counter));
622 setupKeyset(new PhilipsSat2a(++counter));
623 setupKeyset(new PhilipsSat3(++counter));
624 setupKeyset(new PhilipsAudio1(++counter));
625 setupKeyset(new PhilipsAudio1a(++counter));
626 setupKeyset(new PhilipsAudio1b(++counter));
627 setupKeyset(new PhilipsAudio2(++counter));
628 setupKeyset(new PhilipsAudio3(++counter));
629 setupKeyset(new PhilipsAudio4(++counter));
631 setupKeyset(new PinnaclePCTV1(++counter));
632 setupKeyset(new PinnaclePCTV2(++counter));
633 setupKeyset(new PinnaclePCTV3(++counter));
635 setupKeyset(new PioneerTV1(++counter));
636 setupKeyset(new PioneerTV2(++counter));
637 setupKeyset(new PioneerTV3(++counter));
638 setupKeyset(new PioneerAudio1(++counter));
639 setupKeyset(new PioneerAudio1a(++counter));
640 setupKeyset(new PioneerAudio2(++counter));
641 setupKeyset(new PioneerAudio3(++counter));
642 setupKeyset(new PioneerAudio4(++counter));
643 setupKeyset(new PioneerAudio5(++counter));
644 setupKeyset(new PioneerCD1(++counter));
645 setupKeyset(new PioneerLaserDisc1(++counter));
646 setupKeyset(new PioneerDVD1(++counter));
647 setupKeyset(new PioneerCarStereo1(++counter));
649 setupKeyset(new ProviewDVD1(++counter));
651 setupKeyset(new QNAPPlayer1(++counter));
653 setupKeyset(new RaiteDVD1(++counter));
655 setupKeyset(new RCATV1(++counter));
656 setupKeyset(new RCATV1a(++counter));
657 setupKeyset(new RCATV1b(++counter));
658 // setupKeyset(new RCAAux1(++counter));
659 // setupKeyset(new RCAAux2(++counter));
660 // setupKeyset(new RCAAux2a(++counter));
661 setupKeyset(new RCAVCR1(++counter));
662 setupKeyset(new RCAVCR1a(++counter));
663 setupKeyset(new RCADVD1(++counter));
664 setupKeyset(new RCADVD1a(++counter));
665 setupKeyset(new RCASat1(++counter));
666 setupKeyset(new RCASat2(++counter));
668 setupKeyset(new RokuBox1(++counter));
669 setupKeyset(new RokuBox2(++counter));
671 setupKeyset(new SabaTV1(++counter));
672 setupKeyset(new SabaTV2(++counter));
674 setupKeyset(new SagemTVBox1(++counter));
675 setupKeyset(new SagemTVBox1a(++counter));
677 setupKeyset(new SamsungTV1(++counter));
678 setupKeyset(new SamsungTV1a(++counter));
679 setupKeyset(new SamsungTV1b(++counter));
680 setupKeyset(new SamsungTV1c(++counter));
681 setupKeyset(new SamsungTV1d(++counter));
682 setupKeyset(new SamsungTV1e(++counter));
683 setupKeyset(new SamsungTV1f(++counter));
684 setupKeyset(new SamsungTV2(++counter));
685 setupKeyset(new SamsungTV2a(++counter));
686 setupKeyset(new SamsungVCR1(++counter));
687 setupKeyset(new SamsungVCR1a(++counter));
688 setupKeyset(new SamsungVCR1b(++counter));
689 setupKeyset(new SamsungVCR1c(++counter));
690 setupKeyset(new SamsungVCR1d(++counter));
691 setupKeyset(new SamsungVCR1e(++counter));
692 setupKeyset(new SamsungDVD1(++counter));
693 setupKeyset(new SamsungDVD1a(++counter));
694 setupKeyset(new SamsungDVD1b(++counter));
695 setupKeyset(new SamsungDVD2(++counter));
696 setupKeyset(new SamsungAC1(++counter));
697 setupKeyset(new SamsungDVBT1(++counter));
699 setupKeyset(new SanyoVCR1(++counter));
700 setupKeyset(new SanyoDVD1(++counter));
701 setupKeyset(new SanyoTV1(++counter));
702 setupKeyset(new SanyoTV1a(++counter));
703 setupKeyset(new SanyoTV1b(++counter));
704 setupKeyset(new SanyoTV1c(++counter));
705 setupKeyset(new SanyoTV1d(++counter));
706 setupKeyset(new SanyoProjector(++counter));
708 setupKeyset(new SharpTV1(++counter));
709 setupKeyset(new SharpTV1a(++counter));
710 setupKeyset(new SharpTV1b(++counter));
711 setupKeyset(new SharpTV1c(++counter));
712 setupKeyset(new SharpTV1d(++counter));
713 setupKeyset(new SharpTV1e(++counter));
714 setupKeyset(new SharpVCR1(++counter));
715 setupKeyset(new SharpReceiver1(++counter));
716 setupKeyset(new SharpAC1(++counter));
718 setupKeyset(new SinotecTV1(++counter));
719 setupKeyset(new SinotecTV2(++counter));
721 setupKeyset(new SkyReceiver1(++counter));
722 setupKeyset(new SkyReceiver1a(++counter));
724 setupKeyset(new SonyTV1(++counter));
725 setupKeyset(new SonyTV1a(++counter));
726 setupKeyset(new SonyTV1b(++counter));
727 setupKeyset(new SonyTV1c(++counter));
728 setupKeyset(new SonyTV2(++counter));
729 setupKeyset(new SonyAmp1(++counter));
730 setupKeyset(new SonyAmp2(++counter));
731 setupKeyset(new SonyAudio1(++counter));
732 setupKeyset(new SonyAudio1a(++counter));
733 setupKeyset(new SonyDAT1(++counter));
734 setupKeyset(new SonyDVD1(++counter));
735 setupKeyset(new SonyDVD1a(++counter));
736 setupKeyset(new SonyDVD1b(++counter));
737 setupKeyset(new SonyDVD1c(++counter));
738 setupKeyset(new SonyDVD2(++counter));
739 setupKeyset(new SonyDVD2a(++counter));
740 setupKeyset(new SonyVCR1(++counter));
741 setupKeyset(new SonyVCR1a(++counter));
742 setupKeyset(new SonyVCR1b(++counter));
743 setupKeyset(new SonyReceiver1(++counter));
744 setupKeyset(new SonyCD1(++counter));
745 setupKeyset(new SonyCD1a(++counter));
746 setupKeyset(new SonyCD1b(++counter));
747 setupKeyset(new SonyProjector1(++counter));
748 setupKeyset(new SonyProjector1a(++counter));
750 setupKeyset(new StarsatSat1(++counter));
752 setupKeyset(new StrongSat1(++counter));
753 setupKeyset(new StrongSat2(++counter));
754 setupKeyset(new StrongSat3(++counter));
755 setupKeyset(new StrongSat4(++counter));
757 setupKeyset(new SylvaniaTV1(++counter));
759 setupKeyset(new TechnicsAudio1(++counter));
760 setupKeyset(new TechnicsAudio1a(++counter));
761 setupKeyset(new TechnicsAudio2(++counter));
762 setupKeyset(new TechnicsAudio3(++counter));
763 setupKeyset(new TechnicsAudio3a(++counter));
764 setupKeyset(new TechnicsDVD1(++counter));
766 setupKeyset(new TechnisatSTB1(++counter));
767 setupKeyset(new TechnisatSTB1a(++counter));
768 setupKeyset(new TechnisatSTB2(++counter));
769 setupKeyset(new TechnisatSTB2a(++counter));
770 setupKeyset(new TechnisatSTB3(++counter));
771 setupKeyset(new TechnisatSTB3a(++counter));
773 setupKeyset(new TelefunkenTV1(++counter));
774 setupKeyset(new TelefunkenTV1a(++counter));
776 setupKeyset(new TelenetSTB1(++counter));
778 setupKeyset(new ThomsonConverter1(++counter));
779 setupKeyset(new ThomsonTV1(++counter));
780 setupKeyset(new ThomsonVCR1(++counter));
781 setupKeyset(new ThomsonVCR1a(++counter));
782 setupKeyset(new ThomsonDVD1(++counter));
783 setupKeyset(new ThomsonSat1(++counter));
784 setupKeyset(new ThomsonAudio1(++counter));
785 setupKeyset(new ThomsonAudio2(++counter));
787 setupKeyset(new Tivo1(++counter));
788 setupKeyset(new Tivo1a(++counter));
789 setupKeyset(new Tivo1b(++counter));
790 setupKeyset(new Tivo1c(++counter));
791 setupKeyset(new Tivo1d(++counter));
793 setupKeyset(new TopfieldPVR1(++counter));
794 setupKeyset(new TopfieldSat1(++counter));
796 setupKeyset(new ToshibaTV1(++counter));
797 setupKeyset(new ToshibaTV1a(++counter));
798 setupKeyset(new ToshibaTV1b(++counter));
799 setupKeyset(new ToshibaTV1c(++counter));
800 setupKeyset(new ToshibaTV1d(++counter));
801 setupKeyset(new ToshibaTV1e(++counter));
802 setupKeyset(new ToshibaTV1f(++counter));
803 setupKeyset(new ToshibaTV1g(++counter));
804 setupKeyset(new ToshibaTV1h(++counter));
805 setupKeyset(new ToshibaTV1i(++counter));
806 setupKeyset(new ToshibaVCR1(++counter));
807 setupKeyset(new ToshibaVCR1a(++counter));
808 setupKeyset(new ToshibaDisc1(++counter));
809 setupKeyset(new ToshibaDisc1a(++counter));
810 setupKeyset(new ToshibaDisc1b(++counter));
811 setupKeyset(new ToshibaDisc1c(++counter));
812 setupKeyset(new ToshibaDisc1d(++counter));
814 setupKeyset(new TriaxSTB1(++counter));
815 setupKeyset(new TriaxSTB2(++counter));
816 setupKeyset(new TriaxSTB2a(++counter));
817 setupKeyset(new TriaxSTB3(++counter));
818 setupKeyset(new TriaxSTB3a(++counter));
819 setupKeyset(new TriaxSTB4(++counter));
821 setupKeyset(new UnitedDVD1(++counter));
822 setupKeyset(new UnitedDVBT1(++counter));
824 setupKeyset(new UniversumVCR1(++counter));
825 setupKeyset(new UniversumVCR2(++counter));
826 setupKeyset(new UniversumVCR3(++counter));
827 setupKeyset(new UniversumTV1(++counter));
828 setupKeyset(new UniversumTV1a(++counter));
829 setupKeyset(new UniversumSat1(++counter));
830 setupKeyset(new UniversumAudio1(++counter));
832 setupKeyset(new VestelTV1(++counter));
833 setupKeyset(new VestelTV2(++counter));
835 setupKeyset(new ViewsatSat1(++counter));
836 setupKeyset(new ViewsatSat1a(++counter));
838 setupKeyset(new ViewsonicProjector1(++counter));
839 setupKeyset(new ViewsonicProjector2(++counter));
841 setupKeyset(new VirginSTB1(++counter));
843 setupKeyset(new VizioTV1(++counter));
845 setupKeyset(new WDMediaPlayer1(++counter));
846 setupKeyset(new WDMediaPlayer1a(++counter));
847 setupKeyset(new WDMediaPlayer1b(++counter));
849 setupKeyset(new WestinghouseTV1(++counter));
850 setupKeyset(new WestinghouseTV2(++counter));
852 setupKeyset(new WiwaSTB1(++counter));
854 setupKeyset(new XcruiserSat1(++counter));
856 setupKeyset(new YamahaDVD1(++counter));
857 setupKeyset(new YamahaDVD1a(++counter));
858 setupKeyset(new YamahaAudio1(++counter));
859 setupKeyset(new YamahaAudio1a(++counter));
860 setupKeyset(new YamahaAudio2(++counter));
861 setupKeyset(new YamahaAudio2a(++counter));
862 setupKeyset(new YamahaAudio2b(++counter));
863 setupKeyset(new YamahaAudio2c(++counter));
864 setupKeyset(new YamahaAudio2d(++counter));
865 setupKeyset(new YamahaAudio3(++counter));
866 setupKeyset(new YamahaAudio4(++counter));
867 setupKeyset(new YamahaTV1(++counter));
868 setupKeyset(new YamahaKaraoke1(++counter));
870 setupKeyset(new ZenithTV1(++counter));
871 setupKeyset(new ZenithConverterBox1(++counter));
873 // Start the thread running:
874 commandThread.start();
878 PIRKeysetManager::~PIRKeysetManager()
880 // Tell the keysets to stop doing any work:
882 QMutexLocker locker(&stopRepeatingMutex);
883 stopRepeatingFlag = true;
886 // Delete all the keysets:
887 PIRKeysetCollection::iterator i = keysetsInfo.begin();
888 while (i != keysetsInfo.end())
890 if ((*i).second) delete (*i).second;
894 // Tell the thread that we want it to stop:
895 commandThread.exit();
897 // Wait for the thread to stop:
898 commandThread.wait();
902 bool PIRKeysetManager::keysetExists(
903 unsigned int keysetID) const
905 PIRKeysetCollection::const_iterator i = keysetsInfo.find(keysetID);
907 return (i != keysetsInfo.end());
911 bool PIRKeysetManager::findKeysetID(
914 unsigned int &id) const
916 // Only modify the id if we actually find a match!
918 PIRKeysetMakeIndex::const_iterator i = makeIndex.find(make);
919 if (i == makeIndex.end())
924 PIRKeysetNameIndex::const_iterator ii = (*i).second.find(name);
925 if (ii == (*i).second.end())
930 // Ok, we've found it, pull out the id:
936 PIRKeysetWidgetItem *PIRKeysetManager::makeKeysetItem(
942 if (!findKeysetID(make, name, id))
947 QString fullname = make;
948 fullname.append(" ");
949 fullname.append(name);
951 return new PIRKeysetWidgetItem(fullname, name, id, getMake(id));
955 bool PIRKeysetManager::hasKey(
956 unsigned int keysetID,
957 PIRKeyName name) const
959 PIRKeysetCollection::const_iterator i = keysetsInfo.find(keysetID);
961 if ((i == keysetsInfo.end()) || !i->second) return false;
963 return i->second->hasKey(name);
967 PIRMakeName PIRKeysetManager::getMake(
968 unsigned int keysetID) const
970 PIRKeysetCollection::const_iterator i = keysetsInfo.find(keysetID);
972 if ((i == keysetsInfo.end()) || !i->second) return Any_Make;
974 return i->second->getMake();
978 QString PIRKeysetManager::getDisplayName(
979 unsigned int keysetID) const
981 PIRKeysetCollection::const_iterator i = keysetsInfo.find(keysetID);
983 if ((i == keysetsInfo.end()) || !i->second)
984 return QString("Database Error");
986 return QString(i->second->getKeysetName());
990 void PIRKeysetManager::populateKeyset(
992 unsigned int keysetID)
994 PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
996 if (i == keysetsInfo.end())
998 // Should have some sort of error message here!
1002 i->second->populateProtocol(guiObject);
1003 i->second->moveToThread(&commandThread);
1007 unsigned int PIRKeysetManager::getCarrierFrequency(
1008 unsigned int keysetID)
1010 PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
1012 if (i == keysetsInfo.end())
1017 return i->second->getCarrierFrequency();
1021 void PIRKeysetManager::setCarrierFrequency(
1022 unsigned int carrierFrequency,
1023 unsigned int keysetID)
1025 PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
1027 if (i == keysetsInfo.end())
1032 i->second->setCarrierFrequency(carrierFrequency);
1036 unsigned int PIRKeysetManager::getDutyCycle(
1037 unsigned int keysetID)
1039 PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
1041 if (i == keysetsInfo.end())
1046 return i->second->getDutyCycle();
1050 void PIRKeysetManager::setDutyCycle(
1051 unsigned int dutyCycle,
1052 unsigned int keysetID)
1054 PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
1056 if (i == keysetsInfo.end())
1061 i->second->setDutyCycle(dutyCycle);
1065 bool PIRKeysetManager::clearKeyset(
1066 unsigned int keysetID)
1068 PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
1070 if (i == keysetsInfo.end())
1072 return true; // best I can do here right now...
1075 return i->second->clearProtocol();
1079 void PIRKeysetManager::setupKeyset(
1080 PIRKeysetMetaData *keyset)
1082 // Set up the keyset collection:
1083 keysetsInfo[keyset->getID()] = keyset;
1085 // Set up a name-based index into the collection:
1087 [QString(makeManager.getMakeString(keyset->getMake()))]
1088 [QString(keyset->getKeysetName())]
1098 typedef std::map<QString, PIRUserData> PIRUDInnerMap;
1099 typedef std::map<int, PIRUDInnerMap> PIRUDOuterMap;
1101 void PIRKeysetManager::populateListWidgets(
1102 PIRSelectKeysetForm *skf,
1103 PIRFavoritesDialog *fd) const
1105 // First, pull out the user's keyset metadata:
1106 QSettings settings("pietrzak.org", "Pierogi");
1108 // Part 1 - The user's keyset nicknames:
1109 int size = settings.beginReadArray("userNames");
1115 PIRUDOuterMap userData;
1117 while (index < size)
1119 settings.setArrayIndex(index);
1120 name = settings.value("keysetName").toString();
1121 makeStr = settings.value("keysetMake").toString();
1122 makeID = makeManager.getMakeID(makeStr);
1123 userName = settings.value("keysetNickname").toString();
1125 // Insert an entry into the map. We initialize the favorites bool to
1126 // false here, it'll be changed to true below if needed:
1127 userData[makeID][name].nickname = userName;
1128 userData[makeID][name].favorite = false;
1131 settings.endArray();
1133 // Part 2 - The user's favorites:
1134 size = settings.beginReadArray("favorites");
1137 while (index < size)
1139 settings.setArrayIndex(index);
1140 name = settings.value("keysetName").toString();
1141 makeStr = settings.value("keysetMake").toString();
1142 makeID = makeManager.getMakeID(makeStr);
1144 // Insert an entry into the map:
1145 userData[makeID][name].favorite = true;
1149 settings.endArray();
1151 // Now, we load the data into their respective QLists.
1152 PIRKeysetWidgetItem *kwi;
1153 QString displayString;
1154 PIRUDOuterMap::const_iterator outerIter;
1155 PIRUDInnerMap::const_iterator innerIter;
1157 PIRKeysetCollection::const_iterator i = keysetsInfo.begin();
1159 while (i != keysetsInfo.end())
1161 // Create a widget for the keyset:
1162 makeID = i->second->getMake();
1163 name = i->second->getKeysetName();
1164 displayString = makeManager.getMakeString(makeID);
1165 displayString.append(" ");
1166 displayString.append(name);
1168 kwi = new PIRKeysetWidgetItem(displayString, name, i->first, makeID);
1170 outerIter = userData.find(makeID);
1171 if (outerIter != userData.end())
1173 innerIter = outerIter->second.find(name);
1174 if (innerIter != outerIter->second.end())
1176 // We have user data for this keyset!
1177 QString nick = innerIter->second.nickname;
1178 if (!nick.isEmpty())
1180 kwi->setNickname(nick);
1182 displayString = nick;
1183 displayString.append(" (");
1184 displayString.append(kwi->text());
1185 displayString.append(")");
1186 kwi->setText(displayString);
1189 // If this is a favorite, add it to favorites list:
1190 if (innerIter->second.favorite)
1192 kwi->setFavorite(true);
1198 skf->addWidgetItem(kwi);
1206 void PIRKeysetManager::populateDeviceTypes(
1207 PIRKeysetWidgetItem *kwi,
1208 unsigned int keysetID) const
1210 PIRKeysetCollection::const_iterator i = keysetsInfo.find(keysetID);
1211 if ((i != keysetsInfo.end()) && i->second)
1213 i->second->populateDeviceTypes(kwi);