mirror of
https://github.com/lubosz/overte.git
synced 2025-08-07 19:41:20 +02:00
Request AvatarMixer
This commit is contained in:
parent
8847338297
commit
5d67b9d384
1 changed files with 25 additions and 4 deletions
|
@ -14,6 +14,7 @@
|
||||||
|
|
||||||
#include <AddressManager.h>
|
#include <AddressManager.h>
|
||||||
#include <AudioClient.h>
|
#include <AudioClient.h>
|
||||||
|
#include <AvatarHashMap.h>
|
||||||
#include <NodeList.h>
|
#include <NodeList.h>
|
||||||
|
|
||||||
#include "RenderingClient.h"
|
#include "RenderingClient.h"
|
||||||
|
@ -26,7 +27,9 @@ RenderingClient::RenderingClient(QObject *parent) :
|
||||||
_instance = this;
|
_instance = this;
|
||||||
|
|
||||||
// tell the NodeList which node types all rendering clients will want to know about
|
// tell the NodeList which node types all rendering clients will want to know about
|
||||||
DependencyManager::get<NodeList>()->addSetOfNodeTypesToNodeInterestSet(NodeSet() << NodeType::AudioMixer);
|
DependencyManager::get<NodeList>()->addSetOfNodeTypesToNodeInterestSet(NodeSet() << NodeType::AudioMixer << NodeType::AvatarMixer);
|
||||||
|
|
||||||
|
DependencyManager::set<AvatarHashMap>();
|
||||||
|
|
||||||
// get our audio client setup on its own thread
|
// get our audio client setup on its own thread
|
||||||
QThread* audioThread = new QThread(this);
|
QThread* audioThread = new QThread(this);
|
||||||
|
@ -56,6 +59,7 @@ RenderingClient::~RenderingClient() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderingClient::processVerifiedPacket(const HifiSockAddr& senderSockAddr, const QByteArray& incomingPacket) {
|
void RenderingClient::processVerifiedPacket(const HifiSockAddr& senderSockAddr, const QByteArray& incomingPacket) {
|
||||||
|
auto nodeList = DependencyManager::get<NodeList>();
|
||||||
PacketType incomingType = packetTypeForPacket(incomingPacket);
|
PacketType incomingType = packetTypeForPacket(incomingPacket);
|
||||||
// only process this packet if we have a match on the packet version
|
// only process this packet if we have a match on the packet version
|
||||||
switch (incomingType) {
|
switch (incomingType) {
|
||||||
|
@ -63,8 +67,7 @@ void RenderingClient::processVerifiedPacket(const HifiSockAddr& senderSockAddr,
|
||||||
case PacketTypeAudioStreamStats:
|
case PacketTypeAudioStreamStats:
|
||||||
case PacketTypeMixedAudio:
|
case PacketTypeMixedAudio:
|
||||||
case PacketTypeSilentAudioFrame: {
|
case PacketTypeSilentAudioFrame: {
|
||||||
auto nodeList = DependencyManager::get<NodeList>();
|
|
||||||
|
|
||||||
if (incomingType == PacketTypeAudioStreamStats) {
|
if (incomingType == PacketTypeAudioStreamStats) {
|
||||||
QMetaObject::invokeMethod(DependencyManager::get<AudioClient>().data(), "parseAudioStreamStatsPacket",
|
QMetaObject::invokeMethod(DependencyManager::get<AudioClient>().data(), "parseAudioStreamStatsPacket",
|
||||||
Qt::QueuedConnection,
|
Qt::QueuedConnection,
|
||||||
|
@ -89,6 +92,24 @@ void RenderingClient::processVerifiedPacket(const HifiSockAddr& senderSockAddr,
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case PacketTypeBulkAvatarData:
|
||||||
|
case PacketTypeKillAvatar:
|
||||||
|
case PacketTypeAvatarIdentity:
|
||||||
|
case PacketTypeAvatarBillboard: {
|
||||||
|
// update having heard from the avatar-mixer and record the bytes received
|
||||||
|
SharedNodePointer avatarMixer = nodeList->sendingNodeForPacket(incomingPacket);
|
||||||
|
|
||||||
|
if (avatarMixer) {
|
||||||
|
avatarMixer->setLastHeardMicrostamp(usecTimestampNow());
|
||||||
|
avatarMixer->recordBytesReceived(incomingPacket.size());
|
||||||
|
|
||||||
|
QMetaObject::invokeMethod(DependencyManager::get<AvatarHashMap>().data(),
|
||||||
|
"processAvatarMixerDatagram",
|
||||||
|
Q_ARG(const QByteArray&, incomingPacket),
|
||||||
|
Q_ARG(const QWeakPointer<Node>&, avatarMixer));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
Client::processVerifiedPacket(senderSockAddr, incomingPacket);
|
Client::processVerifiedPacket(senderSockAddr, incomingPacket);
|
||||||
break;
|
break;
|
||||||
|
@ -124,4 +145,4 @@ void RenderingClient::goToLocation(const glm::vec3& newPosition,
|
||||||
|
|
||||||
_position = shiftedPosition;
|
_position = shiftedPosition;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue