6 #ifndef SWIFT_CORE_AFV_AUDIO_CALLSIGNSAMPLEPROVIDER_H
7 #define SWIFT_CORE_AFV_AUDIO_CALLSIGNSAMPLEPROVIDER_H
9 #include <QAudioFormat>
11 #include <QSoundEffect>
19 #include "sound/sampleprovider/resourcesoundsampleprovider.h"
23 namespace swift::core::afv::audio
25 class CReceiverSampleProvider;
36 QObject *parent =
nullptr);
39 int readSamples(QVector<float> &samples, qint64 count)
override;
42 const QString &
callsign()
const {
return m_callsign; }
45 const QString &
type()
const {
return m_aircraftType; }
63 bool inUse()
const {
return m_inUse; }
74 QVector<qint16> decodeOpus(
const QByteArray &opusData);
75 void setEffects(
bool noEffects =
false);
77 QAudioFormat m_audioFormat;
79 const double m_whiteNoiseGainMin = 0.17;
80 const double m_hfWhiteNoiseGainMin = 0.6;
81 const double m_acBusGainMin = 0.0028;
82 const int m_frameCount = 960;
83 const int m_idleTimeoutMs = 500;
86 QString m_aircraftType;
89 bool m_bypassEffects =
false;
90 float m_distanceRatio = 1.0;
100 QTimer *m_timer =
nullptr;
103 bool m_lastPacketLatch =
false;
104 QDateTime m_lastSamplesAddedUtc;
105 bool m_underflow =
false;
const QString & callsign() const
The callsign.
void setBypassEffects(bool bypassEffects)
Bypass effects.
QString toQString() const
Info.
const QString & type() const
Type.
void addOpusSamples(const IAudioDto &audioDto, float distanceRatio)
Add samples.
int readSamples(QVector< float > &samples, qint64 count)
Read samples.
void active(const QString &callsign, const QString &aircraftType)
Is active?
CCallsignSampleProvider(const QAudioFormat &audioFormat, const swift::core::afv::audio::CReceiverSampleProvider *receiver, QObject *parent=nullptr)
Ctor.
void activeSilent(const QString &callsign, const QString &aircraftType)
Is active?
void addSilentSamples(const IAudioDto &audioDto)
Add samples.
bool inUse() const
Callsign in use.
Sample provider interface.