6 #ifndef SWIFT_CORE_AFV_CONNECTION_CLIENTCONNECTION_H
7 #define SWIFT_CORE_AFV_CONNECTION_CLIENTCONNECTION_H
21 namespace swift::core::afv::connection
42 void connectTo(
const QString &userName,
const QString &password,
const QString &callsign,
const QString &client,
68 SWIFT_VERIFY_X(
false, Q_FUNC_INFO,
"sendVoice used without crypto channel or socket");
74 m_udpSocket->writeDatagram(dataBytes, QHostAddress(voiceServerUrl.host()),
75 static_cast<quint16
>(voiceServerUrl.port()));
79 void updateTransceivers(
const QString &callsign,
const QVector<TransceiverDto> &transceivers);
99 static const QString e;
100 return m_apiServerConnection ? m_apiServerConnection->
getPassword() : e;
104 static const QString e;
105 return m_apiServerConnection ? m_apiServerConnection->
getClient() : e;
115 void connectToVoiceServer();
116 void disconnectFromVoiceServer();
118 void readPendingDatagrams();
119 void processMessage(
const QByteArray &messageDdata,
bool loopback =
false);
120 void handleSocketError(QAbstractSocket::SocketError error);
122 void voiceServerHeartbeat();
124 const QUuid m_networkVersion = QUuid(
"3a5ddc6d-cf5d-4319-bd0e-d184f772db80");
130 QUdpSocket *m_udpSocket =
nullptr;
131 QTimer *m_voiceServerTimer =
nullptr;
137 bool m_receiveAudioDto =
true;
const QString & getPassword() const
User data.
const QString & getClient() const
User data.
const QString & getUserName() const
Uername.
const PostCallsignResponseDto & getTokens() const
Tokens.
bool isReceivingAudio() const
Receiving audio?
bool isConnected() const
Is connected?
const QString & getCallsign() const
Callsign.
bool isVoiceServerAlive() const
Servers alive.
qint64 secondsSinceAuthentication() const
Time since authentication.
QScopedPointer< crypto::CCryptoDtoChannel > m_voiceCryptoChannel
used crypto channel
void setReceiveAudio(bool receive)
Receiving audio?
const QString & getUserName() const
User data.
void sendToVoiceServer(const T &dto)
Send voice DTO to server.
void updateTransceivers(const QString &callsign, const QVector< TransceiverDto > &transceivers)
Update transceivers.
CClientConnection(const QString &apiServer, QObject *parent=nullptr)
Ctor.
bool updateVoiceServerUrl(const QString &url)
Update the voice server URL.
void disconnectFrom(const QString &reason={})
Disconnect.
const QString & getPassword() const
User data.
void audioReceived(const AudioRxOnTransceiversDto &dto)
Audio has been received.
bool receiveAudio() const
Receiving audio?
bool receiveAudioDto() const
Receiving audio?
QVector< StationDto > getAllAliasedStations()
All aliased stations.
void setReceiveAudio(bool value)
Receiving audio?
const QUuid & getNetworkVersion() const
User data.
const QString & getCallsign() const
User data.
const QString & getVoiceServerUrl() const
Get the voice server URL.
qint64 secondsSinceAuthentication() const
Authenticated since when.
bool isVoiceServerAlive() const
Is alive?
void setReceiveAudioDto(bool receiveAudioDto)
Receiving audio?
ConnectionStatus
Connection status.
@ Disconnected
Not connected.
@ Connected
Connection established.
const QString & getClient() const
User data.
void connectTo(const QString &userName, const QString &password, const QString &callsign, const QString &client, ConnectionCallback callback)
Connect.
bool isConnected() const
Is connected?
static QByteArray serialize(const QString &channelTag, CryptoDtoMode mode, const QByteArray &transmitKey, uint sequenceToBeSent, T dto)
Serialize a DTO.
Callable wrapper for a member function with function signature F.
AudioRxOnTransceiversDto.
VoiceServerConnectionDataDto VoiceServer
Properties.
QString addressIpV4
Properties.
#define SWIFT_VERIFY_X(COND, WHERE, WHAT)
A weaker kind of assert.