Advanced Settings Panel
[pierogi] / pirkeysetmanager.h
1 #ifndef PIRKEYSETMANAGER_H
2 #define PIRKEYSETMANAGER_H
3
4 #include "pirkeynames.h"
5 #include "pirmakenames.h"
6
7 #include <QString>
8 #include <QThread>
9
10 class QObject;
11 class PIRSelectKeysetForm;
12 class PIRSelectDeviceForm;
13 class PIRFavoritesDialog;
14 class PIRKeysetWidgetItem;
15
16 #include <map>
17 class PIRKeysetMetaData;
18
19 typedef std::map<unsigned int, PIRKeysetMetaData *> PIRKeysetCollection;
20
21 // Maps used to locate metadata using QSettings values:
22 typedef std::map<QString, unsigned int> PIRKeysetNameIndex;
23 typedef std::map<QString, PIRKeysetNameIndex> PIRKeysetMakeIndex;
24
25 class PIRKeysetManager
26 {
27 public:
28   PIRKeysetManager();
29
30   ~PIRKeysetManager();
31
32   void populateListWidgets(
33     PIRSelectKeysetForm *skf,
34     PIRFavoritesDialog *fd) const;
35
36   bool keysetExists(
37     unsigned int keysetID) const;
38
39   bool findKeysetID(
40     QString make,
41     QString name,
42     unsigned int &id) const;
43
44   PIRKeysetWidgetItem *makeKeysetItem(
45     QString make,
46     QString name) const;
47
48   bool hasKey(
49     unsigned int keysetID,
50     PIRKeyName name) const;
51
52   PIRMakeName getMake(
53     unsigned int keysetID) const;
54
55   QString getDisplayName(
56     unsigned int keysetID) const;
57
58 /*
59   void populateDeviceTypes(
60     PIRKeysetWidgetItem *kwi,
61     unsigned int keysetID) const;
62 */
63
64   void populateKeyset(
65     QObject *guiObject,
66     unsigned int keysetID);
67
68   bool clearKeyset(
69     unsigned int keysetID);
70
71   void populateFavorites(
72     PIRFavoritesDialog *favoritesDialog,
73     PIRSelectKeysetForm *keysetForm);
74
75   unsigned int getCarrierFrequency(
76     unsigned int keysetID);
77
78   void setCarrierFrequency(
79     unsigned int carrierFrequency,
80     unsigned int keysetID);
81
82   unsigned int getDutyCycle(
83     unsigned int keysetID);
84
85   void setDutyCycle(
86     unsigned int dutyCycle,
87     unsigned int keysetID);
88
89 private:
90   void setupKeyset(
91     PIRKeysetMetaData *keyset);
92
93   PIRKeysetCollection keysetsInfo;
94   PIRKeysetMakeIndex makeIndex;
95
96   // The counter will be used to generate unique ids for each keyset:
97   unsigned int counter;
98
99   QThread commandThread;
100 };
101
102 #endif // PIRKEYSETMANAGER_H