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