send down replicated message to avatar mixer handling

This commit is contained in:
Stephen Birarda 2017-06-14 11:00:22 -07:00
parent f6f3087580
commit 324a2601fc
2 changed files with 18 additions and 6 deletions

View file

@ -125,7 +125,7 @@ void AudioMixer::queueReplicatedAudioPacket(QSharedPointer<ReceivedMessage> mess
replicatedNode->setLastHeardMicrostamp(usecTimestampNow()); replicatedNode->setLastHeardMicrostamp(usecTimestampNow());
replicatedNode->setIsUpstream(true); 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); auto audioData = message->getMessage().mid(NUM_BYTES_RFC4122_UUID);
PacketType rewrittenType; PacketType rewrittenType;

View file

@ -76,15 +76,27 @@ void AvatarMixer::handleReplicatedPackets(QSharedPointer<ReceivedMessage> messag
replicatedNode->setLastHeardMicrostamp(usecTimestampNow()); replicatedNode->setLastHeardMicrostamp(usecTimestampNow());
replicatedNode->setIsUpstream(true); replicatedNode->setIsUpstream(true);
// seek back in the message so the packet handler can start by reading the source ID // construct a "fake" avatar data received message from the byte array and packet list information
message->seek(0); 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<ReceivedMessage>::create(originalPacketData, rewrittenType,
versionForPacketType(rewrittenType),
message->getSenderSockAddr(), nodeID);
switch (rewrittenType) {
case PacketType::ReplicatedAvatarIdentity: case PacketType::ReplicatedAvatarIdentity:
handleAvatarIdentityPacket(message, replicatedNode); handleAvatarIdentityPacket(replicatedMessage, replicatedNode);
break; break;
case PacketType::ReplicatedKillAvatar: case PacketType::ReplicatedKillAvatar:
handleKillAvatarPacket(message, replicatedNode); handleKillAvatarPacket(replicatedMessage, replicatedNode);
break; break;
default: default:
// Do nothing // Do nothing