Advanced Settings Panel
[pierogi] / pirkeysetmanager.h
index e610ef6..f8d0f49 100644 (file)
@@ -1,52 +1,97 @@
 #ifndef PIRKEYSETMANAGER_H
 #define PIRKEYSETMANAGER_H
 
-#include "pirkeysetmetadata.h"
-//#include "protocol.h"
 #include "pirkeynames.h"
-//#include "selectionwindow.h"
-#include "pirselectkeysetform.h"
-#include "pirkeysetwidgetitem.h"
+#include "pirmakenames.h"
 
-//#include <QtCore/QCoreApplication>
+#include <QString>
 #include <QThread>
-//#include <QStringList>
+
+class QObject;
+class PIRSelectKeysetForm;
+class PIRSelectDeviceForm;
+class PIRFavoritesDialog;
+class PIRKeysetWidgetItem;
 
 #include <map>
+class PIRKeysetMetaData;
+
+typedef std::map<unsigned int, PIRKeysetMetaData *> PIRKeysetCollection;
 
-typedef std::map<int, PIRKeysetMetaData *> PIRKeysetCollection;
+// Maps used to locate metadata using QSettings values:
+typedef std::map<QString, unsigned int> PIRKeysetNameIndex;
+typedef std::map<QString, PIRKeysetNameIndex> PIRKeysetMakeIndex;
 
 class PIRKeysetManager
 {
 public:
-  PIRKeysetManager(
-    QObject *guiObject);
+  PIRKeysetManager();
 
   ~PIRKeysetManager();
 
-  void populateGuiWidget(
-    PIRSelectKeysetForm *widget);
+  void populateListWidgets(
+    PIRSelectKeysetForm *skf,
+    PIRFavoritesDialog *fd) const;
+
+  bool keysetExists(
+    unsigned int keysetID) const;
+
+  bool findKeysetID(
+    QString make,
+    QString name,
+    unsigned int &id) const;
+
+  PIRKeysetWidgetItem *makeKeysetItem(
+    QString make,
+    QString name) const;
 
   bool hasKey(
-    int keysetID,
-    PIRKeyName name);
+    unsigned int keysetID,
+    PIRKeyName name) const;
 
   PIRMakeName getMake(
-    int keysetID);
+    unsigned int keysetID) const;
 
   QString getDisplayName(
-    int keysetID);
+    unsigned int keysetID) const;
 
+/*
   void populateDeviceTypes(
     PIRKeysetWidgetItem *kwi,
-    int keysetID);
+    unsigned int keysetID) const;
+*/
 
-private:
-  // This needs to be improved:
   void populateKeyset(
+    QObject *guiObject,
+    unsigned int keysetID);
+
+  bool clearKeyset(
+    unsigned int keysetID);
+
+  void populateFavorites(
+    PIRFavoritesDialog *favoritesDialog,
+    PIRSelectKeysetForm *keysetForm);
+
+  unsigned int getCarrierFrequency(
+    unsigned int keysetID);
+
+  void setCarrierFrequency(
+    unsigned int carrierFrequency,
+    unsigned int keysetID);
+
+  unsigned int getDutyCycle(
+    unsigned int keysetID);
+
+  void setDutyCycle(
+    unsigned int dutyCycle,
+    unsigned int keysetID);
+
+private:
+  void setupKeyset(
     PIRKeysetMetaData *keyset);
 
   PIRKeysetCollection keysetsInfo;
+  PIRKeysetMakeIndex makeIndex;
 
   // The counter will be used to generate unique ids for each keyset:
   unsigned int counter;