1 #include "pirkeysetmetadata.h"
2 #include "pirselectdeviceform.h"
3 #include "pirkeysetwidgetitem.h"
4 #include "protocols/pirprotocol.h"
8 // Global helper object:
9 extern PIRMakeMgr makeManager;
11 // Static member definition:
12 PIRDeviceCollection PIRKeysetMetaData::controlledDevices;
14 // Thread synchronization stuff:
15 extern bool commandInFlight;
17 PIRKeysetMetaData::PIRKeysetMetaData(
21 : threadableProtocol(NULL),
29 PIRKeysetMetaData::~PIRKeysetMetaData()
35 bool PIRKeysetMetaData::hasKey(
36 PIRKeyName name) const
38 return (keys.find(name) != keys.end());
42 void PIRKeysetMetaData::moveToThread(
45 if (threadableProtocol)
47 // Do I need some error checking here?
48 threadableProtocol->moveToThread(thread);
53 void PIRKeysetMetaData::populateDevices(
54 PIRSelectDeviceForm *sdf)
56 PIRKeysetWidgetItem *kwi;
58 PIRDeviceCollection::const_iterator i = controlledDevices.begin();
60 while (i != controlledDevices.end())
62 // Create a widget for the keyset:
63 QString tempString = makeManager.getMakeString(i->first.make);
64 tempString.append(" ");
65 tempString.append(i->first.model);
67 kwi = new PIRKeysetWidgetItem(
68 tempString, i->first.model, i->second, i->first.make, i->first.type);
70 sdf->addWidgetItem(kwi);
77 unsigned int PIRKeysetMetaData::getID() const
83 PIRMakeName PIRKeysetMetaData::getMake() const
88 const char *PIRKeysetMetaData::getKeysetName() const
94 unsigned int PIRKeysetMetaData::getCarrierFrequency() const
96 if (!threadableProtocol)
101 return threadableProtocol->getCarrierFrequency();
105 void PIRKeysetMetaData::setCarrierFrequency(
106 unsigned int carrierFrequency)
108 if (!threadableProtocol)
113 threadableProtocol->setCarrierFrequency(carrierFrequency);
117 unsigned int PIRKeysetMetaData::getDutyCycle() const
119 if (!threadableProtocol)
124 return threadableProtocol->getDutyCycle();
128 void PIRKeysetMetaData::setDutyCycle(
129 unsigned int dutyCycle)
131 if (!threadableProtocol)
136 threadableProtocol->setDutyCycle(dutyCycle);
140 void PIRKeysetMetaData::addControlledDevice(
143 PIRDeviceTypeName type)
145 controlledDevices.insert(
147 DeviceInfo(make, model, type),
152 void PIRKeysetMetaData::addKey(
158 // Don't have a system for the unmapped keys yet!
159 if (key != Unmapped_Key)
163 threadableProtocol->addKey(key, data, size);
168 void PIRKeysetMetaData::addSIRC12Key(
171 unsigned int addressData,
172 unsigned int commandData)
174 if (key != Unmapped_Key)
177 threadableProtocol->addSIRCKey(key, addressData, 5, commandData);
182 void PIRKeysetMetaData::addSIRC15Key(
185 unsigned int addressData,
186 unsigned int commandData)
188 if (key != Unmapped_Key)
191 threadableProtocol->addSIRCKey(key, addressData, 8, commandData);
196 void PIRKeysetMetaData::addSIRC20Key(
199 unsigned int secondaryAddressData,
200 unsigned int primaryAddressData,
201 unsigned int commandData)
203 if (key != Unmapped_Key)
206 threadableProtocol->addSIRC20Key(
207 key, secondaryAddressData, primaryAddressData, commandData);
212 void PIRKeysetMetaData::addSharpKey(
215 unsigned int addressData,
216 unsigned int commandData)
218 if (key != Unmapped_Key)
221 threadableProtocol->addSharpKey(key, addressData, commandData);
226 void PIRKeysetMetaData::addNECKey(
229 unsigned int addressData,
230 unsigned int commandData)
232 if (key != Unmapped_Key)
235 threadableProtocol->addNECKey(key, addressData, commandData);
240 void PIRKeysetMetaData::addPanOldKey(
243 unsigned int addressData,
244 unsigned int commandData)
246 if (key != Unmapped_Key)
249 threadableProtocol->addPanOldKey(key, addressData, commandData);
254 void PIRKeysetMetaData::addPioneerKey(
257 unsigned int addressOne,
258 unsigned int commandOne,
259 unsigned int addressTwo,
260 unsigned int commandTwo)
262 if (key != Unmapped_Key)
265 threadableProtocol->addPioneerKey(
266 key, addressOne, commandOne, addressTwo, commandTwo);
272 void PIRKeysetMetaData::addRCAKey(
275 unsigned int addressData,
276 unsigned int commandData)
278 if (key != Unmapped_Key)
281 threadableProtocol->addPioneerKey(
282 key, addressData, commandData);
288 void PIRKeysetMetaData::addKaseikyoKey(
291 unsigned int addressData,
292 unsigned int commandData)
294 if (key != Unmapped_Key)
297 threadableProtocol->addKaseikyoKey(key, addressData, commandData);
302 void PIRKeysetMetaData::addDishKey(
305 unsigned int firstCommand,
306 unsigned int secondCommand)
308 if (key != Unmapped_Key)
311 threadableProtocol->addDishKey(key, firstCommand, secondCommand);
316 void PIRKeysetMetaData::addXMPKey(
319 unsigned int firstCommand,
320 unsigned int secondCommand)
322 if (key != Unmapped_Key)
325 threadableProtocol->addXMPKey(key, firstCommand, secondCommand);
330 void PIRKeysetMetaData::setPreData(
334 threadableProtocol->setPreData(data, bits);
338 void PIRKeysetMetaData::setPostData(
342 threadableProtocol->setPostData(data, bits);
346 void PIRKeysetMetaData::setKeysetName(
353 bool PIRKeysetMetaData::clearProtocol()
355 if (!threadableProtocol)
359 else if (!commandInFlight)
361 delete threadableProtocol;
362 threadableProtocol = 0;