mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-20 12:35:43 +08:00
[AFV] Ref T739, unified callsign functions in CAfvClient
* improved CallsignSet from QStringList * renamed the functions which just return a string * added functions for CCallsignSet
This commit is contained in:
@@ -269,7 +269,7 @@ namespace BlackCore
|
||||
m_soundcardSampleProvider->deleteLater();
|
||||
}
|
||||
m_soundcardSampleProvider = new CSoundcardSampleProvider(SampleRate, allTransceiverIds(), this);
|
||||
connect(m_soundcardSampleProvider, &CSoundcardSampleProvider::receivingCallsignsChanged, this, &CAfvClient::receivingCallsignsChanged);
|
||||
connect(m_soundcardSampleProvider, &CSoundcardSampleProvider::receivingCallsignsChanged, this, &CAfvClient::onReceivingCallsignsChanged);
|
||||
|
||||
if (m_outputSampleProvider) { m_outputSampleProvider->deleteLater(); }
|
||||
m_outputSampleProvider = new CVolumeSampleProvider(m_soundcardSampleProvider, this);
|
||||
@@ -747,27 +747,41 @@ namespace BlackCore
|
||||
emit outputVolumePeakVU(args.PeakVU);
|
||||
}
|
||||
|
||||
QString CAfvClient::getReceivingCallsignsCom1() const
|
||||
QString CAfvClient::getReceivingCallsignsStringCom1() const
|
||||
{
|
||||
QMutexLocker lock(&m_mutex);
|
||||
if (!m_soundcardSampleProvider) return {};
|
||||
return m_soundcardSampleProvider->getReceivingCallsigns(0);
|
||||
return m_soundcardSampleProvider->getReceivingCallsignsString(comUnitToTransceiverId(CComSystem::Com1));
|
||||
}
|
||||
|
||||
QString CAfvClient::getReceivingCallsignsCom2() const
|
||||
QString CAfvClient::getReceivingCallsignsStringCom2() const
|
||||
{
|
||||
QMutexLocker lock(&m_mutex);
|
||||
if (!m_soundcardSampleProvider) return {};
|
||||
return m_soundcardSampleProvider->getReceivingCallsigns(1);
|
||||
return m_soundcardSampleProvider->getReceivingCallsignsString(comUnitToTransceiverId(CComSystem::Com2));
|
||||
}
|
||||
|
||||
QStringList CAfvClient::getReceivingCallsignsCom1Com2() const
|
||||
CCallsignSet CAfvClient::getReceivingCallsignsCom1() const
|
||||
{
|
||||
QMutexLocker lock(&m_mutex);
|
||||
if (!m_soundcardSampleProvider) return {};
|
||||
return m_soundcardSampleProvider->getReceivingCallsigns(comUnitToTransceiverId(CComSystem::Com1));
|
||||
}
|
||||
|
||||
CCallsignSet CAfvClient::getReceivingCallsignsCom2() const
|
||||
{
|
||||
QMutexLocker lock(&m_mutex);
|
||||
if (!m_soundcardSampleProvider) return {};
|
||||
return m_soundcardSampleProvider->getReceivingCallsigns(comUnitToTransceiverId(CComSystem::Com2));
|
||||
}
|
||||
|
||||
QStringList CAfvClient::getReceivingCallsignsStringCom1Com2() const
|
||||
{
|
||||
QStringList coms;
|
||||
QMutexLocker lock(&m_mutex);
|
||||
if (!m_soundcardSampleProvider) { return {{ QString(), QString()}}; }
|
||||
coms << m_soundcardSampleProvider->getReceivingCallsigns(0);
|
||||
coms << m_soundcardSampleProvider->getReceivingCallsigns(1);
|
||||
coms << m_soundcardSampleProvider->getReceivingCallsignsString(comUnitToTransceiverId(CComSystem::Com1));
|
||||
coms << m_soundcardSampleProvider->getReceivingCallsignsString(comUnitToTransceiverId(CComSystem::Com2));
|
||||
return coms;
|
||||
}
|
||||
|
||||
@@ -958,6 +972,29 @@ namespace BlackCore
|
||||
this->updateFromOwnAircraft(aircraft);
|
||||
}
|
||||
|
||||
void CAfvClient::onReceivingCallsignsChanged(const TransceiverReceivingCallsignsChangedArgs &args)
|
||||
{
|
||||
const CComSystem::ComUnit unit = transceiverIdToComUnit(args.transceiverID);
|
||||
CCallsignSet callsignsCom1;
|
||||
CCallsignSet callsignsCom2;
|
||||
switch (unit)
|
||||
{
|
||||
case CComSystem::Com1:
|
||||
default:
|
||||
callsignsCom1 = CCallsignSet(args.receivingCallsigns);
|
||||
callsignsCom2 = this->getReceivingCallsignsCom2();
|
||||
break;
|
||||
|
||||
case CComSystem::Com2:
|
||||
callsignsCom2 = CCallsignSet(args.receivingCallsigns);
|
||||
callsignsCom1 = this->getReceivingCallsignsCom1();
|
||||
break;
|
||||
}
|
||||
|
||||
emit this->receivedCallsignsChanged(callsignsCom1, callsignsCom2);
|
||||
emit this->receivingCallsignsChanged(args);
|
||||
}
|
||||
|
||||
QVector<StationDto> CAfvClient::getAliasedStations() const
|
||||
{
|
||||
QMutexLocker lock(&m_mutex);
|
||||
@@ -1015,8 +1052,8 @@ namespace BlackCore
|
||||
QString suffixA;
|
||||
QString prefixB;
|
||||
QString suffixB;
|
||||
getPrefixSuffix(callsign, prefixA, suffixA);
|
||||
getPrefixSuffix(compareTo, prefixB, suffixB);
|
||||
this->getPrefixSuffix(callsign, prefixA, suffixA);
|
||||
this->getPrefixSuffix(compareTo, prefixB, suffixB);
|
||||
return (prefixA == prefixB) && (suffixA == suffixB);
|
||||
}
|
||||
|
||||
|
||||
@@ -53,8 +53,8 @@ namespace BlackCore
|
||||
Q_PROPERTY(double inputVolumePeakVU READ getInputVolumePeakVU NOTIFY inputVolumePeakVU)
|
||||
Q_PROPERTY(double outputVolumePeakVU READ getOutputVolumePeakVU NOTIFY outputVolumePeakVU)
|
||||
Q_PROPERTY(BlackCore::Afv::Clients::CAfvClient::ConnectionStatus connectionStatus READ getConnectionStatus NOTIFY connectionStatusChanged)
|
||||
Q_PROPERTY(QString receivingCallsignsCom1 READ getReceivingCallsignsCom1 NOTIFY receivingCallsignsChanged)
|
||||
Q_PROPERTY(QString receivingCallsignsCom2 READ getReceivingCallsignsCom2 NOTIFY receivingCallsignsChanged)
|
||||
Q_PROPERTY(QString receivingCallsignsCom1 READ getReceivingCallsignsStringCom1 NOTIFY receivingCallsignsChanged)
|
||||
Q_PROPERTY(QString receivingCallsignsCom2 READ getReceivingCallsignsStringCom2 NOTIFY receivingCallsignsChanged)
|
||||
//! @}
|
||||
|
||||
public:
|
||||
@@ -232,9 +232,11 @@ namespace BlackCore
|
||||
//! Callsigns currently received
|
||||
//! \threadsafe
|
||||
//! @{
|
||||
QString getReceivingCallsignsCom1() const;
|
||||
QString getReceivingCallsignsCom2() const;
|
||||
QStringList getReceivingCallsignsCom1Com2() const;
|
||||
QString getReceivingCallsignsStringCom1() const;
|
||||
QString getReceivingCallsignsStringCom2() const;
|
||||
BlackMisc::Aviation::CCallsignSet getReceivingCallsignsCom1() const;
|
||||
BlackMisc::Aviation::CCallsignSet getReceivingCallsignsCom2() const;
|
||||
QStringList getReceivingCallsignsStringCom1Com2() const;
|
||||
//! @}
|
||||
|
||||
//! Update the voice server URL
|
||||
@@ -248,6 +250,10 @@ namespace BlackCore
|
||||
//! \remark callsigns I do receive
|
||||
void receivingCallsignsChanged(const BlackCore::Afv::Audio::TransceiverReceivingCallsignsChangedArgs &args);
|
||||
|
||||
//! Received callsigns have been changed
|
||||
//! \remark swift style per com units
|
||||
void receivedCallsignsChanged(const BlackMisc::Aviation::CCallsignSet &com1Callsigns, const BlackMisc::Aviation::CCallsignSet &com2Callsigns);
|
||||
|
||||
//! Connection status has been changed
|
||||
void connectionStatusChanged(ConnectionStatus status);
|
||||
|
||||
@@ -285,6 +291,7 @@ namespace BlackCore
|
||||
|
||||
void updateTransceivers(bool updateFrequencies = true);
|
||||
void onUpdateTransceiversFromContext(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator);
|
||||
void onReceivingCallsignsChanged(const BlackCore::Afv::Audio::TransceiverReceivingCallsignsChangedArgs &args);
|
||||
|
||||
//! All aliased stations
|
||||
//! \threadsafe
|
||||
@@ -333,7 +340,7 @@ namespace BlackCore
|
||||
std::atomic_bool m_isStarted { false };
|
||||
std::atomic_bool m_loopbackOn { false };
|
||||
std::atomic_bool m_winCoInitialized { false }; //!< Windows only CoInitializeEx
|
||||
std::atomic_bool m_integratedComUnit {false}; //!< is COM unit sychronized, integrated
|
||||
std::atomic_bool m_integratedComUnit { false }; //!< is COM unit sychronized, integrated
|
||||
|
||||
QDateTime m_startDateTimeUtc;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user