Ref T397, fixed "disable" for fast positions

This commit is contained in:
Klaus Basan
2018-10-11 03:21:36 +02:00
parent 00d859d5b3
commit 9dd06c4c84
2 changed files with 26 additions and 4 deletions

View File

@@ -125,7 +125,17 @@ namespace BlackCore
QTimer::singleShot(0, m_network, [ = ]
{
if (!myself) { return; }
if (m_network) { m_network->addInterimPositionReceiver(callsign); }
if (m_network)
{
if (enableFastPositonUpdates)
{
m_network->addInterimPositionReceiver(callsign);
}
else
{
m_network->removeInterimPositionReceiver(callsign);
}
}
});
}
return r;

View File

@@ -357,20 +357,32 @@ namespace BlackCore
*/
virtual void setInterimPositionReceivers(const BlackMisc::Aviation::CCallsignSet &receiver) = 0;
/*!
* Get the group of callsigns receiving regular interim position updates.
*/
virtual const BlackMisc::Aviation::CCallsignSet &getInterimPositionReceivers() const = 0;
/*!
* Add callsign receiving regular interim position updates.
*/
virtual void addInterimPositionReceiver(const BlackMisc::Aviation::CCallsign &receiver)
void addInterimPositionReceiver(const BlackMisc::Aviation::CCallsign &receiver)
{
BlackMisc::Aviation::CCallsignSet set = this->getInterimPositionReceivers();
if (set.contains(receiver)) { return; } // already in set
set.push_back(receiver);
this->setInterimPositionReceivers(set);
}
/*!
* Get the group of callsigns receiving regular interim position updates.
* Remove callsign receiving regular interim position updates.
*/
virtual const BlackMisc::Aviation::CCallsignSet &getInterimPositionReceivers() const = 0;
void removeInterimPositionReceiver(const BlackMisc::Aviation::CCallsign &receiver)
{
BlackMisc::Aviation::CCallsignSet set = this->getInterimPositionReceivers();
if (!set.contains(receiver)) { return; } // nothing to remove
set.remove(receiver);
this->setInterimPositionReceivers(set);
}
//! @}
////////////////////////////////////////////////////////////////