From 324a2601fc2ebe94ede06297374ff3fdc5b40c96 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 14 Jun 2017 11:00:22 -0700 Subject: [PATCH] send down replicated message to avatar mixer handling --- assignment-client/src/audio/AudioMixer.cpp | 2 +- assignment-client/src/avatars/AvatarMixer.cpp | 22 ++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/assignment-client/src/audio/AudioMixer.cpp b/assignment-client/src/audio/AudioMixer.cpp index e397254441..a98c172ef3 100644 --- a/assignment-client/src/audio/AudioMixer.cpp +++ b/assignment-client/src/audio/AudioMixer.cpp @@ -125,7 +125,7 @@ void AudioMixer::queueReplicatedAudioPacket(QSharedPointer mess replicatedNode->setLastHeardMicrostamp(usecTimestampNow()); replicatedNode->setIsUpstream(true); - // construct a "fake" avatar data received message from the byte array and packet list information + // construct a "fake" audio received message from the byte array and packet list information auto audioData = message->getMessage().mid(NUM_BYTES_RFC4122_UUID); PacketType rewrittenType; diff --git a/assignment-client/src/avatars/AvatarMixer.cpp b/assignment-client/src/avatars/AvatarMixer.cpp index c88108fb36..9bed3e1351 100644 --- a/assignment-client/src/avatars/AvatarMixer.cpp +++ b/assignment-client/src/avatars/AvatarMixer.cpp @@ -76,15 +76,27 @@ void AvatarMixer::handleReplicatedPackets(QSharedPointer messag replicatedNode->setLastHeardMicrostamp(usecTimestampNow()); replicatedNode->setIsUpstream(true); - // seek back in the message so the packet handler can start by reading the source ID - message->seek(0); + // construct a "fake" avatar data received message from the byte array and packet list information + auto originalPacketData = message->getMessage().mid(NUM_BYTES_RFC4122_UUID); - switch (message->getType()) { + PacketType rewrittenType; + + if (message->getType() == PacketType::ReplicatedAvatarIdentity) { + rewrittenType = PacketType::AvatarIdentity; + } else if (message->getType() == PacketType::ReplicatedKillAvatar) { + rewrittenType = PacketType::KillAvatar; + } + + auto replicatedMessage = QSharedPointer::create(originalPacketData, rewrittenType, + versionForPacketType(rewrittenType), + message->getSenderSockAddr(), nodeID); + + switch (rewrittenType) { case PacketType::ReplicatedAvatarIdentity: - handleAvatarIdentityPacket(message, replicatedNode); + handleAvatarIdentityPacket(replicatedMessage, replicatedNode); break; case PacketType::ReplicatedKillAvatar: - handleKillAvatarPacket(message, replicatedNode); + handleKillAvatarPacket(replicatedMessage, replicatedNode); break; default: // Do nothing