From ec0382daf75e3d8be61926b95e42651bd4c45ed5 Mon Sep 17 00:00:00 2001 From: David Kelly Date: Tue, 1 Nov 2016 18:29:31 -0700 Subject: [PATCH] PR feedback Completely deleting hrtfs incorrectly. This seems to be better, we only want to delete HRTF for the QUuid() stream for the killed node in each node's list of HRTFs. --- assignment-client/src/Agent.cpp | 12 ++++++------ assignment-client/src/audio/AudioMixer.cpp | 18 ++++++++---------- .../src/audio/AudioMixerClientData.cpp | 9 +-------- .../src/audio/AudioMixerClientData.h | 2 +- 4 files changed, 16 insertions(+), 25 deletions(-) diff --git a/assignment-client/src/Agent.cpp b/assignment-client/src/Agent.cpp index 5ca5fc748d..4472b21e9b 100644 --- a/assignment-client/src/Agent.cpp +++ b/assignment-client/src/Agent.cpp @@ -424,9 +424,9 @@ void Agent::setIsListeningToAudioStream(bool isListeningToAudioStream) { }, [&](const SharedNodePointer& node) { qDebug() << "sending KillAvatar message to Audio Mixers"; - auto packetList = NLPacketList::create(PacketType::KillAvatar, QByteArray(), true, true); - packetList->write(getSessionUUID().toRfc4122()); - nodeList->sendPacketList(std::move(packetList), *node); + auto packet = NLPacket::create(PacketType::KillAvatar, NUM_BYTES_RFC4122_UUID); + packet->write(getSessionUUID().toRfc4122()); + nodeList->sendPacket(std::move(packet), *node); }); } @@ -475,9 +475,9 @@ void Agent::setIsAvatar(bool isAvatar) { }, [&](const SharedNodePointer& node) { qDebug() << "sending KillAvatar message to Avatar and Audio Mixers"; - auto packetList = NLPacketList::create(PacketType::KillAvatar, QByteArray(), true, true); - packetList->write(getSessionUUID().toRfc4122()); - nodeList->sendPacketList(std::move(packetList), *node); + auto packet = NLPacket::create(PacketType::KillAvatar, NUM_BYTES_RFC4122_UUID); + packet->write(getSessionUUID().toRfc4122()); + nodeList->sendPacket(std::move(packet), *node); }); } emit stopAvatarAudioTimer(); diff --git a/assignment-client/src/audio/AudioMixer.cpp b/assignment-client/src/audio/AudioMixer.cpp index a8b0d61299..6390ebd302 100644 --- a/assignment-client/src/audio/AudioMixer.cpp +++ b/assignment-client/src/audio/AudioMixer.cpp @@ -602,16 +602,14 @@ void AudioMixer::handleNodeKilled(SharedNodePointer killedNode) { void AudioMixer::handleKillAvatarPacket(QSharedPointer packet, SharedNodePointer sendingNode) { auto clientData = dynamic_cast(sendingNode->getLinkedData()); if (clientData) { - QUuid streamID = clientData->removeAgentAvatarAudioStream(); - if (streamID != QUuid()) { - auto nodeList = DependencyManager::get(); - nodeList->eachNode([sendingNode, &streamID](const SharedNodePointer& node){ - auto listenerClientData = dynamic_cast(node->getLinkedData()); - if (listenerClientData) { - listenerClientData->removeHRTFForStream(sendingNode->getUUID(), streamID); - } - }); - } + clientData->removeAgentAvatarAudioStream(); + auto nodeList = DependencyManager::get(); + nodeList->eachNode([sendingNode](const SharedNodePointer& node){ + auto listenerClientData = dynamic_cast(node->getLinkedData()); + if (listenerClientData) { + listenerClientData->removeHRTFForStream(sendingNode->getUUID(), QUuid()); + } + }); } } diff --git a/assignment-client/src/audio/AudioMixerClientData.cpp b/assignment-client/src/audio/AudioMixerClientData.cpp index 4896724f8d..5b8c4aa105 100644 --- a/assignment-client/src/audio/AudioMixerClientData.cpp +++ b/assignment-client/src/audio/AudioMixerClientData.cpp @@ -73,20 +73,13 @@ void AudioMixerClientData::removeHRTFForStream(const QUuid& nodeID, const QUuid& } } -QUuid AudioMixerClientData::removeAgentAvatarAudioStream() { +void AudioMixerClientData::removeAgentAvatarAudioStream() { QWriteLocker writeLocker { &_streamsLock }; - QUuid streamId; auto it = _audioStreams.find(QUuid()); if (it != _audioStreams.end()) { - AvatarAudioStream* stream = dynamic_cast(it->second.get()); - if (stream) { - streamId = stream->getStreamIdentifier(); - } _audioStreams.erase(it); } writeLocker.unlock(); - - return streamId; } int AudioMixerClientData::parseData(ReceivedMessage& message) { diff --git a/assignment-client/src/audio/AudioMixerClientData.h b/assignment-client/src/audio/AudioMixerClientData.h index 0c5c49d331..52c659c240 100644 --- a/assignment-client/src/audio/AudioMixerClientData.h +++ b/assignment-client/src/audio/AudioMixerClientData.h @@ -50,7 +50,7 @@ public: // removes an AudioHRTF object for a given stream void removeHRTFForStream(const QUuid& nodeID, const QUuid& streamID = QUuid()); - QUuid removeAgentAvatarAudioStream(); + void removeAgentAvatarAudioStream(); int parseData(ReceivedMessage& message) override;