1 #include "pirkeysetmanager.h"
3 #include "pirkeysetmetadata.h"
4 #include "pirselectkeysetform.h"
5 #include "pirkeysetwidgetitem.h"
7 #include "keysets/acer.h"
8 #include "keysets/admiral.h"
9 #include "keysets/aiwa.h"
10 #include "keysets/apple.h"
11 #include "keysets/bose.h"
12 #include "keysets/daewoo.h"
13 #include "keysets/denon.h"
14 #include "keysets/digitalstream.h"
15 #include "keysets/dish.h"
16 #include "keysets/ei.h"
17 #include "keysets/elgato.h"
18 #include "keysets/emerson.h"
19 #include "keysets/fortec.h"
20 #include "keysets/goldstar.h"
21 #include "keysets/grundig.h"
22 #include "keysets/hauppauge.h"
23 #include "keysets/hitachi.h"
24 #include "keysets/homecast.h"
25 #include "keysets/jvc.h"
26 #include "keysets/lg.h"
27 #include "keysets/logitech.h"
28 #include "keysets/magnavox.h"
29 #include "keysets/mce.h"
30 #include "keysets/mitsubishi.h"
31 #include "keysets/nokia.h"
32 #include "keysets/panasonic.h"
33 #include "keysets/philco.h"
34 #include "keysets/philips.h"
35 #include "keysets/pinnacle.h"
36 #include "keysets/pioneer.h"
37 #include "keysets/raite.h"
38 #include "keysets/rca.h"
39 #include "keysets/roku.h"
40 #include "keysets/saba.h"
41 #include "keysets/sagem.h"
42 #include "keysets/samsung.h"
43 #include "keysets/sanyo.h"
44 #include "keysets/sharp.h"
45 #include "keysets/sky.h"
46 #include "keysets/sony.h"
47 #include "keysets/tivo.h"
48 #include "keysets/topfield.h"
49 #include "keysets/toshiba.h"
50 #include "keysets/wd.h"
51 #include "keysets/westinghouse.h"
52 #include "keysets/yamaha.h"
53 #include "keysets/zenith.h"
55 #include "pirexception.h"
57 // I'll be handling the threading of the keyset commands in this object:
60 // Global communications mechanism:
61 extern bool stopRepeatingFlag;
62 extern QMutex stopRepeatingMutex;
64 // Global helper objects:
65 PIRMakeMgr makeManager;
66 PIRDeviceTypeMgr deviceManager;
68 // Now, on to the actual method definitions:
70 PIRKeysetManager::PIRKeysetManager(
74 // Create the keysets. Ugly! This needs to be worked on!
75 populateKeyset(new AcerTV1(guiObject, counter++));
76 populateKeyset(new AcerPC1(guiObject, counter++));
78 populateKeyset(new AdmiralTV1(guiObject, counter++));
79 populateKeyset(new AdmiralTV2(guiObject, counter++));
80 populateKeyset(new AdmiralVCR1(guiObject, counter++));
82 populateKeyset(new AiwaVCR1(guiObject, counter++));
83 populateKeyset(new AiwaVCR2(guiObject, counter++));
84 populateKeyset(new AiwaVCR3(guiObject, counter++));
85 populateKeyset(new AiwaAudio1(guiObject, counter++));
86 populateKeyset(new AiwaAudio1a(guiObject, counter++));
87 populateKeyset(new AiwaAudio2(guiObject, counter++));
88 populateKeyset(new AiwaAudio2a(guiObject, counter++));
89 populateKeyset(new AiwaAudio2b(guiObject, counter++));
90 populateKeyset(new AiwaAudio2c(guiObject, counter++));
91 populateKeyset(new AiwaAudio3(guiObject, counter++));
92 populateKeyset(new AiwaAudio4(guiObject, counter++));
93 populateKeyset(new AiwaAudio5(guiObject, counter++));
94 populateKeyset(new AiwaAudio6(guiObject, counter++));
95 populateKeyset(new AiwaCarStereo1(guiObject, counter++));
96 populateKeyset(new AiwaDVD1(guiObject, counter++));
98 populateKeyset(new AppleWhiteRemote(guiObject, counter++));
100 populateKeyset(new BoseRadio1(guiObject, counter++));
101 populateKeyset(new BoseRadio2(guiObject, counter++));
102 populateKeyset(new BoseRadio3(guiObject, counter++));
104 populateKeyset(new DaewooTV1(guiObject, counter++));
105 populateKeyset(new DaewooTV2(guiObject, counter++));
106 populateKeyset(new DaewooTV3(guiObject, counter++));
107 populateKeyset(new DaewooTV4(guiObject, counter++));
108 populateKeyset(new DaewooDVD1(guiObject, counter++));
109 populateKeyset(new DaewooVCR1(guiObject, counter++));
110 populateKeyset(new DaewooVCR2(guiObject, counter++));
112 populateKeyset(new DenonDVD1(guiObject, counter++));
113 populateKeyset(new DenonDVD2(guiObject, counter++));
114 populateKeyset(new DenonDVD3(guiObject, counter++));
115 populateKeyset(new DenonReceiver1(guiObject, counter++));
116 populateKeyset(new DenonReceiver1a(guiObject, counter++));
117 populateKeyset(new DenonReceiver1b(guiObject, counter++));
118 populateKeyset(new DenonReceiver1c(guiObject, counter++));
119 populateKeyset(new DenonReceiver1d(guiObject, counter++));
120 populateKeyset(new DenonReceiver1e(guiObject, counter++));
121 populateKeyset(new DenonReceiver1f(guiObject, counter++));
122 populateKeyset(new DenonReceiver2(guiObject, counter++));
123 populateKeyset(new DenonReceiver2a(guiObject, counter++));
124 populateKeyset(new DenonReceiver3(guiObject, counter++));
125 populateKeyset(new DenonAudio1(guiObject, counter++));
126 populateKeyset(new DenonAudio1a(guiObject, counter++));
127 populateKeyset(new DenonAudio1b(guiObject, counter++));
128 populateKeyset(new DenonAudio1c(guiObject, counter++));
129 populateKeyset(new DenonAudio1d(guiObject, counter++));
130 populateKeyset(new DenonAudio2(guiObject, counter++));
131 populateKeyset(new DenonAudio3(guiObject, counter++));
132 populateKeyset(new DenonAudio4(guiObject, counter++));
134 populateKeyset(new DigitalStreamReceiver(guiObject, counter++));
136 populateKeyset(new DishReceiver1(guiObject, counter++));
137 populateKeyset(new DishReceiver1a(guiObject, counter++));
138 populateKeyset(new DishReceiver1b(guiObject, counter++));
139 populateKeyset(new DishReceiver1c(guiObject, counter++));
140 populateKeyset(new DishReceiver1d(guiObject, counter++));
141 populateKeyset(new DishReceiver1e(guiObject, counter++));
142 populateKeyset(new DishReceiver1f(guiObject, counter++));
143 populateKeyset(new DishReceiver1g(guiObject, counter++));
144 populateKeyset(new DishReceiver1h(guiObject, counter++));
145 populateKeyset(new DishReceiver1i(guiObject, counter++));
146 populateKeyset(new DishReceiver1j(guiObject, counter++));
147 populateKeyset(new DishReceiver1k(guiObject, counter++));
148 populateKeyset(new DishReceiver1l(guiObject, counter++));
149 populateKeyset(new DishReceiver1m(guiObject, counter++));
150 populateKeyset(new DishReceiver1n(guiObject, counter++));
151 populateKeyset(new DishReceiver1o(guiObject, counter++));
153 populateKeyset(new EiTV1(guiObject, counter++));
155 populateKeyset(new ElgatoEyeTV1(guiObject, counter++));
157 populateKeyset(new EmersonTV1(guiObject, counter++));
158 populateKeyset(new EmersonDVD1(guiObject, counter++));
160 populateKeyset(new FortecReceiver1(guiObject, counter++));
161 populateKeyset(new FortecReceiver2(guiObject, counter++));
163 populateKeyset(new GoldStarTV1(guiObject, counter++));
164 populateKeyset(new GoldStarTV2(guiObject, counter++));
165 populateKeyset(new GoldStarVCR1(guiObject, counter++));
166 populateKeyset(new GoldStarVCR1a(guiObject, counter++));
167 populateKeyset(new GoldStarVCR1b(guiObject, counter++));
168 populateKeyset(new GoldStarVCR1c(guiObject, counter++));
169 populateKeyset(new GoldStarCD1(guiObject, counter++));
171 populateKeyset(new GrundigSat1(guiObject, counter++));
172 populateKeyset(new GrundigSat2(guiObject, counter++));
173 populateKeyset(new GrundigAmp1(guiObject, counter++));
174 populateKeyset(new GrundigAudio1(guiObject, counter++));
175 populateKeyset(new GrundigAudio2(guiObject, counter++));
176 populateKeyset(new GrundigVCR1(guiObject, counter++));
177 populateKeyset(new GrundigVCR1a(guiObject, counter++));
178 populateKeyset(new GrundigTV1(guiObject, counter++));
179 populateKeyset(new GrundigTV2(guiObject, counter++));
180 populateKeyset(new GrundigTV3(guiObject, counter++));
181 populateKeyset(new GrundigDVD1(guiObject, counter++));
183 populateKeyset(new HauppaugePCTV1(guiObject, counter++));
184 populateKeyset(new HauppaugePCTV1a(guiObject, counter++));
185 populateKeyset(new HauppaugePCTV1b(guiObject, counter++));
186 populateKeyset(new HauppaugePCTV1c(guiObject, counter++));
187 populateKeyset(new HauppaugePCTV2(guiObject, counter++));
189 populateKeyset(new HitachiTV1(guiObject, counter++));
190 populateKeyset(new HitachiTV1a(guiObject, counter++));
191 populateKeyset(new HitachiTV1b(guiObject, counter++));
192 populateKeyset(new HitachiTV1c(guiObject, counter++));
193 populateKeyset(new HitachiTV2(guiObject, counter++));
194 populateKeyset(new HitachiTV3(guiObject, counter++));
195 populateKeyset(new HitachiProjector(guiObject, counter++));
196 populateKeyset(new HitachiDVD1(guiObject, counter++));
197 populateKeyset(new HitachiAudio1(guiObject, counter++));
198 populateKeyset(new HitachiVCR1(guiObject, counter++));
200 populateKeyset(new HomecastReceiver1(guiObject, counter++));
201 populateKeyset(new HomecastReceiver2(guiObject, counter++));
203 populateKeyset(new JVCSat1(guiObject, counter++));
204 populateKeyset(new JVCSat2(guiObject, counter++));
205 populateKeyset(new JVCVCR1(guiObject, counter++));
206 populateKeyset(new JVCVCR1a(guiObject, counter++));
207 populateKeyset(new JVCVCRBmode1(guiObject, counter++));
208 populateKeyset(new JVCVCRBmode1a(guiObject, counter++));
209 populateKeyset(new JVCTV1(guiObject, counter++));
210 populateKeyset(new JVCTV1a(guiObject, counter++));
211 populateKeyset(new JVCTV1b(guiObject, counter++));
212 populateKeyset(new JVCTV1c(guiObject, counter++));
213 populateKeyset(new JVCTV1d(guiObject, counter++));
214 populateKeyset(new JVCDAT1(guiObject, counter++));
215 populateKeyset(new JVCCarDeck1(guiObject, counter++));
216 populateKeyset(new JVCAudio1(guiObject, counter++));
217 populateKeyset(new JVCAudio1a(guiObject, counter++));
218 populateKeyset(new JVCAudio1b(guiObject, counter++));
219 populateKeyset(new JVCAudio2(guiObject, counter++));
220 populateKeyset(new JVCDVD1(guiObject, counter++));
222 populateKeyset(new LGTV1(guiObject, counter++));
223 populateKeyset(new LGTV1a(guiObject, counter++));
224 populateKeyset(new LGTV1b(guiObject, counter++));
225 populateKeyset(new LGTV1c(guiObject, counter++));
226 populateKeyset(new LGTV2(guiObject, counter++));
227 populateKeyset(new LGTV2a(guiObject, counter++));
228 populateKeyset(new LGTV2b(guiObject, counter++));
229 populateKeyset(new LGDisc1(guiObject, counter++));
230 populateKeyset(new LGDisc2(guiObject, counter++));
231 populateKeyset(new LGDisc2a(guiObject, counter++));
232 populateKeyset(new LGVCR1(guiObject, counter++));
233 populateKeyset(new LGVCR1a(guiObject, counter++));
234 populateKeyset(new LGVCR1b(guiObject, counter++));
236 populateKeyset(new LogitechSpeakers(guiObject, counter++));
238 populateKeyset(new MagnavoxDVD1(guiObject, counter++));
239 populateKeyset(new MagnavoxVCR1(guiObject, counter++));
240 populateKeyset(new MagnavoxConverterBox1(guiObject, counter++));
241 populateKeyset(new MagnavoxTV1(guiObject, counter++));
243 populateKeyset(new MCERemote1(guiObject, counter++));
244 populateKeyset(new MCERemote1a(guiObject, counter++));
245 populateKeyset(new MCERemote1b(guiObject, counter++));
246 populateKeyset(new MCERemote1c(guiObject, counter++));
247 populateKeyset(new MCERemote1d(guiObject, counter++));
248 populateKeyset(new MCERemote1e(guiObject, counter++));
249 populateKeyset(new MCERemote1f(guiObject, counter++));
250 populateKeyset(new MCERemote1g(guiObject, counter++));
252 populateKeyset(new MitsubishiTV1(guiObject, counter++));
253 populateKeyset(new MitsubishiTV1a(guiObject, counter++));
254 populateKeyset(new MitsubishiVCR1(guiObject, counter++));
255 populateKeyset(new MitsubishiVCR1a(guiObject, counter++));
257 populateKeyset(new NokiaGenericVCR(guiObject, counter++));
259 populateKeyset(new PanasonicCarAudio(guiObject, counter++));
260 populateKeyset(new PanasonicSat1(guiObject, counter++));
261 populateKeyset(new PanasonicSat1a(guiObject, counter++));
262 populateKeyset(new PanasonicTV1(guiObject, counter++));
263 populateKeyset(new PanasonicTV1a(guiObject, counter++));
264 populateKeyset(new PanasonicTV1b(guiObject, counter++));
265 populateKeyset(new PanasonicVCR1(guiObject, counter++));
266 populateKeyset(new PanasonicVCR1a(guiObject, counter++));
267 populateKeyset(new PanasonicVCR1b(guiObject, counter++));
268 populateKeyset(new PanasonicVCR1c(guiObject, counter++));
269 populateKeyset(new PanasonicDVD1(guiObject, counter++));
270 populateKeyset(new PanasonicDVD1a(guiObject, counter++));
271 populateKeyset(new PanasonicAudio1(guiObject, counter++));
273 populateKeyset(new PhilcoTV(guiObject, counter++));
275 populateKeyset(new PhilipsTV1(guiObject, counter++));
276 populateKeyset(new PhilipsTV1a(guiObject, counter++));
277 populateKeyset(new PhilipsTV1b(guiObject, counter++));
278 populateKeyset(new PhilipsTV1c(guiObject, counter++));
279 populateKeyset(new PhilipsTV1d(guiObject, counter++));
280 populateKeyset(new PhilipsTV1e(guiObject, counter++));
281 populateKeyset(new PhilipsTV1f(guiObject, counter++));
282 populateKeyset(new PhilipsTV2(guiObject, counter++));
283 populateKeyset(new PhilipsTV2a(guiObject, counter++));
284 populateKeyset(new PhilipsTV2b(guiObject, counter++));
285 populateKeyset(new PhilipsTV3(guiObject, counter++));
286 populateKeyset(new PhilipsDVD1(guiObject, counter++));
287 populateKeyset(new PhilipsDVD1a(guiObject, counter++));
288 populateKeyset(new PhilipsDVD1b(guiObject, counter++));
289 populateKeyset(new PhilipsDVD1c(guiObject, counter++));
290 populateKeyset(new PhilipsDVD1d(guiObject, counter++));
291 populateKeyset(new PhilipsDVD2(guiObject, counter++));
292 populateKeyset(new PhilipsDVD3(guiObject, counter++));
293 populateKeyset(new PhilipsDVD3a(guiObject, counter++));
294 populateKeyset(new PhilipsDVD4(guiObject, counter++));
295 populateKeyset(new PhilipsVCR1(guiObject, counter++));
296 populateKeyset(new PhilipsVCR1a(guiObject, counter++));
297 populateKeyset(new PhilipsVCR1b(guiObject, counter++));
298 populateKeyset(new PhilipsVCR1c(guiObject, counter++));
299 populateKeyset(new PhilipsSat1(guiObject, counter++));
300 populateKeyset(new PhilipsSat2(guiObject, counter++));
301 populateKeyset(new PhilipsSat2a(guiObject, counter++));
302 populateKeyset(new PhilipsSat3(guiObject, counter++));
303 populateKeyset(new PhilipsAudio1(guiObject, counter++));
304 populateKeyset(new PhilipsAudio1a(guiObject, counter++));
305 populateKeyset(new PhilipsAudio1b(guiObject, counter++));
306 populateKeyset(new PhilipsAudio2(guiObject, counter++));
307 populateKeyset(new PhilipsAudio3(guiObject, counter++));
308 populateKeyset(new PhilipsAudio4(guiObject, counter++));
310 populateKeyset(new PinnaclePCTV1(guiObject, counter++));
311 populateKeyset(new PinnaclePCTV2(guiObject, counter++));
312 populateKeyset(new PinnaclePCTV3(guiObject, counter++));
314 populateKeyset(new PioneerTV1(guiObject, counter++));
315 populateKeyset(new PioneerTV2(guiObject, counter++));
316 populateKeyset(new PioneerTV3(guiObject, counter++));
317 populateKeyset(new PioneerAudio1(guiObject, counter++));
318 populateKeyset(new PioneerAudio1a(guiObject, counter++));
319 populateKeyset(new PioneerAudio2(guiObject, counter++));
320 populateKeyset(new PioneerAudio3(guiObject, counter++));
321 populateKeyset(new PioneerAudio4(guiObject, counter++));
322 populateKeyset(new PioneerAudio5(guiObject, counter++));
323 populateKeyset(new PioneerCD1(guiObject, counter++));
324 populateKeyset(new PioneerLaserDisc1(guiObject, counter++));
325 populateKeyset(new PioneerDVD1(guiObject, counter++));
327 populateKeyset(new RaiteDVD1(guiObject, counter++));
329 populateKeyset(new RCATV1(guiObject, counter++));
330 populateKeyset(new RCATV1a(guiObject, counter++));
331 populateKeyset(new RCATV1b(guiObject, counter++));
333 populateKeyset(new RCAAux1(guiObject, counter++));
334 populateKeyset(new RCAAux2(guiObject, counter++));
335 populateKeyset(new RCAAux2a(guiObject, counter++));
337 populateKeyset(new RCAVCR1(guiObject, counter++));
338 populateKeyset(new RCAVCR1a(guiObject, counter++));
339 populateKeyset(new RCADVD1(guiObject, counter++));
340 populateKeyset(new RCADVD1a(guiObject, counter++));
341 populateKeyset(new RCASat1(guiObject, counter++));
342 populateKeyset(new RCASat2(guiObject, counter++));
344 populateKeyset(new RokuBox1(guiObject, counter++));
345 populateKeyset(new RokuBox2(guiObject, counter++));
347 populateKeyset(new SabaTV1(guiObject, counter++));
348 populateKeyset(new SabaTV2(guiObject, counter++));
350 populateKeyset(new SagemTVBox1(guiObject, counter++));
351 populateKeyset(new SagemTVBox1a(guiObject, counter++));
353 populateKeyset(new SamsungTV1(guiObject, counter++));
354 populateKeyset(new SamsungTV1a(guiObject, counter++));
355 populateKeyset(new SamsungTV1b(guiObject, counter++));
356 populateKeyset(new SamsungTV1c(guiObject, counter++));
357 populateKeyset(new SamsungTV1d(guiObject, counter++));
358 populateKeyset(new SamsungTV1e(guiObject, counter++));
359 populateKeyset(new SamsungTV1f(guiObject, counter++));
360 populateKeyset(new SamsungTV2(guiObject, counter++));
361 populateKeyset(new SamsungTV2a(guiObject, counter++));
362 populateKeyset(new SamsungVCR1(guiObject, counter++));
363 populateKeyset(new SamsungVCR1a(guiObject, counter++));
364 populateKeyset(new SamsungVCR1b(guiObject, counter++));
365 populateKeyset(new SamsungVCR1c(guiObject, counter++));
366 populateKeyset(new SamsungVCR1d(guiObject, counter++));
367 populateKeyset(new SamsungVCR1e(guiObject, counter++));
368 populateKeyset(new SamsungDVD1(guiObject, counter++));
369 populateKeyset(new SamsungDVD1a(guiObject, counter++));
370 populateKeyset(new SamsungDVD1b(guiObject, counter++));
371 populateKeyset(new SamsungDVD2(guiObject, counter++));
372 populateKeyset(new SamsungAC1(guiObject, counter++));
374 populateKeyset(new SanyoVCR1(guiObject, counter++));
375 populateKeyset(new SanyoDVD1(guiObject, counter++));
376 populateKeyset(new SanyoTV1(guiObject, counter++));
377 populateKeyset(new SanyoTV1a(guiObject, counter++));
378 populateKeyset(new SanyoTV1b(guiObject, counter++));
379 populateKeyset(new SanyoTV1c(guiObject, counter++));
380 populateKeyset(new SanyoTV1d(guiObject, counter++));
381 populateKeyset(new SanyoProjector(guiObject, counter++));
383 populateKeyset(new SharpTV1(guiObject, counter++));
384 populateKeyset(new SharpTV1a(guiObject, counter++));
385 populateKeyset(new SharpTV1b(guiObject, counter++));
386 populateKeyset(new SharpTV1c(guiObject, counter++));
387 populateKeyset(new SharpTV1d(guiObject, counter++));
388 populateKeyset(new SharpTV1e(guiObject, counter++));
389 populateKeyset(new SharpVCR1(guiObject, counter++));
390 populateKeyset(new SharpReceiver1(guiObject, counter++));
392 populateKeyset(new SkyReceiver1(guiObject, counter++));
393 populateKeyset(new SkyReceiver1a(guiObject, counter++));
395 populateKeyset(new SonyTV1(guiObject, counter++));
396 populateKeyset(new SonyTV1a(guiObject, counter++));
397 populateKeyset(new SonyTV1b(guiObject, counter++));
398 populateKeyset(new SonyTV1c(guiObject, counter++));
399 populateKeyset(new SonyAmp1(guiObject, counter++));
400 populateKeyset(new SonyAmp2(guiObject, counter++));
401 populateKeyset(new SonyAudio1(guiObject, counter++));
402 populateKeyset(new SonyAudio1a(guiObject, counter++));
403 populateKeyset(new SonyDAT1(guiObject, counter++));
404 populateKeyset(new SonyDVD1(guiObject, counter++));
405 populateKeyset(new SonyDVD1a(guiObject, counter++));
406 populateKeyset(new SonyDVD1b(guiObject, counter++));
407 populateKeyset(new SonyDVD1c(guiObject, counter++));
408 populateKeyset(new SonyVCR1(guiObject, counter++));
409 populateKeyset(new SonyVCR1a(guiObject, counter++));
410 populateKeyset(new SonyVCR1b(guiObject, counter++));
411 populateKeyset(new SonyReceiver1(guiObject, counter++));
413 populateKeyset(new Tivo1(guiObject, counter++));
414 populateKeyset(new Tivo1a(guiObject, counter++));
415 populateKeyset(new Tivo1b(guiObject, counter++));
416 populateKeyset(new Tivo1c(guiObject, counter++));
417 populateKeyset(new Tivo1d(guiObject, counter++));
419 populateKeyset(new TopfieldPVR1(guiObject, counter++));
420 populateKeyset(new TopfieldSat1(guiObject, counter++));
422 populateKeyset(new ToshibaTV1(guiObject, counter++));
423 populateKeyset(new ToshibaTV1a(guiObject, counter++));
424 populateKeyset(new ToshibaTV1b(guiObject, counter++));
425 populateKeyset(new ToshibaTV1c(guiObject, counter++));
426 populateKeyset(new ToshibaTV1d(guiObject, counter++));
427 populateKeyset(new ToshibaTV1e(guiObject, counter++));
428 populateKeyset(new ToshibaTV1f(guiObject, counter++));
429 populateKeyset(new ToshibaTV1g(guiObject, counter++));
430 populateKeyset(new ToshibaTV1h(guiObject, counter++));
431 populateKeyset(new ToshibaVCR1(guiObject, counter++));
432 populateKeyset(new ToshibaVCR1a(guiObject, counter++));
433 populateKeyset(new ToshibaDisc1(guiObject, counter++));
434 populateKeyset(new ToshibaDisc1a(guiObject, counter++));
435 populateKeyset(new ToshibaDisc1b(guiObject, counter++));
436 populateKeyset(new ToshibaDisc1c(guiObject, counter++));
437 populateKeyset(new ToshibaDisc1d(guiObject, counter++));
439 populateKeyset(new WDMediaPlayer1(guiObject, counter++));
440 populateKeyset(new WDMediaPlayer1a(guiObject, counter++));
442 populateKeyset(new WestinghouseTV1(guiObject, counter++));
443 populateKeyset(new WestinghouseTV2(guiObject, counter++));
445 populateKeyset(new YamahaDVD1(guiObject, counter++));
446 populateKeyset(new YamahaDVD1a(guiObject, counter++));
447 populateKeyset(new YamahaAudio1(guiObject, counter++));
448 populateKeyset(new YamahaAudio1a(guiObject, counter++));
449 populateKeyset(new YamahaAudio2(guiObject, counter++));
450 populateKeyset(new YamahaAudio2a(guiObject, counter++));
451 populateKeyset(new YamahaAudio2b(guiObject, counter++));
452 populateKeyset(new YamahaAudio2c(guiObject, counter++));
453 populateKeyset(new YamahaAudio2d(guiObject, counter++));
454 populateKeyset(new YamahaAudio3(guiObject, counter++));
455 populateKeyset(new YamahaAudio4(guiObject, counter++));
456 populateKeyset(new YamahaTV1(guiObject, counter++));
457 populateKeyset(new YamahaKaraoke1(guiObject, counter++));
459 populateKeyset(new ZenithC32V37(guiObject, counter++));
461 // Start the thread running:
462 commandThread.start();
466 PIRKeysetManager::~PIRKeysetManager()
468 // Tell the keysets to stop doing any work:
470 QMutexLocker locker(&stopRepeatingMutex);
471 stopRepeatingFlag = true;
474 // Tell the thread that we want it to stop:
475 commandThread.exit();
477 // Wait for the thread to stop:
478 commandThread.wait();
480 // Delete all the keysets:
481 PIRKeysetCollection::iterator i = keysetsInfo.begin();
482 while (i != keysetsInfo.end())
484 if ((*i).second) delete (*i).second;
490 bool PIRKeysetManager::keysetExists(
491 unsigned int keysetID) const
493 PIRKeysetCollection::const_iterator i = keysetsInfo.find(keysetID);
495 return (i != keysetsInfo.end());
499 bool PIRKeysetManager::findKeysetID(
502 unsigned int &id) const
504 // Only modify the id if we actually find a match!
506 PIRKeysetMakeIndex::const_iterator i = makeIndex.find(make);
507 if (i == makeIndex.end())
512 PIRKeysetNameIndex::const_iterator ii = (*i).second.find(name);
513 if (ii == (*i).second.end())
518 // Ok, we've found it, pull out the id:
524 PIRKeysetWidgetItem *PIRKeysetManager::makeKeysetItem(
530 if (!findKeysetID(make, name, id))
535 QString fullname = make;
536 fullname.append(" ");
537 fullname.append(name);
539 return new PIRKeysetWidgetItem(fullname, id, getMake(id));
543 bool PIRKeysetManager::hasKey(
544 unsigned int keysetID,
545 PIRKeyName name) const
547 PIRKeysetCollection::const_iterator i = keysetsInfo.find(keysetID);
549 if ((i == keysetsInfo.end()) || !i->second) return false;
551 return i->second->hasKey(name);
555 PIRMakeName PIRKeysetManager::getMake(
556 unsigned int keysetID) const
558 PIRKeysetCollection::const_iterator i = keysetsInfo.find(keysetID);
560 if ((i == keysetsInfo.end()) || !i->second) return Any_Make;
562 return i->second->getMake();
566 QString PIRKeysetManager::getDisplayName(
567 unsigned int keysetID) const
569 PIRKeysetCollection::const_iterator i = keysetsInfo.find(keysetID);
571 if ((i == keysetsInfo.end()) || !i->second)
572 return QString("Database Error");
574 return QString(i->second->getKeysetName());
578 void PIRKeysetManager::populateKeyset(
579 PIRKeysetMetaData *keyset)
581 // Set up the keyset collection:
582 keysetsInfo[keyset->getID()] = keyset;
584 keyset->moveProtocolToThread(&commandThread);
586 // Also, set up a name-based index into the collection:
588 [QString(makeManager.getMakeString(keyset->getMake()))]
589 [QString(keyset->getKeysetName())]
594 void PIRKeysetManager::populateGuiWidget(
595 PIRSelectKeysetForm *skf) const
598 PIRKeysetWidgetItem *kwi;
600 PIRKeysetCollection::const_iterator i = keysetsInfo.begin();
602 while (i != keysetsInfo.end())
604 make = i->second->getMake();
605 QString tempString = makeManager.getMakeString(make);
606 tempString.append(" ");
607 tempString.append(i->second->getKeysetName());
608 kwi = new PIRKeysetWidgetItem(tempString, i->first, make);
609 i->second->populateDeviceTypes(kwi);
610 skf->addWidgetItem(kwi);
616 void PIRKeysetManager::populateDeviceTypes(
617 PIRKeysetWidgetItem *kwi,
618 unsigned int keysetID) const
620 PIRKeysetCollection::const_iterator i = keysetsInfo.find(keysetID);
621 if ((i != keysetsInfo.end()) && i->second)
623 i->second->populateDeviceTypes(kwi);