#include "pirkeysetmanager.h"
+#include <QSettings>
+
#include "pirkeysetmetadata.h"
#include "pirselectkeysetform.h"
#include "pirkeysetwidgetitem.h"
+#include "dialogs/pirfavoritesdialog.h"
#include "keysets/acer.h"
+#include "keysets/adb.h"
#include "keysets/admiral.h"
#include "keysets/aiwa.h"
+#include "keysets/anitech.h"
#include "keysets/aoc.h"
#include "keysets/apple.h"
#include "keysets/arcam.h"
#include "keysets/beko.h"
#include "keysets/benq.h"
+#include "keysets/blaupunkt.h"
#include "keysets/bose.h"
#include "keysets/bush.h"
#include "keysets/cambridge.h"
#include "keysets/canon.h"
+#include "keysets/changhong.h"
#include "keysets/cisco.h"
#include "keysets/compro.h"
+#include "keysets/creative.h"
+#include "keysets/crown.h"
+#include "keysets/crownmustang.h"
#include "keysets/daewoo.h"
#include "keysets/dell.h"
#include "keysets/denon.h"
+#include "keysets/deutschetelekom.h"
#include "keysets/digitalstream.h"
#include "keysets/directv.h"
#include "keysets/dish.h"
#include "keysets/ei.h"
#include "keysets/elgato.h"
#include "keysets/emerson.h"
+#include "keysets/emtec.h"
#include "keysets/epson.h"
#include "keysets/fortec.h"
#include "keysets/foxtel.h"
+#include "keysets/frontech.h"
#include "keysets/gadmei.h"
#include "keysets/genius.h"
#include "keysets/goldstar.h"
+#include "keysets/goodmans.h"
#include "keysets/grundig.h"
#include "keysets/haier.h"
+#include "keysets/hantarex.h"
#include "keysets/harmankardon.h"
#include "keysets/hauppauge.h"
#include "keysets/hitachi.h"
#include "keysets/huawei.h"
#include "keysets/humax.h"
#include "keysets/hyundai.h"
+#include "keysets/irobot.h"
#include "keysets/jvc.h"
#include "keysets/kaon.h"
#include "keysets/kathrein.h"
#include "keysets/kenwood.h"
+#include "keysets/keymat.h"
+#include "keysets/konka.h"
#include "keysets/lexuz.h"
#include "keysets/lg.h"
+#include "keysets/lifetec.h"
#include "keysets/loewe.h"
#include "keysets/logitech.h"
#include "keysets/magnavox.h"
#include "keysets/magnum.h"
#include "keysets/mce.h"
+#include "keysets/medialink.h"
+#include "keysets/medion.h"
#include "keysets/mitsubishi.h"
#include "keysets/motorola.h"
+#include "keysets/multichoice.h"
#include "keysets/nad.h"
+#include "keysets/nec.h"
+#include "keysets/nikon.h"
#include "keysets/nokia.h"
#include "keysets/octagon.h"
+#include "keysets/olympus.h"
#include "keysets/onida.h"
#include "keysets/onkyo.h"
#include "keysets/orion.h"
#include "keysets/panasonic.h"
+#include "keysets/pentax.h"
#include "keysets/philco.h"
#include "keysets/philips.h"
#include "keysets/pinnacle.h"
#include "keysets/samsung.h"
#include "keysets/sanyo.h"
#include "keysets/sharp.h"
+#include "keysets/sinotec.h"
#include "keysets/sky.h"
#include "keysets/sony.h"
#include "keysets/starsat.h"
#include "keysets/strong.h"
+#include "keysets/sylvania.h"
#include "keysets/technics.h"
#include "keysets/technisat.h"
#include "keysets/telefunken.h"
#include "keysets/tivo.h"
#include "keysets/topfield.h"
#include "keysets/toshiba.h"
+#include "keysets/triax.h"
#include "keysets/united.h"
#include "keysets/universum.h"
#include "keysets/vestel.h"
#include "keysets/viewsat.h"
+#include "keysets/viewsonic.h"
#include "keysets/virgin.h"
#include "keysets/vizio.h"
#include "keysets/wd.h"
#include "keysets/westinghouse.h"
+#include "keysets/wiwa.h"
#include "keysets/xcruiser.h"
#include "keysets/yamaha.h"
#include "keysets/zenith.h"
#include "pirexception.h"
-// I'll be handling the threading of the keyset commands in this object:
+// Need mutex for thread support:
#include <QMutex>
+// Debugging includes:
+#include <iostream>
+
// Global communications mechanism:
extern bool stopRepeatingFlag;
extern QMutex stopRepeatingMutex;
setupKeyset(new AcerTV1(++counter));
setupKeyset(new AcerPC1(++counter));
+ setupKeyset(new ADBSTB1(++counter));
+ setupKeyset(new ADBSTB2(++counter));
+ setupKeyset(new ADBSTB3(++counter));
+ setupKeyset(new ADBSTB4(++counter));
+ setupKeyset(new ADBSTB5(++counter));
+ setupKeyset(new ADBSTB6(++counter));
+
setupKeyset(new AdmiralTV1(++counter));
setupKeyset(new AdmiralTV2(++counter));
setupKeyset(new AdmiralVCR1(++counter));
setupKeyset(new AiwaCarStereo1(++counter));
setupKeyset(new AiwaDVD1(++counter));
+ setupKeyset(new AnitechTV1(++counter));
+ setupKeyset(new AnitechVCR1(++counter));
+
setupKeyset(new AOCTV1(++counter));
setupKeyset(new AppleWhiteRemote(++counter));
setupKeyset(new BenQTV1(++counter));
+ setupKeyset(new BlaupunktVCR1(++counter));
+
setupKeyset(new BoseRadio1(++counter));
setupKeyset(new BoseRadio2(++counter));
setupKeyset(new BoseRadio3(++counter));
setupKeyset(new CanonCamcorder1(++counter));
setupKeyset(new CanonPowershot1(++counter));
+ setupKeyset(new ChanghongTV1(++counter));
+ setupKeyset(new ChanghongTV1a(++counter));
+ setupKeyset(new ChanghongTV1b(++counter));
+ setupKeyset(new ChanghongTV2(++counter));
+ setupKeyset(new ChanghongTV3(++counter));
+
setupKeyset(new CiscoSTB1(++counter));
setupKeyset(new CiscoSTB2(++counter));
setupKeyset(new CiscoSTB3(++counter));
setupKeyset(new ComproTVCard1(++counter));
+ setupKeyset(new CreativeAudio1(++counter));
+ setupKeyset(new CreativeAudio2(++counter));
+ setupKeyset(new CreativeAudio3(++counter));
+ setupKeyset(new CreativeAudio4(++counter));
+
+ setupKeyset(new CrownTV1(++counter));
+ setupKeyset(new CrownAudio1(++counter));
+
+ setupKeyset(new CrownMustangTV1(++counter));
+
setupKeyset(new DaewooTV1(++counter));
setupKeyset(new DaewooTV2(++counter));
setupKeyset(new DaewooTV3(++counter));
setupKeyset(new DellRemote1(++counter));
+// setupKeyset(new DeutscheTelekomSTB1(++counter));
+
setupKeyset(new DigitalStreamReceiver(++counter));
setupKeyset(new DirectvReceiver1(++counter));
setupKeyset(new EmersonTV1(++counter));
setupKeyset(new EmersonDVD1(++counter));
+ setupKeyset(new EmtecSTB1(++counter));
+ setupKeyset(new EmtecSTB2(++counter));
+
setupKeyset(new EpsonProjector1(++counter));
setupKeyset(new EpsonProjector2(++counter));
setupKeyset(new FoxtelSTB1(++counter));
setupKeyset(new FoxtelSTB2(++counter));
+ setupKeyset(new FrontechTV1(++counter));
+ setupKeyset(new FrontechTV2(++counter));
+
setupKeyset(new GadmeiTuner1(++counter));
setupKeyset(new GeniusSpeakers1(++counter));
setupKeyset(new GoldStarVCR1c(++counter));
setupKeyset(new GoldStarCD1(++counter));
+ setupKeyset(new GoodmansSTB1(++counter));
+ setupKeyset(new GoodmansVCR1(++counter));
+ setupKeyset(new GoodmansDVD1(++counter));
+ setupKeyset(new GoodmansAudio1(++counter));
+
setupKeyset(new GrundigSat1(++counter));
setupKeyset(new GrundigSat2(++counter));
setupKeyset(new GrundigSat3(++counter));
setupKeyset(new GrundigTV1(++counter));
setupKeyset(new GrundigTV2(++counter));
setupKeyset(new GrundigTV3(++counter));
+ setupKeyset(new GrundigTV4(++counter));
setupKeyset(new GrundigDVD1(++counter));
setupKeyset(new HaierTV1(++counter));
+ setupKeyset(new HantarexTV1(++counter));
+ setupKeyset(new HantarexTV2(++counter));
+
setupKeyset(new HarmanKardonAmp1(++counter));
setupKeyset(new HarmanKardonAmp2(++counter));
setupKeyset(new HarmanKardonReceiver2(++counter));
setupKeyset(new HyundaiAudio1(++counter));
setupKeyset(new HyundaiTV1(++counter));
+ setupKeyset(new IRobotRoomba1(++counter));
+
setupKeyset(new JVCSat1(++counter));
setupKeyset(new JVCSat2(++counter));
setupKeyset(new JVCVCR1(++counter));
setupKeyset(new KenwoodDVD1(++counter));
setupKeyset(new KenwoodTV1(++counter));
+ setupKeyset(new KeymatTV1(++counter));
+ setupKeyset(new KeymatTV2(++counter));
+
+ setupKeyset(new KonkaTV1(++counter));
+ setupKeyset(new KonkaTV2(++counter));
+
setupKeyset(new LexuzDVB1(++counter));
setupKeyset(new LGTV1(++counter));
setupKeyset(new LGTV2(++counter));
setupKeyset(new LGTV2a(++counter));
setupKeyset(new LGTV2b(++counter));
+ setupKeyset(new LGHT1(++counter));
+ setupKeyset(new LGHT2(++counter));
+ setupKeyset(new LGHT2a(++counter));
setupKeyset(new LGDisc1(++counter));
setupKeyset(new LGDisc2(++counter));
setupKeyset(new LGDisc2a(++counter));
setupKeyset(new LGVCR1b(++counter));
setupKeyset(new LGAC1(++counter));
+ setupKeyset(new LifetecTV1(++counter));
+ setupKeyset(new LifetecTV2(++counter));
+ setupKeyset(new LifetecVCR1(++counter));
+ setupKeyset(new LifetecAudio1(++counter));
+
setupKeyset(new LoeweTV1(++counter));
setupKeyset(new LoeweVCR1(++counter));
setupKeyset(new LoeweDVD1(++counter));
setupKeyset(new MCERemote1f(++counter));
setupKeyset(new MCERemote1g(++counter));
+ setupKeyset(new MedialinkSTB1(++counter));
+
+ setupKeyset(new MedionSTB1(++counter));
+ setupKeyset(new MedionDVD1(++counter));
+ setupKeyset(new MedionDVD2(++counter));
+ setupKeyset(new MedionVCR1(++counter));
+
setupKeyset(new MitsubishiTV1(++counter));
setupKeyset(new MitsubishiTV1a(++counter));
setupKeyset(new MitsubishiVCR1(++counter));
setupKeyset(new MitsubishiVCR1a(++counter));
+ setupKeyset(new MitsubishiProjector1(++counter));
setupKeyset(new Motorola4DTV(++counter));
setupKeyset(new MotorolaSTB1(++counter));
setupKeyset(new MotorolaSTB1b(++counter));
setupKeyset(new MotorolaSkyDigital(++counter));
+ setupKeyset(new MultichoiceSTB1(++counter));
+ setupKeyset(new MultichoiceSTB2(++counter));
+
setupKeyset(new NADAudio1(++counter));
setupKeyset(new NADTuner1(++counter));
setupKeyset(new NADDVD1(++counter));
setupKeyset(new NADCD2(++counter));
setupKeyset(new NADTape1(++counter));
+ setupKeyset(new NECTV1(++counter));
+ setupKeyset(new NECVCR1(++counter));
+ setupKeyset(new NECVCR2(++counter));
+ setupKeyset(new NECVCR3(++counter));
+ setupKeyset(new NECDVD1(++counter));
+ setupKeyset(new NECProjector1(++counter));
+ setupKeyset(new NECProjector2(++counter));
+
+ setupKeyset(new NikonDSLR1(++counter));
+
setupKeyset(new NokiaGenericVCR(++counter));
setupKeyset(new OctagonSat1(++counter));
setupKeyset(new OctagonSat1a(++counter));
setupKeyset(new OctagonSat2(++counter));
+ setupKeyset(new OlympusCamera1(++counter));
+
setupKeyset(new OnidaTV1(++counter));
setupKeyset(new OnidaDVD1(++counter));
setupKeyset(new PanasonicAudio2a(++counter));
setupKeyset(new PanasonicAC1(++counter));
+ setupKeyset(new PentaxCamera1(++counter));
+
setupKeyset(new PhilcoTV(++counter));
setupKeyset(new PhilipsTV1(++counter));
setupKeyset(new PioneerCD1(++counter));
setupKeyset(new PioneerLaserDisc1(++counter));
setupKeyset(new PioneerDVD1(++counter));
+ setupKeyset(new PioneerCarStereo1(++counter));
setupKeyset(new ProviewDVD1(++counter));
setupKeyset(new SharpReceiver1(++counter));
setupKeyset(new SharpAC1(++counter));
+ setupKeyset(new SinotecTV1(++counter));
+ setupKeyset(new SinotecTV2(++counter));
+
setupKeyset(new SkyReceiver1(++counter));
setupKeyset(new SkyReceiver1a(++counter));
setupKeyset(new SonyTV1a(++counter));
setupKeyset(new SonyTV1b(++counter));
setupKeyset(new SonyTV1c(++counter));
+ setupKeyset(new SonyTV2(++counter));
setupKeyset(new SonyAmp1(++counter));
setupKeyset(new SonyAmp2(++counter));
setupKeyset(new SonyAudio1(++counter));
setupKeyset(new StrongSat3(++counter));
setupKeyset(new StrongSat4(++counter));
+ setupKeyset(new SylvaniaTV1(++counter));
+
setupKeyset(new TechnicsAudio1(++counter));
setupKeyset(new TechnicsAudio1a(++counter));
setupKeyset(new TechnicsAudio2(++counter));
setupKeyset(new ThomsonDVD1(++counter));
setupKeyset(new ThomsonSat1(++counter));
setupKeyset(new ThomsonAudio1(++counter));
+ setupKeyset(new ThomsonAudio2(++counter));
setupKeyset(new Tivo1(++counter));
setupKeyset(new Tivo1a(++counter));
setupKeyset(new ToshibaDisc1c(++counter));
setupKeyset(new ToshibaDisc1d(++counter));
+ setupKeyset(new TriaxSTB1(++counter));
+ setupKeyset(new TriaxSTB2(++counter));
+ setupKeyset(new TriaxSTB2a(++counter));
+ setupKeyset(new TriaxSTB3(++counter));
+ setupKeyset(new TriaxSTB3a(++counter));
+ setupKeyset(new TriaxSTB4(++counter));
+
setupKeyset(new UnitedDVD1(++counter));
setupKeyset(new UnitedDVBT1(++counter));
setupKeyset(new ViewsatSat1(++counter));
setupKeyset(new ViewsatSat1a(++counter));
+ setupKeyset(new ViewsonicProjector1(++counter));
+ setupKeyset(new ViewsonicProjector2(++counter));
+
setupKeyset(new VirginSTB1(++counter));
setupKeyset(new VizioTV1(++counter));
setupKeyset(new WestinghouseTV1(++counter));
setupKeyset(new WestinghouseTV2(++counter));
+ setupKeyset(new WiwaSTB1(++counter));
+
setupKeyset(new XcruiserSat1(++counter));
setupKeyset(new YamahaDVD1(++counter));
stopRepeatingFlag = true;
}
- // Tell the thread that we want it to stop:
- commandThread.exit();
-
- // Wait for the thread to stop:
- commandThread.wait();
-
// Delete all the keysets:
PIRKeysetCollection::iterator i = keysetsInfo.begin();
while (i != keysetsInfo.end())
if ((*i).second) delete (*i).second;
++i;
}
+
+ // Tell the thread that we want it to stop:
+ commandThread.exit();
+
+ // Wait for the thread to stop:
+ commandThread.wait();
}
fullname.append(" ");
fullname.append(name);
- return new PIRKeysetWidgetItem(fullname, id, getMake(id));
+ return new PIRKeysetWidgetItem(fullname, name, id, getMake(id));
}
}
+unsigned int PIRKeysetManager::getCarrierFrequency(
+ unsigned int keysetID)
+{
+ PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
+
+ if (i == keysetsInfo.end())
+ {
+ return 0;
+ }
+
+ return i->second->getCarrierFrequency();
+}
+
+
+void PIRKeysetManager::setCarrierFrequency(
+ unsigned int carrierFrequency,
+ unsigned int keysetID)
+{
+ PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
+
+ if (i == keysetsInfo.end())
+ {
+ return;
+ }
+
+ i->second->setCarrierFrequency(carrierFrequency);
+}
+
+
+unsigned int PIRKeysetManager::getDutyCycle(
+ unsigned int keysetID)
+{
+ PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
+
+ if (i == keysetsInfo.end())
+ {
+ return 0;
+ }
+
+ return i->second->getDutyCycle();
+}
+
+
+void PIRKeysetManager::setDutyCycle(
+ unsigned int dutyCycle,
+ unsigned int keysetID)
+{
+ PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
+
+ if (i == keysetsInfo.end())
+ {
+ return;
+ }
+
+ i->second->setDutyCycle(dutyCycle);
+}
+
+
+bool PIRKeysetManager::clearKeyset(
+ unsigned int keysetID)
+{
+ PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
+
+ if (i == keysetsInfo.end())
+ {
+ return true; // best I can do here right now...
+ }
+
+ return i->second->clearProtocol();
+}
+
+
void PIRKeysetManager::setupKeyset(
PIRKeysetMetaData *keyset)
{
}
-void PIRKeysetManager::populateSelectionWidget(
- PIRSelectKeysetForm *skf) const
+struct PIRUserData
+{
+ bool favorite;
+ QString nickname;
+};
+typedef std::map<QString, PIRUserData> PIRUDInnerMap;
+typedef std::map<int, PIRUDInnerMap> PIRUDOuterMap;
+
+void PIRKeysetManager::populateListWidgets(
+ PIRSelectKeysetForm *skf,
+ PIRFavoritesDialog *fd) const
{
- PIRMakeName make;
+ // First, pull out the user's keyset metadata:
+ QSettings settings("pietrzak.org", "Pierogi");
+
+ // Part 1 - The user's keyset nicknames:
+ int size = settings.beginReadArray("userNames");
+ int index = 0;
+ QString makeStr;
+ QString name;
+ PIRMakeName makeID;
+ QString userName;
+ PIRUDOuterMap userData;
+
+ while (index < size)
+ {
+ settings.setArrayIndex(index);
+ name = settings.value("keysetName").toString();
+ makeStr = settings.value("keysetMake").toString();
+ makeID = makeManager.getMakeID(makeStr);
+ userName = settings.value("keysetNickname").toString();
+
+ // Insert an entry into the map. We initialize the favorites bool to
+ // false here, it'll be changed to true below if needed:
+ userData[makeID][name].nickname = userName;
+ userData[makeID][name].favorite = false;
+ ++index;
+ }
+ settings.endArray();
+
+ // Part 2 - The user's favorites:
+ size = settings.beginReadArray("favorites");
+ index = 0;
+
+ while (index < size)
+ {
+ settings.setArrayIndex(index);
+ name = settings.value("keysetName").toString();
+ makeStr = settings.value("keysetMake").toString();
+ makeID = makeManager.getMakeID(makeStr);
+
+ // Insert an entry into the map:
+ userData[makeID][name].favorite = true;
+
+ ++index;
+ }
+ settings.endArray();
+
+ // Now, we load the data into their respective QLists.
PIRKeysetWidgetItem *kwi;
+ QString displayString;
+ PIRUDOuterMap::const_iterator outerIter;
+ PIRUDInnerMap::const_iterator innerIter;
PIRKeysetCollection::const_iterator i = keysetsInfo.begin();
while (i != keysetsInfo.end())
{
// Create a widget for the keyset:
- make = i->second->getMake();
- QString tempString = makeManager.getMakeString(make);
- tempString.append(" ");
- tempString.append(i->second->getKeysetName());
- kwi = new PIRKeysetWidgetItem(tempString, i->first, make);
+ makeID = i->second->getMake();
+ name = i->second->getKeysetName();
+ displayString = makeManager.getMakeString(makeID);
+ displayString.append(" ");
+ displayString.append(name);
+
+ kwi = new PIRKeysetWidgetItem(displayString, name, i->first, makeID);
+
+ outerIter = userData.find(makeID);
+ if (outerIter != userData.end())
+ {
+ innerIter = outerIter->second.find(name);
+ if (innerIter != outerIter->second.end())
+ {
+ // We have user data for this keyset!
+ QString nick = innerIter->second.nickname;
+ if (!nick.isEmpty())
+ {
+ kwi->setNickname(nick);
+
+ displayString = nick;
+ displayString.append(" (");
+ displayString.append(kwi->text());
+ displayString.append(")");
+ kwi->setText(displayString);
+ }
+
+ // If this is a favorite, add it to favorites list:
+ if (innerIter->second.favorite)
+ {
+ kwi->setFavorite(true);
+ fd->addItem(kwi);
+ }
+ }
+ }
+
skf->addWidgetItem(kwi);
++i;
}
}
*/
+