X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=pirkeysetmetadata.cpp;h=ce7cf00d1091b5400af2c7765fdd4c92292d3fd0;hb=HEAD;hp=82987cebea2fb0cc6dffd21f561383c6c3991e9c;hpb=d4996260671e35f52fddccd2c11ad55d3c6a2995;p=pierogi diff --git a/pirkeysetmetadata.cpp b/pirkeysetmetadata.cpp index 82987ce..ce7cf00 100644 --- a/pirkeysetmetadata.cpp +++ b/pirkeysetmetadata.cpp @@ -1,9 +1,18 @@ #include "pirkeysetmetadata.h" +#include "pirselectdeviceform.h" #include "pirkeysetwidgetitem.h" #include "protocols/pirprotocol.h" #include +// Global helper object: +extern PIRMakeMgr makeManager; + +// Static member definition: +PIRDeviceCollection PIRKeysetMetaData::controlledDevices; + +// Thread synchronization stuff: +extern bool commandInFlight; PIRKeysetMetaData::PIRKeysetMetaData( const char *r, @@ -16,6 +25,13 @@ PIRKeysetMetaData::PIRKeysetMetaData( { } + +PIRKeysetMetaData::~PIRKeysetMetaData() +{ + clearProtocol(); +} + + bool PIRKeysetMetaData::hasKey( PIRKeyName name) const { @@ -34,13 +50,25 @@ void PIRKeysetMetaData::moveToThread( } -void PIRKeysetMetaData::populateDeviceTypes( - PIRKeysetWidgetItem *kwi) const +void PIRKeysetMetaData::populateDevices( + PIRSelectDeviceForm *sdf) { - 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->first.make); + tempString.append(" "); + tempString.append(i->first.model); + + kwi = new PIRKeysetWidgetItem( + tempString, i->first.model, i->second, i->first.make, i->first.type); + + sdf->addWidgetItem(kwi); + ++i; } } @@ -63,14 +91,61 @@ const char *PIRKeysetMetaData::getKeysetName() const } +unsigned int PIRKeysetMetaData::getCarrierFrequency() const +{ + if (!threadableProtocol) + { + return 0; + } + + return threadableProtocol->getCarrierFrequency(); +} + + +void PIRKeysetMetaData::setCarrierFrequency( + unsigned int carrierFrequency) +{ + if (!threadableProtocol) + { + return; + } + + threadableProtocol->setCarrierFrequency(carrierFrequency); +} + + +unsigned int PIRKeysetMetaData::getDutyCycle() const +{ + if (!threadableProtocol) + { + return 0; + } + + return threadableProtocol->getDutyCycle(); +} + + +void PIRKeysetMetaData::setDutyCycle( + unsigned int dutyCycle) +{ + if (!threadableProtocol) + { + return; + } + + threadableProtocol->setDutyCycle(dutyCycle); +} + + void PIRKeysetMetaData::addControlledDevice( PIRMakeName make, const char *model, PIRDeviceTypeName type) { - controlledDevices.push_back(DeviceInfo(make, model, type)); - - deviceTypes.insert(type); + controlledDevices.insert( + PIRDCPair( + DeviceInfo(make, model, type), + index)); } @@ -162,6 +237,20 @@ void PIRKeysetMetaData::addNECKey( } +void PIRKeysetMetaData::addPanOldKey( + const char *name, + PIRKeyName key, + unsigned int addressData, + unsigned int commandData) +{ + if (key != Unmapped_Key) + { + keys[key] = name; + threadableProtocol->addPanOldKey(key, addressData, commandData); + } +} + + void PIRKeysetMetaData::addPioneerKey( const char *name, PIRKeyName key, @@ -224,6 +313,20 @@ void PIRKeysetMetaData::addDishKey( } +void PIRKeysetMetaData::addXMPKey( + const char *name, + PIRKeyName key, + unsigned int firstCommand, + unsigned int secondCommand) +{ + if (key != Unmapped_Key) + { + keys[key] = name; + threadableProtocol->addXMPKey(key, firstCommand, secondCommand); + } +} + + void PIRKeysetMetaData::setPreData( unsigned long data, unsigned int bits) @@ -245,3 +348,20 @@ void PIRKeysetMetaData::setKeysetName( { keysetName = n; } + + +bool PIRKeysetMetaData::clearProtocol() +{ + if (!threadableProtocol) + { + return true; + } + else if (!commandInFlight) + { + delete threadableProtocol; + threadableProtocol = 0; + return true; + } + + return false; +}