Missed one file
[pierogi] / pirkeysetmetadata.h
1 #ifndef PIRKEYSETMETADATA_H
2 #define PIRKEYSETMETADATA_H
3
4 #include "pirkeynames.h"
5 #include "pirmakenames.h"
6 //#include "pirdevicetypenames.h"
7
8 #include "pirdeviceinfo.h"
9
10 #include <map>
11 //#include <list>
12
13 class QThread;
14 class QObject;
15
16 class PIRSelectDeviceForm;
17 class PIRProtocol;
18
19 typedef std::map<PIRKeyName, const char *> KeyCollection;
20
21
22 class PIRKeysetMetaData
23 {
24 public:
25   PIRKeysetMetaData(
26     const char *keysetName,
27     PIRMakeName make,
28     unsigned int index);
29
30   bool hasKey(
31     PIRKeyName name) const;
32
33   unsigned int getID() const;
34
35   PIRMakeName getMake() const;
36
37   const char *getKeysetName() const;
38
39   virtual void populateProtocol(
40     QObject *guiObject) = 0;
41
42   void clearProtocol();
43
44   void moveToThread(
45     QThread *thread);
46
47   static void populateDevices(
48     PIRSelectDeviceForm *sdf);
49
50 protected:
51   void addControlledDevice(
52     PIRMakeName make,
53     const char *model,
54     PIRDeviceTypeName type);
55
56   void addDeviceType(
57     PIRDeviceTypeName n);
58
59   void addKey(
60     const char *name,
61     PIRKeyName key,
62     unsigned long data,
63     unsigned int size);
64
65   // Special helper methods for SIRC keys:
66   void addSIRC12Key(
67     const char *name,
68     PIRKeyName key,
69     unsigned int addressData,
70     unsigned int commandData);
71
72   void addSIRC15Key(
73     const char *name,
74     PIRKeyName key,
75     unsigned int addressData,
76     unsigned int commandData);
77
78   void addSIRC20Key(
79     const char *name,
80     PIRKeyName key,
81     unsigned int secondaryAddressData,
82     unsigned int primaryAddressData,
83     unsigned int commandData);
84
85   // Helper method for Sharp keys:
86   void addSharpKey(
87     const char *name,
88     PIRKeyName key,
89     unsigned int addressData,
90     unsigned int commandData);
91
92   void addNECKey(
93     const char *name,
94     PIRKeyName key,
95     unsigned int addressData,
96     unsigned int commandData);
97
98   void addPanOldKey(
99     const char *name,
100     PIRKeyName key,
101     unsigned int addressData,
102     unsigned int commandData);
103
104   void addPioneerKey(
105     const char *name,
106     PIRKeyName key,
107     unsigned int addressOne,
108     unsigned int commandOne,
109     unsigned int addressTwo,
110     unsigned int commandTwo);
111
112 /*
113   void addRCAKey(
114     const char *name,
115     PIRKeyName key,
116     unsigned int addressData,
117     unsigned int commandData);
118 */
119
120   void addKaseikyoKey(
121     const char *name,
122     PIRKeyName key,
123     unsigned int addressData,
124     unsigned int commandData);
125
126   void addDishKey(
127     const char *name,
128     PIRKeyName key,
129     unsigned int firstCommand,
130     unsigned int secondCommand);
131
132   void addXMPKey(
133     const char *name,
134     PIRKeyName key,
135     unsigned int firstCommand,
136     unsigned int secondCommand);
137
138   void setPreData(
139     unsigned long data,
140     unsigned int bits);
141
142   void setPostData(
143     unsigned long data,
144     unsigned int bits);
145
146   void setKeysetName(
147     const char *name);
148
149   KeyCollection keys;
150
151   PIRProtocol *threadableProtocol;
152   unsigned int index;
153
154 private:
155   const char *keysetName;
156   PIRMakeName make;
157   static PIRDeviceCollection controlledDevices;
158 //  PIRDeviceTypeCollection deviceTypes;
159 };
160
161
162 #endif // PIRKEYSETMETADATA_H