mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-05 09:15:34 +08:00
AFV initial commit
This commit is contained in:
committed by
Mat Sutcliffe
parent
7030302e73
commit
b5a2f2ad13
67
src/blackcore/afv/audio/callsigndelaycache.cpp
Normal file
67
src/blackcore/afv/audio/callsigndelaycache.cpp
Normal file
@@ -0,0 +1,67 @@
|
||||
#include "callsigndelaycache.h"
|
||||
|
||||
void CallsignDelayCache::initialise(const QString &callsign)
|
||||
{
|
||||
if (!m_delayCache.contains(callsign))
|
||||
m_delayCache[callsign] = delayDefault;
|
||||
|
||||
if (!successfulTransmissionsCache.contains(callsign))
|
||||
successfulTransmissionsCache[callsign] = 0;
|
||||
}
|
||||
|
||||
int CallsignDelayCache::get(const QString &callsign)
|
||||
{
|
||||
return m_delayCache[callsign];
|
||||
}
|
||||
|
||||
void CallsignDelayCache::underflow(const QString &callsign)
|
||||
{
|
||||
if (!successfulTransmissionsCache.contains(callsign))
|
||||
return;
|
||||
|
||||
successfulTransmissionsCache[callsign] = 0;
|
||||
increaseDelayMs(callsign);
|
||||
}
|
||||
|
||||
void CallsignDelayCache::success(const QString &callsign)
|
||||
{
|
||||
if (!successfulTransmissionsCache.contains(callsign))
|
||||
return;
|
||||
|
||||
successfulTransmissionsCache[callsign]++;
|
||||
if (successfulTransmissionsCache[callsign] > 5)
|
||||
{
|
||||
decreaseDelayMs(callsign);
|
||||
successfulTransmissionsCache[callsign] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void CallsignDelayCache::increaseDelayMs(const QString &callsign)
|
||||
{
|
||||
if (!m_delayCache.contains(callsign))
|
||||
return;
|
||||
|
||||
m_delayCache[callsign] += delayIncrement;
|
||||
if (m_delayCache[callsign] > delayMax)
|
||||
{
|
||||
m_delayCache[callsign] = delayMax;
|
||||
}
|
||||
}
|
||||
|
||||
void CallsignDelayCache::decreaseDelayMs(const QString &callsign)
|
||||
{
|
||||
if (!m_delayCache.contains(callsign))
|
||||
return;
|
||||
|
||||
m_delayCache[callsign] -= delayIncrement;
|
||||
if (m_delayCache[callsign] < delayMin)
|
||||
{
|
||||
m_delayCache[callsign] = delayMin;
|
||||
}
|
||||
}
|
||||
|
||||
CallsignDelayCache &CallsignDelayCache::instance()
|
||||
{
|
||||
static CallsignDelayCache cache;
|
||||
return cache;
|
||||
}
|
||||
Reference in New Issue
Block a user