swift
callsigndelaycache.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2019 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_CORE_AFV_AUDIO_CALLSIGNDELAYCACHE_H
7 #define SWIFT_CORE_AFV_AUDIO_CALLSIGNDELAYCACHE_H
8 
9 #include <QHash>
10 #include <QString>
11 
12 namespace swift::core::afv::audio
13 {
16  {
17  public:
19  void initialise(const QString &callsign);
20 
22  int get(const QString &callsign);
23 
25  void underflow(const QString &callsign);
26 
28  void success(const QString &callsign);
29 
32  void increaseDelayMs(const QString &callsign);
33  void decreaseDelayMs(const QString &callsign);
35 
37  static CallsignDelayCache &instance();
38 
39  private:
41  CallsignDelayCache() = default;
42 
43  static constexpr int delayDefault = 60;
44  static constexpr int delayMin = 40;
45  static constexpr int delayIncrement = 20;
46  static constexpr int delayMax = 300;
47 
48  QHash<QString, int> m_delayCache;
49  QHash<QString, int> m_successfulTransmissionsCache;
50  };
51 
52 } // namespace swift::core::afv::audio
53 
54 #endif // SWIFT_CORE_AFV_AUDIO_CALLSIGNDELAYCACHE_H
void initialise(const QString &callsign)
Initialize.
static CallsignDelayCache & instance()
Singleton.
void decreaseDelayMs(const QString &callsign)
Delay plus/minus.
int get(const QString &callsign)
Callsign index.
void success(const QString &callsign)
Success.
void underflow(const QString &callsign)
Underflow.
void increaseDelayMs(const QString &callsign)
Delay plus/minus.