mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-07-10 16:18:39 +02:00
ping the AssetClient from the agent
This commit is contained in:
parent
5908f2d398
commit
3fa0bcbcd9
1 changed files with 15 additions and 14 deletions
|
@ -43,20 +43,20 @@ Agent::Agent(NLPacket& packet) :
|
||||||
DEFAULT_WINDOW_SECONDS_FOR_DESIRED_REDUCTION, false))
|
DEFAULT_WINDOW_SECONDS_FOR_DESIRED_REDUCTION, false))
|
||||||
{
|
{
|
||||||
DependencyManager::get<EntityScriptingInterface>()->setPacketSender(&_entityEditSender);
|
DependencyManager::get<EntityScriptingInterface>()->setPacketSender(&_entityEditSender);
|
||||||
|
|
||||||
auto assetClient = DependencyManager::set<AssetClient>();
|
auto assetClient = DependencyManager::set<AssetClient>();
|
||||||
|
|
||||||
QThread* assetThread = new QThread;
|
QThread* assetThread = new QThread;
|
||||||
assetThread->setObjectName("Asset Thread");
|
assetThread->setObjectName("Asset Thread");
|
||||||
assetClient->moveToThread(assetThread);
|
assetClient->moveToThread(assetThread);
|
||||||
connect(assetThread, &QThread::started, assetClient.data(), &AssetClient::init);
|
connect(assetThread, &QThread::started, assetClient.data(), &AssetClient::init);
|
||||||
assetThread->start();
|
assetThread->start();
|
||||||
|
|
||||||
DependencyManager::set<ResourceCacheSharedItems>();
|
DependencyManager::set<ResourceCacheSharedItems>();
|
||||||
DependencyManager::set<SoundCache>();
|
DependencyManager::set<SoundCache>();
|
||||||
|
|
||||||
auto& packetReceiver = DependencyManager::get<NodeList>()->getPacketReceiver();
|
auto& packetReceiver = DependencyManager::get<NodeList>()->getPacketReceiver();
|
||||||
|
|
||||||
packetReceiver.registerListenerForTypes(
|
packetReceiver.registerListenerForTypes(
|
||||||
{ PacketType::MixedAudio, PacketType::SilentAudioFrame },
|
{ PacketType::MixedAudio, PacketType::SilentAudioFrame },
|
||||||
this, "handleAudioPacket");
|
this, "handleAudioPacket");
|
||||||
|
@ -75,7 +75,7 @@ void Agent::handleOctreePacket(QSharedPointer<NLPacket> packet, SharedNodePointe
|
||||||
if (packet->getPayloadSize() > statsMessageLength) {
|
if (packet->getPayloadSize() > statsMessageLength) {
|
||||||
// pull out the piggybacked packet and create a new QSharedPointer<NLPacket> for it
|
// pull out the piggybacked packet and create a new QSharedPointer<NLPacket> for it
|
||||||
int piggyBackedSizeWithHeader = packet->getPayloadSize() - statsMessageLength;
|
int piggyBackedSizeWithHeader = packet->getPayloadSize() - statsMessageLength;
|
||||||
|
|
||||||
auto buffer = std::unique_ptr<char[]>(new char[piggyBackedSizeWithHeader]);
|
auto buffer = std::unique_ptr<char[]>(new char[piggyBackedSizeWithHeader]);
|
||||||
memcpy(buffer.get(), packet->getPayload() + statsMessageLength, piggyBackedSizeWithHeader);
|
memcpy(buffer.get(), packet->getPayload() + statsMessageLength, piggyBackedSizeWithHeader);
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ void Agent::handleJurisdictionPacket(QSharedPointer<NLPacket> packet, SharedNode
|
||||||
DependencyManager::get<EntityScriptingInterface>()->getJurisdictionListener()->
|
DependencyManager::get<EntityScriptingInterface>()->getJurisdictionListener()->
|
||||||
queueReceivedPacket(packet, senderNode);
|
queueReceivedPacket(packet, senderNode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Agent::handleAudioPacket(QSharedPointer<NLPacket> packet) {
|
void Agent::handleAudioPacket(QSharedPointer<NLPacket> packet) {
|
||||||
_receivedAudioStream.parseData(*packet);
|
_receivedAudioStream.parseData(*packet);
|
||||||
|
@ -176,7 +176,7 @@ void Agent::run() {
|
||||||
|
|
||||||
// give this AvatarData object to the script engine
|
// give this AvatarData object to the script engine
|
||||||
setAvatarData(&scriptedAvatar, "Avatar");
|
setAvatarData(&scriptedAvatar, "Avatar");
|
||||||
|
|
||||||
auto avatarHashMap = DependencyManager::set<AvatarHashMap>();
|
auto avatarHashMap = DependencyManager::set<AvatarHashMap>();
|
||||||
_scriptEngine->registerGlobalObject("AvatarList", avatarHashMap.data());
|
_scriptEngine->registerGlobalObject("AvatarList", avatarHashMap.data());
|
||||||
|
|
||||||
|
@ -189,7 +189,7 @@ void Agent::run() {
|
||||||
// register ourselves to the script engine
|
// register ourselves to the script engine
|
||||||
_scriptEngine->registerGlobalObject("Agent", this);
|
_scriptEngine->registerGlobalObject("Agent", this);
|
||||||
|
|
||||||
// FIXME -we shouldn't be calling this directly, it's normally called by run(), not sure why
|
// FIXME -we shouldn't be calling this directly, it's normally called by run(), not sure why
|
||||||
// viewers would need this called.
|
// viewers would need this called.
|
||||||
//_scriptEngine->init(); // must be done before we set up the viewers
|
//_scriptEngine->init(); // must be done before we set up the viewers
|
||||||
|
|
||||||
|
@ -201,14 +201,14 @@ void Agent::run() {
|
||||||
auto entityScriptingInterface = DependencyManager::get<EntityScriptingInterface>();
|
auto entityScriptingInterface = DependencyManager::get<EntityScriptingInterface>();
|
||||||
|
|
||||||
_scriptEngine->registerGlobalObject("EntityViewer", &_entityViewer);
|
_scriptEngine->registerGlobalObject("EntityViewer", &_entityViewer);
|
||||||
|
|
||||||
// we need to make sure that init has been called for our EntityScriptingInterface
|
// we need to make sure that init has been called for our EntityScriptingInterface
|
||||||
// so that it actually has a jurisdiction listener when we ask it for it next
|
// so that it actually has a jurisdiction listener when we ask it for it next
|
||||||
entityScriptingInterface->init();
|
entityScriptingInterface->init();
|
||||||
_entityViewer.setJurisdictionListener(entityScriptingInterface->getJurisdictionListener());
|
_entityViewer.setJurisdictionListener(entityScriptingInterface->getJurisdictionListener());
|
||||||
|
|
||||||
_entityViewer.init();
|
_entityViewer.init();
|
||||||
|
|
||||||
entityScriptingInterface->setEntityTree(_entityViewer.getTree());
|
entityScriptingInterface->setEntityTree(_entityViewer.getTree());
|
||||||
|
|
||||||
// wire up our additional agent related processing to the update signal
|
// wire up our additional agent related processing to the update signal
|
||||||
|
@ -241,7 +241,7 @@ void Agent::setIsAvatar(bool isAvatar) {
|
||||||
delete _avatarIdentityTimer;
|
delete _avatarIdentityTimer;
|
||||||
_avatarIdentityTimer = nullptr;
|
_avatarIdentityTimer = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_avatarBillboardTimer) {
|
if (_avatarBillboardTimer) {
|
||||||
_avatarBillboardTimer->stop();
|
_avatarBillboardTimer->stop();
|
||||||
delete _avatarBillboardTimer;
|
delete _avatarBillboardTimer;
|
||||||
|
@ -378,7 +378,7 @@ void Agent::processAgentAvatarAndAudio(float deltaTime) {
|
||||||
|
|
||||||
void Agent::aboutToFinish() {
|
void Agent::aboutToFinish() {
|
||||||
setIsAvatar(false);// will stop timers for sending billboards and identity packets
|
setIsAvatar(false);// will stop timers for sending billboards and identity packets
|
||||||
|
|
||||||
if (_scriptEngine) {
|
if (_scriptEngine) {
|
||||||
_scriptEngine->stop();
|
_scriptEngine->stop();
|
||||||
}
|
}
|
||||||
|
@ -390,7 +390,7 @@ void Agent::aboutToFinish() {
|
||||||
|
|
||||||
// our entity tree is going to go away so tell that to the EntityScriptingInterface
|
// our entity tree is going to go away so tell that to the EntityScriptingInterface
|
||||||
DependencyManager::get<EntityScriptingInterface>()->setEntityTree(NULL);
|
DependencyManager::get<EntityScriptingInterface>()->setEntityTree(NULL);
|
||||||
|
|
||||||
// cleanup the AssetClient thread
|
// cleanup the AssetClient thread
|
||||||
QThread* assetThread = DependencyManager::get<AssetClient>()->thread();
|
QThread* assetThread = DependencyManager::get<AssetClient>()->thread();
|
||||||
DependencyManager::destroy<AssetClient>();
|
DependencyManager::destroy<AssetClient>();
|
||||||
|
@ -406,6 +406,7 @@ void Agent::sendPingRequests() {
|
||||||
case NodeType::AvatarMixer:
|
case NodeType::AvatarMixer:
|
||||||
case NodeType::AudioMixer:
|
case NodeType::AudioMixer:
|
||||||
case NodeType::EntityServer:
|
case NodeType::EntityServer:
|
||||||
|
case NodeType::AssetClient:
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in a new issue