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;
13 class PIRKeysetWidgetItem;
14 class PIRProtocol;
16 typedef std::map<PIRKeyName, const char *> KeyCollection;
18 class DeviceInfo
19 {
20 public:
21   DeviceInfo(
22     PIRMakeName ma,
23     const char *mo,
24     PIRDeviceTypeName t)
25   : make(ma),
26     model(mo),
27     type(t)
28   {}
30   PIRMakeName make;
31   const char *model;
32   PIRDeviceTypeName type;
33 };
35 typedef std::list<DeviceInfo> DeviceCollection;
37 class PIRKeysetMetaData
38 {
39 public:
40   PIRKeysetMetaData(
41     const char *keysetName,
42     PIRMakeName make,
43     unsigned int index);
45   bool hasKey(
46     PIRKeyName name) const;
48   unsigned int getID() const;
50   PIRMakeName getMake() const;
52   const char *getKeysetName() const;
54   void moveProtocolToThread(
55     QThread *thread);
57   void populateDeviceTypes(
58     PIRKeysetWidgetItem *kwi) const;
60 protected:
61   void addControlledDevice(
62     PIRMakeName make,
63     const char *model,
64     PIRDeviceTypeName type);
66   void addDeviceType(
67     PIRDeviceTypeName n);
69   void addKey(
70     const char *name,
71     PIRKeyName key,
72     unsigned long data,
73     unsigned int size);
75   // Special helper methods for SIRC keys:
76   void addSIRC12Key(
77     const char *name,
78     PIRKeyName key,
79     unsigned int addressData,
80     unsigned int commandData);
82   void addSIRC15Key(
83     const char *name,
84     PIRKeyName key,
85     unsigned int addressData,
86     unsigned int commandData);
88   void addSIRC20Key(
89     const char *name,
90     PIRKeyName key,
91     unsigned int secondaryAddressData,
92     unsigned int primaryAddressData,
93     unsigned int commandData);
95   // Helper method for Sharp keys:
96   void addSharpKey(
97     const char *name,
98     PIRKeyName key,
99     unsigned int addressData,
100     unsigned int commandData);
102   void addNECKey(
103     const char *name,
104     PIRKeyName key,
105     unsigned int addressData,
106     unsigned int commandData);
108   void addPioneerKey(
109     const char *name,
110     PIRKeyName key,
111     unsigned int addressOne,
112     unsigned int commandOne,
113     unsigned int addressTwo,
114     unsigned int commandTwo);
116 /*
117   void addRCAKey(
118     const char *name,
119     PIRKeyName key,
120     unsigned int addressData,
121     unsigned int commandData);
122 */
124   void addKaseikyoKey(
125     const char *name,
126     PIRKeyName key,
127     unsigned int addressData,
128     unsigned int commandData);
130   void setPreData(
131     unsigned long data,
132     unsigned int bits);
134   void setPostData(
135     unsigned long data,
136     unsigned int bits);
138   KeyCollection keys;
140   DeviceCollection controlledDevices;
142   PIRProtocol *threadableProtocol;
144   void setKeysetName(
145     const char *name);
147 private:
148   const char *keysetName;
149   PIRMakeName make;
150   PIRDeviceTypeCollection deviceTypes;
152   unsigned int id;
153 };
156 #endif // PIRKEYSETMETADATA_H

Terms of Use    Privacy Policy    Contribution Guidelines    Feedback

Powered By GForge Collaborative Development Environment