Merge pull request #7024 from birarda/audio-mute-crash

fix for audio-mixer mute env crash
This commit is contained in:
James B. Pollack 2016-02-04 08:53:10 -08:00
commit 8b09cf3b82

View file

@ -552,16 +552,23 @@ void AudioMixer::handleMuteEnvironmentPacket(QSharedPointer<ReceivedMessage> mes
auto nodeList = DependencyManager::get<NodeList>(); auto nodeList = DependencyManager::get<NodeList>();
if (sendingNode->isAllowedEditor()) { if (sendingNode->isAllowedEditor()) {
qDebug() << "Received a mute environment packet of" << message->getSize() << "bytes"; glm::vec3 position;
float radius;
auto newPacket = NLPacket::create(PacketType::MuteEnvironment, message->getSize()); auto newPacket = NLPacket::create(PacketType::MuteEnvironment, sizeof(position) + sizeof(radius));
// Copy payload
newPacket->write(message->getRawMessage(), message->getSize()); // read the position and radius from the sent packet
message->readPrimitive(&position);
message->readPrimitive(&radius);
// write them to our packet
newPacket->writePrimitive(position);
newPacket->writePrimitive(radius);
nodeList->eachNode([&](const SharedNodePointer& node){ nodeList->eachNode([&](const SharedNodePointer& node){
if (node->getType() == NodeType::Agent && node->getActiveSocket() && if (node->getType() == NodeType::Agent && node->getActiveSocket() &&
node->getLinkedData() && node != sendingNode) { node->getLinkedData() && node != sendingNode) {
nodeList->sendPacket(std::move(newPacket), *node); nodeList->sendUnreliablePacket(*newPacket, *node);
} }
}); });
} }
@ -1105,5 +1112,3 @@ void AudioMixer::parseSettingsObject(const QJsonObject &settingsObject) {
} }
} }
} }