From daac10511e1a70506d23dc46ff265dba2fda5de2 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 18 Apr 2013 16:58:08 -0700 Subject: [PATCH] output avatar mixer stats below the voxel stats --- domain-server/src/main.cpp | 2 +- interface/src/main.cpp | 7 +++++++ libraries/shared/src/AgentList.cpp | 19 ++++++++++++++++++- libraries/shared/src/AgentList.h | 4 +++- 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/domain-server/src/main.cpp b/domain-server/src/main.cpp index 8ab62eaeeb..05e1583fca 100644 --- a/domain-server/src/main.cpp +++ b/domain-server/src/main.cpp @@ -133,7 +133,7 @@ int main(int argc, const char * argv[]) if (DEBUG_TO_SELF || !agent->matches((sockaddr *)&agentPublicAddress, (sockaddr *)&agentLocalAddress, agentType)) { - if (strchr(SOLO_AGENT_TYPES_STRING, (int) agent->getType()) == NULL) { + if (memchr(SOLO_AGENT_TYPES_STRING, agent->getType(), 1) == NULL) { // this is an agent of which there can be multiple, just add them to the packet currentBufferPos = addAgentToBroadcastPacket(currentBufferPos, &(*agent)); } else { diff --git a/interface/src/main.cpp b/interface/src/main.cpp index 9c548a5c33..17b8ad8ec3 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -263,6 +263,13 @@ void displayStats(void) voxelStats << "Voxels Bytes per Colored: " << voxelsBytesPerColored; drawtext(10, statsVerticalOffset + 310, 0.10f, 0, 1.0, 0, (char *)voxelStats.str().c_str()); + + Agent *avatarMixer = AgentList::getInstance()->soloAgentOfType(AGENT_TYPE_AVATAR_MIXER); + char avatarMixerStats[200]; + sprintf(avatarMixerStats, "Avatar Mixer - %.f kbps, %.f pps", + roundf(avatarMixer->getAverageKilobitsPerSecond()), + roundf(avatarMixer->getAveragePacketsPerSecond())); + drawtext(10, statsVerticalOffset + 330, 0.10f, 0, 1.0, 0, avatarMixerStats); if (::perfStatsOn) { // Get the PerfStats group details. We need to allocate and array of char* long enough to hold 1+groups diff --git a/libraries/shared/src/AgentList.cpp b/libraries/shared/src/AgentList.cpp index 9749e390c0..5316eee79c 100644 --- a/libraries/shared/src/AgentList.cpp +++ b/libraries/shared/src/AgentList.cpp @@ -24,7 +24,12 @@ using shared_lib::printLog; -const char * SOLO_AGENT_TYPES_STRING = "MV"; +const char SOLO_AGENT_TYPES_STRING[] = { + AGENT_TYPE_AVATAR_MIXER, + AGENT_TYPE_AUDIO_MIXER, + AGENT_TYPE_VOXEL +}; + char DOMAIN_HOSTNAME[] = "highfidelity.below92.com"; char DOMAIN_IP[100] = ""; // IP Address will be re-set by lookup on startup const int DOMAINSERVER_PORT = 40102; @@ -287,6 +292,18 @@ void AgentList::handlePingReply(sockaddr *agentAddress) { } } +Agent* AgentList::soloAgentOfType(char agentType) { + if (memchr(SOLO_AGENT_TYPES_STRING, agentType, 1)) { + for(std::vector::iterator agent = agents.begin(); agent != agents.end(); agent++) { + if (agent->getType() == agentType) { + return &*agent; + } + } + } + + return NULL; +} + void *pingUnknownAgents(void *args) { AgentList *agentList = (AgentList *)args; diff --git a/libraries/shared/src/AgentList.h b/libraries/shared/src/AgentList.h index 4dfa9359bf..adc66333f9 100644 --- a/libraries/shared/src/AgentList.h +++ b/libraries/shared/src/AgentList.h @@ -22,7 +22,7 @@ const int MAX_PACKET_SIZE = 1500; const unsigned int AGENT_SOCKET_LISTEN_PORT = 40103; const int AGENT_SILENCE_THRESHOLD_USECS = 2 * 1000000; -extern const char *SOLO_AGENT_TYPES_STRING; +extern const char SOLO_AGENT_TYPES_STRING[]; extern char DOMAIN_HOSTNAME[]; extern char DOMAIN_IP[100]; // IP Address will be re-set by lookup on startup @@ -59,6 +59,8 @@ public: char getOwnerType(); unsigned int getSocketListenPort(); + Agent* soloAgentOfType(char agentType); + void startSilentAgentRemovalThread(); void stopSilentAgentRemovalThread(); void startDomainServerCheckInThread();