b0e5bed78f2a2e95b4e7823b47e9902de2e3397e
[pierogi] / pirkeysetmetadata.cpp
1 #include "pirkeysetmetadata.h"
2 #include "pirselectdeviceform.h"
3 #include "pirkeysetwidgetitem.h"
4 #include "protocols/pirprotocol.h"
5
6 #include <iostream>
7
8 // Global helper object:
9 extern PIRMakeMgr makeManager;
10
11 // Static member definition:
12 PIRDeviceCollection PIRKeysetMetaData::controlledDevices;
13
14 PIRKeysetMetaData::PIRKeysetMetaData(
15   const char *r,
16   PIRMakeName m,
17   unsigned int i)
18   : threadableProtocol(NULL),
19     index(i),
20     keysetName(r),
21     make(m)
22 {
23 }
24
25 bool PIRKeysetMetaData::hasKey(
26   PIRKeyName name) const
27 {
28   return (keys.find(name) != keys.end());
29 }
30
31
32 void PIRKeysetMetaData::moveToThread(
33   QThread *thread)
34 {
35   if (threadableProtocol)
36   {
37     // Do I need some error checking here?
38     threadableProtocol->moveToThread(thread);
39   }
40 }
41
42
43 void PIRKeysetMetaData::populateDevices(
44   PIRSelectDeviceForm *sdf)
45 {
46   PIRKeysetWidgetItem *kwi;
47
48   PIRDeviceCollection::const_iterator i = controlledDevices.begin();
49
50   while (i != controlledDevices.end())
51   {
52     // Create a widget for the keyset:
53     QString tempString = makeManager.getMakeString(i->first.make);
54     tempString.append(" ");
55     tempString.append(i->first.model);
56
57     kwi = new PIRKeysetWidgetItem(
58       tempString, i->second, i->first.make, i->first.type);
59
60     sdf->addWidgetItem(kwi);
61
62     ++i;
63   }
64 }
65
66
67 unsigned int PIRKeysetMetaData::getID() const
68 {
69   return index;
70 }
71
72
73 PIRMakeName PIRKeysetMetaData::getMake() const
74 {
75   return make;
76 }
77
78 const char *PIRKeysetMetaData::getKeysetName() const
79 {
80   return keysetName;
81 }
82
83
84 void PIRKeysetMetaData::addControlledDevice(
85   PIRMakeName make,
86   const char *model,
87   PIRDeviceTypeName type)
88 {
89   controlledDevices.insert(
90     PIRDCPair(
91       DeviceInfo(make, model, type),
92       index));
93 }
94
95
96 void PIRKeysetMetaData::addKey(
97   const char *name,
98   PIRKeyName key,
99   unsigned long data,
100   unsigned int size)
101 {
102   // Don't have a system for the unmapped keys yet!
103   if (key != Unmapped_Key)
104   {
105     keys[key] = name;
106
107     threadableProtocol->addKey(key, data, size);
108   }
109 }
110
111
112 void PIRKeysetMetaData::addSIRC12Key(
113   const char *name,
114   PIRKeyName key,
115   unsigned int addressData,
116   unsigned int commandData)
117 {
118   if (key != Unmapped_Key)
119   {
120     keys[key] = name;
121     threadableProtocol->addSIRCKey(key, addressData, 5, commandData);
122   }
123 }
124
125
126 void PIRKeysetMetaData::addSIRC15Key(
127   const char *name,
128   PIRKeyName key,
129   unsigned int addressData,
130   unsigned int commandData)
131 {
132   if (key != Unmapped_Key)
133   {
134     keys[key] = name;
135     threadableProtocol->addSIRCKey(key, addressData, 8, commandData);
136   }
137 }
138
139
140 void PIRKeysetMetaData::addSIRC20Key(
141   const char *name,
142   PIRKeyName key,
143   unsigned int secondaryAddressData,
144   unsigned int primaryAddressData,
145   unsigned int commandData)
146 {
147   if (key != Unmapped_Key)
148   {
149     keys[key] = name;
150     threadableProtocol->addSIRC20Key(
151       key, secondaryAddressData, primaryAddressData, commandData);
152   }
153 }
154
155
156 void PIRKeysetMetaData::addSharpKey(
157   const char *name,
158   PIRKeyName key,
159   unsigned int addressData,
160   unsigned int commandData)
161 {
162   if (key != Unmapped_Key)
163   {
164     keys[key] = name;
165     threadableProtocol->addSharpKey(key, addressData, commandData);
166   }
167 }
168
169
170 void PIRKeysetMetaData::addNECKey(
171   const char *name,
172   PIRKeyName key,
173   unsigned int addressData,
174   unsigned int commandData)
175 {
176   if (key != Unmapped_Key)
177   {
178     keys[key] = name;
179     threadableProtocol->addNECKey(key, addressData, commandData);
180   }
181 }
182
183
184 void PIRKeysetMetaData::addPioneerKey(
185   const char *name,
186   PIRKeyName key,
187   unsigned int addressOne,
188   unsigned int commandOne,
189   unsigned int addressTwo,
190   unsigned int commandTwo)
191 {
192   if (key != Unmapped_Key)
193   {
194     keys[key] = name;
195     threadableProtocol->addPioneerKey(
196       key, addressOne, commandOne, addressTwo, commandTwo);
197   }
198 }
199
200
201 /*
202 void PIRKeysetMetaData::addRCAKey(
203   const char *name,
204   PIRKeyName key,
205   unsigned int addressData,
206   unsigned int commandData)
207 {
208   if (key != Unmapped_Key)
209   {
210     keys[key] = name;
211     threadableProtocol->addPioneerKey(
212       key, addressData, commandData);
213   }
214 }
215 */
216
217
218 void PIRKeysetMetaData::addKaseikyoKey(
219   const char *name,
220   PIRKeyName key,
221   unsigned int addressData,
222   unsigned int commandData)
223 {
224   if (key != Unmapped_Key)
225   {
226     keys[key] = name;
227     threadableProtocol->addKaseikyoKey(key, addressData, commandData);
228   }
229 }
230
231
232 void PIRKeysetMetaData::addDishKey(
233   const char *name,
234   PIRKeyName key,
235   unsigned int firstCommand,
236   unsigned int secondCommand)
237 {
238   if (key != Unmapped_Key)
239   {
240     keys[key] = name;
241     threadableProtocol->addDishKey(key, firstCommand, secondCommand);
242   }
243 }
244
245
246 void PIRKeysetMetaData::setPreData(
247   unsigned long data,
248   unsigned int bits)
249 {
250   threadableProtocol->setPreData(data, bits);
251 }
252
253
254 void PIRKeysetMetaData::setPostData(
255   unsigned long data,
256   unsigned int bits)
257 {
258   threadableProtocol->setPostData(data, bits);
259 }
260
261
262 void PIRKeysetMetaData::setKeysetName(
263   const char *n)
264 {
265   keysetName = n;
266 }