New GUI, many changes
[pierogi] / pirkeysetmetadata.cpp
index 1c755a2..f7076a6 100644 (file)
@@ -1,17 +1,22 @@
 #include "pirkeysetmetadata.h"
+#include "pirselectdeviceform.h"
 #include "pirkeysetwidgetitem.h"
 #include "protocols/pirprotocol.h"
 
 #include <iostream>
 
+// Global helper objects:
+extern PIRMakeMgr makeManager;
+//extern PIRDeviceTypeMgr deviceManager;
 
 PIRKeysetMetaData::PIRKeysetMetaData(
   const char *r,
   PIRMakeName m,
   unsigned int i)
-  : keysetName(r),
-    make(m),
-    id(i)
+  : threadableProtocol(NULL),
+    index(i),
+    keysetName(r),
+    make(m)
 {
 }
 
@@ -22,20 +27,34 @@ bool PIRKeysetMetaData::hasKey(
 }
 
 
-void PIRKeysetMetaData::moveProtocolToThread(
+void PIRKeysetMetaData::moveToThread(
   QThread *thread)
 {
-  threadableProtocol->moveToThread(thread);
+  if (threadableProtocol)
+  {
+    // Do I need some error checking here?
+    threadableProtocol->moveToThread(thread);
+  }
 }
 
 
-void PIRKeysetMetaData::populateDeviceTypes(
-  PIRKeysetWidgetItem *kwi) const
+void PIRKeysetMetaData::populateDevices(
+  unsigned int id,
+  PIRSelectDeviceForm *sdf) const
 {
-  PIRDeviceTypeCollection::const_iterator i = deviceTypes.begin();
-  while (i != deviceTypes.end())
+  PIRKeysetWidgetItem *kwi;
+
+  PIRDeviceCollection::const_iterator i = controlledDevices.begin();
+
+  while (i != controlledDevices.end())
   {
-    kwi->addDeviceType(*i);
+    // Create a widget for the keyset:
+    QString tempString = makeManager.getMakeString(i->make);
+    tempString.append(" ");
+    tempString.append(i->model);
+    kwi = new PIRKeysetWidgetItem(tempString, id, i->make, i->type);
+    sdf->addWidgetItem(kwi);
+
     ++i;
   }
 }
@@ -43,7 +62,7 @@ void PIRKeysetMetaData::populateDeviceTypes(
 
 unsigned int PIRKeysetMetaData::getID() const
 {
-  return id;
+  return index;
 }
 
 
@@ -94,7 +113,6 @@ void PIRKeysetMetaData::addSIRC12Key(
   if (key != Unmapped_Key)
   {
     keys[key] = name;
-
     threadableProtocol->addSIRCKey(key, addressData, 5, commandData);
   }
 }
@@ -192,6 +210,34 @@ void PIRKeysetMetaData::addRCAKey(
 */
 
 
+void PIRKeysetMetaData::addKaseikyoKey(
+  const char *name,
+  PIRKeyName key,
+  unsigned int addressData,
+  unsigned int commandData)
+{
+  if (key != Unmapped_Key)
+  {
+    keys[key] = name;
+    threadableProtocol->addKaseikyoKey(key, addressData, commandData);
+  }
+}
+
+
+void PIRKeysetMetaData::addDishKey(
+  const char *name,
+  PIRKeyName key,
+  unsigned int firstCommand,
+  unsigned int secondCommand)
+{
+  if (key != Unmapped_Key)
+  {
+    keys[key] = name;
+    threadableProtocol->addDishKey(key, firstCommand, secondCommand);
+  }
+}
+
+
 void PIRKeysetMetaData::setPreData(
   unsigned long data,
   unsigned int bits)