From f9251471da08e7a2213bc28b52a05a04abe85dec Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 26 May 2015 10:44:45 -0700 Subject: [PATCH] add audio connection to final part of connection steps --- libraries/audio-client/src/AudioClient.cpp | 4 +++- libraries/networking/src/AddressManager.cpp | 3 +-- libraries/networking/src/NodeList.cpp | 8 ++++++++ libraries/networking/src/NodeList.h | 8 ++++++-- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index 7c93bb0252..2bf25a3575 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -875,7 +875,7 @@ void AudioClient::handleAudioInput() { _stats.sentPacket(); - // qDebug() << "Sending audio packet at" << usecTimestampNow(); + nodeList->flagTimeForConnectionStep(NodeList::ConnectionStep::SendFirstAudioPacket); int packetBytes = currentPacketPtr - audioDataPacket; nodeList->writeDatagram(audioDataPacket, packetBytes, audioMixer); @@ -923,6 +923,8 @@ void AudioClient::sendMuteEnvironmentPacket() { } void AudioClient::addReceivedAudioToStream(const QByteArray& audioByteArray) { + DependencyManager::get()->flagTimeForConnectionStep(NodeList::ConnectionStep::ReceiveFirstAudioPacket); + if (_audioOutput) { // Audio output must exist and be correctly set up if we're going to process received audio _receivedAudioStream.parseData(audioByteArray); diff --git a/libraries/networking/src/AddressManager.cpp b/libraries/networking/src/AddressManager.cpp index 34d43a894e..63bcf4c4bc 100644 --- a/libraries/networking/src/AddressManager.cpp +++ b/libraries/networking/src/AddressManager.cpp @@ -106,8 +106,7 @@ bool AddressManager::handleUrl(const QUrl& lookupUrl) { qCDebug(networking) << "Trying to go to URL" << lookupUrl.toString(); - DependencyManager::get()->flagTimeForConnectionStep(NodeList::ConnectionStep::LookupAddress, - usecTimestampNow()); + DependencyManager::get()->flagTimeForConnectionStep(NodeList::ConnectionStep::LookupAddress); // there are 4 possible lookup strings diff --git a/libraries/networking/src/NodeList.cpp b/libraries/networking/src/NodeList.cpp index 6d172ed8ea..31e7a88e66 100644 --- a/libraries/networking/src/NodeList.cpp +++ b/libraries/networking/src/NodeList.cpp @@ -636,6 +636,10 @@ void NodeList::pingInactiveNodes() { if (!node->getActiveSocket()) { // we don't have an active link to this node, ping it to set that up pingPunchForInactiveNode(node); + + if (node->getType() == NodeType::AudioMixer) { + flagTimeForConnectionStep(NodeList::ConnectionStep::SendFirstAudioPing); + } } }); } @@ -657,6 +661,10 @@ void NodeList::activateSocketFromNodeCommunication(const QByteArray& packet, con } else if (pingType == PingType::Symmetric && !sendingNode->getActiveSocket()) { sendingNode->activateSymmetricSocket(); } + + if (sendingNode->getType() == NodeType::AudioMixer) { + flagTimeForConnectionStep(NodeList::ConnectionStep::SetAudioMixerSocket); + } } void NodeList::flagTimeForConnectionStep(NodeList::ConnectionStep::Value connectionStep) { diff --git a/libraries/networking/src/NodeList.h b/libraries/networking/src/NodeList.h index c2b460ecc2..2ceee95f94 100644 --- a/libraries/networking/src/NodeList.h +++ b/libraries/networking/src/NodeList.h @@ -60,7 +60,11 @@ public: SetDomainHostname, SetDomainSocket, SendFirstDSCheckIn, - ReceiveFirstDSList + ReceiveFirstDSList, + SendFirstAudioPing, + SetAudioMixerSocket, + SendFirstAudioPacket, + ReceiveFirstAudioPacket }; }; @@ -116,7 +120,7 @@ private: void sendDSPathQuery(const QString& newPath); - void flagTimeForConnectionStep(NodeList::ConnectionStep::Value connectionStep, qint64 timestamp); + void flagTimeForConnectionStep(NodeList::ConnectionStep::Value connectionStep, quint64 timestamp); NodeType_t _ownerType; NodeSet _nodeTypesOfInterest;