X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=pirkeysetmetadata.cpp;h=ce7cf00d1091b5400af2c7765fdd4c92292d3fd0;hb=HEAD;hp=dd1574f82f8d9797dc72e43bfdf2d2c2e2a2a7b1;hpb=a755f0efc0ba10848d26e1aed7f9933ccdcbb59e;p=pierogi diff --git a/pirkeysetmetadata.cpp b/pirkeysetmetadata.cpp index dd1574f..ce7cf00 100644 --- a/pirkeysetmetadata.cpp +++ b/pirkeysetmetadata.cpp @@ -11,6 +11,9 @@ extern PIRMakeMgr makeManager; // Static member definition: PIRDeviceCollection PIRKeysetMetaData::controlledDevices; +// Thread synchronization stuff: +extern bool commandInFlight; + PIRKeysetMetaData::PIRKeysetMetaData( const char *r, PIRMakeName m, @@ -22,6 +25,13 @@ PIRKeysetMetaData::PIRKeysetMetaData( { } + +PIRKeysetMetaData::~PIRKeysetMetaData() +{ + clearProtocol(); +} + + bool PIRKeysetMetaData::hasKey( PIRKeyName name) const { @@ -81,6 +91,52 @@ 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, @@ -294,11 +350,18 @@ void PIRKeysetMetaData::setKeysetName( } -void PIRKeysetMetaData::clearProtocol() +bool PIRKeysetMetaData::clearProtocol() { - if (threadableProtocol) + if (!threadableProtocol) + { + return true; + } + else if (!commandInFlight) { delete threadableProtocol; threadableProtocol = 0; + return true; } + + return false; }