From 7ac962ed77fa0c637240ddfb8bc1da4e87639adf Mon Sep 17 00:00:00 2001 From: Roland Rossgotterer Date: Thu, 19 Sep 2019 15:47:56 +0200 Subject: [PATCH] Add methods to read received callsigns from AFV ref T729 --- .../afv/audio/receiversampleprovider.cpp | 8 +++++++- .../afv/audio/receiversampleprovider.h | 2 ++ .../afv/audio/soundcardsampleprovider.cpp | 5 +++++ .../afv/audio/soundcardsampleprovider.h | 1 + src/blackcore/afv/clients/afvclient.cpp | 18 ++++++++++++++++++ src/blackcore/afv/clients/afvclient.h | 6 +++++- 6 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/blackcore/afv/audio/receiversampleprovider.cpp b/src/blackcore/afv/audio/receiversampleprovider.cpp index 26ed87c8d..5b061ab78 100644 --- a/src/blackcore/afv/audio/receiversampleprovider.cpp +++ b/src/blackcore/afv/audio/receiversampleprovider.cpp @@ -123,12 +123,13 @@ namespace BlackCore } } + m_receivingCallsigns = receivingCallsigns.join(','); TransceiverReceivingCallsignsChangedArgs args = { m_id, receivingCallsigns }; emit receivingCallsignsChanged(args); } lastNumberOfInUseInputs = numberOfInUseInputs; -// return volume.Read(buffer, offset, count); +// return volume.Read(buffer, offset, count); return m_mixer->readSamples(samples, count); } @@ -199,6 +200,11 @@ namespace BlackCore } } + QString ReceiverSampleProvider::getReceivingCallsigns() const + { + return m_receivingCallsigns; + } + } // ns } // ns diff --git a/src/blackcore/afv/audio/receiversampleprovider.h b/src/blackcore/afv/audio/receiversampleprovider.h index f2d251a61..7dfc9fafd 100644 --- a/src/blackcore/afv/audio/receiversampleprovider.h +++ b/src/blackcore/afv/audio/receiversampleprovider.h @@ -52,6 +52,7 @@ namespace BlackCore void addSilentSamples(const IAudioDto &audioDto, uint frequency, float distanceRatio); quint16 getId() const { return m_id; } + QString getReceivingCallsigns() const; signals: void receivingCallsignsChanged(const TransceiverReceivingCallsignsChangedArgs &args); @@ -69,6 +70,7 @@ namespace BlackCore MixingSampleProvider *m_mixer; // TODO SignalGenerator blockTone; QVector m_voiceInputs; + QString m_receivingCallsigns; bool m_doClickWhenAppropriate = false; int lastNumberOfInUseInputs = 0; diff --git a/src/blackcore/afv/audio/soundcardsampleprovider.cpp b/src/blackcore/afv/audio/soundcardsampleprovider.cpp index 19d2b9c72..92c313e60 100644 --- a/src/blackcore/afv/audio/soundcardsampleprovider.cpp +++ b/src/blackcore/afv/audio/soundcardsampleprovider.cpp @@ -173,6 +173,11 @@ namespace BlackCore } } + QString SoundcardSampleProvider::getReceivingCallsigns(quint16 transceiverID) + { + return m_receiverInputs.at(transceiverID)->getReceivingCallsigns(); + } + } // ns } // ns } // ns diff --git a/src/blackcore/afv/audio/soundcardsampleprovider.h b/src/blackcore/afv/audio/soundcardsampleprovider.h index 2a31c1a64..fbad8abf3 100644 --- a/src/blackcore/afv/audio/soundcardsampleprovider.h +++ b/src/blackcore/afv/audio/soundcardsampleprovider.h @@ -40,6 +40,7 @@ namespace BlackCore virtual int readSamples(QVector &samples, qint64 count) override; void addOpusSamples(const IAudioDto &audioDto, const QVector &rxTransceivers); void updateRadioTransceivers(const QVector &radioTransceivers); + QString getReceivingCallsigns(quint16 transceiverID); signals: void receivingCallsignsChanged(const TransceiverReceivingCallsignsChangedArgs &args); diff --git a/src/blackcore/afv/clients/afvclient.cpp b/src/blackcore/afv/clients/afvclient.cpp index b45a5acdb..d4659dc00 100644 --- a/src/blackcore/afv/clients/afvclient.cpp +++ b/src/blackcore/afv/clients/afvclient.cpp @@ -347,6 +347,24 @@ namespace BlackCore emit outputVolumePeakVU(m_outputVolumeStream.PeakVU); } + QString AFVClient::getReceivingCallsignsCom1() + { + if (soundcardSampleProvider) + { + return soundcardSampleProvider->getReceivingCallsigns(0); + } + return {}; + } + + QString AFVClient::getReceivingCallsignsCom2() + { + if (soundcardSampleProvider) + { + return soundcardSampleProvider->getReceivingCallsigns(1); + } + return {}; + } + void AFVClient::updateTransceiversFromContext(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator) { Q_UNUSED(originator); diff --git a/src/blackcore/afv/clients/afvclient.h b/src/blackcore/afv/clients/afvclient.h index df197bb45..24cad7a5f 100644 --- a/src/blackcore/afv/clients/afvclient.h +++ b/src/blackcore/afv/clients/afvclient.h @@ -40,6 +40,8 @@ namespace BlackCore Q_OBJECT Q_PROPERTY(float inputVolumePeakVU READ getInputVolumePeakVU NOTIFY inputVolumePeakVU) Q_PROPERTY(float outputVolumePeakVU READ getOutputVolumePeakVU NOTIFY outputVolumePeakVU) + Q_PROPERTY(QString receivingCallsignsCom1 READ getReceivingCallsignsCom1 NOTIFY receivingCallsignsChanged) + Q_PROPERTY(QString receivingCallsignsCom2 READ getReceivingCallsignsCom2 NOTIFY receivingCallsignsChanged) public: //! Ctor @@ -96,7 +98,7 @@ namespace BlackCore float getOutputVolumePeakVU() const { return m_outputVolumeStream.PeakVU; } signals: - void receivingCallsignsChanged(const Audio::TransceiverReceivingCallsignsChangedArgs &args); + void receivingCallsignsChanged(const TransceiverReceivingCallsignsChangedArgs &args); void inputVolumePeakVU(float value); void outputVolumePeakVU(float value); @@ -105,6 +107,8 @@ namespace BlackCore void audioOutDataAvailable(const AudioRxOnTransceiversDto &dto); void inputVolumeStream(const Audio::InputVolumeStreamArgs &args); void outputVolumeStream(const Audio::OutputVolumeStreamArgs &args); + QString getReceivingCallsignsCom1(); + QString getReceivingCallsignsCom2(); void input_OpusDataAvailable();