From cc7bfd90f120a7f5e97b17775780c1ae4d631215 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Fri, 10 Jul 2015 16:27:42 -0700 Subject: [PATCH] Move audio packet handling to listener in Agent --- assignment-client/src/Agent.cpp | 24 ++++++++++++------------ assignment-client/src/Agent.h | 3 +++ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/assignment-client/src/Agent.cpp b/assignment-client/src/Agent.cpp index 916e07d7e9..0576a0d4f0 100644 --- a/assignment-client/src/Agent.cpp +++ b/assignment-client/src/Agent.cpp @@ -47,6 +47,10 @@ Agent::Agent(const QByteArray& packet) : DependencyManager::set(); DependencyManager::set(); + + auto& packetReceiver = DependencyManager::get()->getPackingReceiver(); + packetReceiver.registerPacketListener(PacketType::MixedAudio, this, "handleAudioPacket"); + packetReceiver.registerPacketListener(PacketType::SilentAudioFrame, this, "handleAudioPacket"); } void Agent::readPendingDatagrams() { @@ -106,23 +110,19 @@ void Agent::readPendingDatagrams() { if (datagramPacketType == PacketType::EntityData || datagramPacketType == PacketType::EntityErase) { _entityViewer.processDatagram(mutablePacket, sourceNode); } - - } else if (datagramPacketType == PacketType::MixedAudio || datagramPacketType == PacketType::SilentAudioFrame) { - - _receivedAudioStream.parseData(receivedPacket); - - _lastReceivedAudioLoudness = _receivedAudioStream.getNextOutputFrameLoudness(); - - _receivedAudioStream.clearBuffer(); - - // let this continue through to the NodeList so it updates last heard timestamp - // for the sending audio mixer - DependencyManager::get()->processNodeData(senderSockAddr, receivedPacket); } } } } +void Agent::handleAudioPacket(QSharedPointer packet, SharedNodePointer senderNode, HifiSockAddr senderSockAddr) { + _receivedAudioStream.parseData(receivedPacket); + + _lastReceivedAudioLoudness = _receivedAudioStream.getNextOutputFrameLoudness(); + + _receivedAudioStream.clearBuffer(); +} + const QString AGENT_LOGGING_NAME = "agent"; void Agent::run() { diff --git a/assignment-client/src/Agent.h b/assignment-client/src/Agent.h index 415b14c0da..bee043f6f4 100644 --- a/assignment-client/src/Agent.h +++ b/assignment-client/src/Agent.h @@ -55,6 +55,9 @@ public slots: void readPendingDatagrams(); void playAvatarSound(Sound* avatarSound) { _scriptEngine.setAvatarSound(avatarSound); } +private slots: + void handleAudioPacket(QSharedPointer packet, SharedNodePointer senderNode, HifiSockAddr senderSockAddr); + private: ScriptEngine _scriptEngine; EntityEditPacketSender _entityEditSender;