Log In
New Account
  
Home My Page Project Cloud Code Snippets Project Openings Pierogi
Summary Forums Tracker Lists Tasks Docs News SCM Files
1 #ifndef PIRKEYSETMETADATA_H
2 #define PIRKEYSETMETADATA_H
4 #include "pirkeynames.h"
5 #include "pirmakenames.h"
6 #include "pirdevicetypenames.h"
8 #include <map>
9 #include <list>
11 class QThread;
12 class QObject;
14 class PIRKeysetWidgetItem;
15 class PIRProtocol;
17 typedef std::map<PIRKeyName, const char *> KeyCollection;
19 class DeviceInfo
20 {
21 public:
22   DeviceInfo(
23     PIRMakeName ma,
24     const char *mo,
25     PIRDeviceTypeName t)
26   : make(ma),
27     model(mo),
28     type(t)
29   {}
31   PIRMakeName make;
32   const char *model;
33   PIRDeviceTypeName type;
34 };
36 typedef std::list<DeviceInfo> DeviceCollection;
38 class PIRKeysetMetaData
39 {
40 public:
41   PIRKeysetMetaData(
42     const char *keysetName,
43     PIRMakeName make,
44     unsigned int index);
46   bool hasKey(
47     PIRKeyName name) const;
49   unsigned int getID() const;
51   PIRMakeName getMake() const;
53   const char *getKeysetName() const;
55   virtual void populateProtocol(
56     QObject *guiObject) = 0;
58   void moveToThread(
59     QThread *thread);
61   void populateDeviceTypes(
62     PIRKeysetWidgetItem *kwi) const;
64 protected:
65   void addControlledDevice(
66     PIRMakeName make,
67     const char *model,
68     PIRDeviceTypeName type);
70   void addDeviceType(
71     PIRDeviceTypeName n);
73   void addKey(
74     const char *name,
75     PIRKeyName key,
76     unsigned long data,
77     unsigned int size);
79   // Special helper methods for SIRC keys:
80   void addSIRC12Key(
81     const char *name,
82     PIRKeyName key,
83     unsigned int addressData,
84     unsigned int commandData);
86   void addSIRC15Key(
87     const char *name,
88     PIRKeyName key,
89     unsigned int addressData,
90     unsigned int commandData);
92   void addSIRC20Key(
93     const char *name,
94     PIRKeyName key,
95     unsigned int secondaryAddressData,
96     unsigned int primaryAddressData,
97     unsigned int commandData);
99   // Helper method for Sharp keys:
100   void addSharpKey(
101     const char *name,
102     PIRKeyName key,
103     unsigned int addressData,
104     unsigned int commandData);
106   void addNECKey(
107     const char *name,
108     PIRKeyName key,
109     unsigned int addressData,
110     unsigned int commandData);
112   void addPioneerKey(
113     const char *name,
114     PIRKeyName key,
115     unsigned int addressOne,
116     unsigned int commandOne,
117     unsigned int addressTwo,
118     unsigned int commandTwo);
120 /*
121   void addRCAKey(
122     const char *name,
123     PIRKeyName key,
124     unsigned int addressData,
125     unsigned int commandData);
126 */
128   void addKaseikyoKey(
129     const char *name,
130     PIRKeyName key,
131     unsigned int addressData,
132     unsigned int commandData);
134   void addDishKey(
135     const char *name,
136     PIRKeyName key,
137     unsigned int firstCommand,
138     unsigned int secondCommand);
140   void setPreData(
141     unsigned long data,
142     unsigned int bits);
144   void setPostData(
145     unsigned long data,
146     unsigned int bits);
148   void setKeysetName(
149     const char *name);
151   KeyCollection keys;
153   DeviceCollection controlledDevices;
155   PIRProtocol *threadableProtocol;
156   unsigned int index;
158 private:
159   const char *keysetName;
160   PIRMakeName make;
161   PIRDeviceTypeCollection deviceTypes;
162 };
165 #endif // PIRKEYSETMETADATA_H

Terms of Use    Privacy Policy    Contribution Guidelines    Feedback

Powered By GForge Collaborative Development Environment