From ae7f3e71d8256ab0200af4d45153763fe75cbb5c Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 9 Apr 2013 16:56:19 -0700 Subject: [PATCH] broadcast to VS and avatar mixer on position change --- interface/src/main.cpp | 20 ++++++++++++-------- shared/src/AgentList.cpp | 8 -------- shared/src/AgentList.h | 6 +----- voxel/src/main.cpp | 6 +++--- 4 files changed, 16 insertions(+), 24 deletions(-) diff --git a/interface/src/main.cpp b/interface/src/main.cpp index cac960d35c..14c0de39e0 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -532,11 +532,15 @@ void simulateHead(float frametime) myHead.setAverageLoudness(averageLoudness); #endif - // Send my stream of head/hand data to the avatar mixer - const int MAX_BROADCAST_STRING = 200; - char broadcast_string[MAX_BROADCAST_STRING]; - int broadcast_bytes = myHead.getBroadcastData(broadcast_string); - agentList.getAgentSocket().send(AVATAR_SERVER_IP, AVATAR_SERVER_PORT, broadcast_string, broadcast_bytes); + // Send my stream of head/hand data to the avatar mixer and voxel server + char broadcastString[200]; + int broadcastBytes = myHead.getBroadcastData(broadcast_string); + + char broadcastReceivers[2]; + *broadcastReceivers = AGENT_TYPE_VOXEL; + *(broadcastReceivers + 1) = AGENT_TYPE_AVATAR_MIXER; + + agentList.broadcastToAgents(broadcast_string, broadcast_bytes, broadcastReceivers); // If I'm in paint mode, send a voxel out to VOXEL server agents. if (::paintOn) { @@ -556,7 +560,7 @@ void simulateHead(float frametime) ::paintingVoxel.z >= 0.0 && ::paintingVoxel.z <= 1.0) { if (createVoxelEditMessage(PACKET_HEADER_SET_VOXEL,0,1,&::paintingVoxel,bufferOut,sizeOut)){ - agentList.broadcastToAgents((char*)bufferOut, sizeOut,AgentList::AGENTS_OF_TYPE_VOXEL); + agentList.broadcastToAgents((char*)bufferOut, sizeOut, AGENT_TYPE_VOXEL); delete bufferOut; } } @@ -809,14 +813,14 @@ void sendVoxelServerEraseAll() { char message[100]; sprintf(message,"%c%s",'Z',"erase all"); int messageSize = strlen(message)+1; - ::agentList.broadcastToAgents(message, messageSize,AgentList::AGENTS_OF_TYPE_VOXEL); + ::agentList.broadcastToAgents(message, messageSize, AGENT_TYPE_VOXEL); } void sendVoxelServerAddScene() { char message[100]; sprintf(message,"%c%s",'Z',"add scene"); int messageSize = strlen(message)+1; - ::agentList.broadcastToAgents(message, messageSize,AgentList::AGENTS_OF_TYPE_VOXEL); + ::agentList.broadcastToAgents(message, messageSize, AGENT_TYPE_VOXEL); } void shiftPaintingColor() diff --git a/shared/src/AgentList.cpp b/shared/src/AgentList.cpp index a5bafd4801..64b387c8b7 100644 --- a/shared/src/AgentList.cpp +++ b/shared/src/AgentList.cpp @@ -24,9 +24,7 @@ const char * SOLO_AGENT_TYPES_STRING = "MV"; char DOMAIN_HOSTNAME[] = "highfidelity.below92.com"; char DOMAIN_IP[100] = ""; // IP Address will be re-set by lookup on startup -char AVATAR_SERVER_IP[100] = ""; const int DOMAINSERVER_PORT = 40102; -const int AVATAR_SERVER_PORT = 55444; bool silentAgentThreadStopFlag = false; bool domainServerCheckinStopFlag = false; @@ -232,11 +230,6 @@ bool AgentList::addOrUpdateAgent(sockaddr *publicSocket, sockaddr *localSocket, } } -// XXXBHG - do we want to move these? -const char* AgentList::AGENTS_OF_TYPE_HEAD = "H"; -const char* AgentList::AGENTS_OF_TYPE_VOXEL_AND_INTERFACE = "VI"; -const char* AgentList::AGENTS_OF_TYPE_VOXEL = "V"; - void AgentList::broadcastToAgents(char *broadcastData, size_t dataBytes,const char* agentTypes) { for(std::vector::iterator agent = agents.begin(); agent != agents.end(); agent++) { // only send to the AgentTypes we are asked to send to. @@ -348,7 +341,6 @@ void *checkInWithDomainServer(void *args) { sockaddr_in tempAddress; memcpy(&tempAddress.sin_addr, pHostInfo->h_addr_list[0], pHostInfo->h_length); strcpy(DOMAIN_IP, inet_ntoa(tempAddress.sin_addr)); - strcpy(AVATAR_SERVER_IP, inet_ntoa(tempAddress.sin_addr)); printf("Domain server %s: \n", DOMAIN_HOSTNAME); } else { diff --git a/shared/src/AgentList.h b/shared/src/AgentList.h index 4a3cd2f234..cdbbeda4f4 100644 --- a/shared/src/AgentList.h +++ b/shared/src/AgentList.h @@ -67,11 +67,7 @@ public: void stopSilentAgentRemovalThread(); void startDomainServerCheckInThread(); void stopDomainServerCheckInThread(); - - static const char* AGENTS_OF_TYPE_HEAD; - static const char* AGENTS_OF_TYPE_VOXEL_AND_INTERFACE; - static const char* AGENTS_OF_TYPE_VOXEL; - + }; int unpackAgentId(unsigned char *packedData, uint16_t *agentId); diff --git a/voxel/src/main.cpp b/voxel/src/main.cpp index 3990a82eac..4879a48f08 100644 --- a/voxel/src/main.cpp +++ b/voxel/src/main.cpp @@ -345,7 +345,7 @@ int main(int argc, const char * argv[]) // Now send this to the connected agents so they know to delete printf("rebroadcasting delete voxel message to connected agents... agentList.broadcastToAgents()\n"); - agentList.broadcastToAgents(packetData,receivedBytes,AgentList::AGENTS_OF_TYPE_HEAD); + agentList.broadcastToAgents(packetData,receivedBytes, AGENT_TYPE_INTERFACE); } if (packetData[0] == PACKET_HEADER_Z_COMMAND) { @@ -373,12 +373,12 @@ int main(int argc, const char * argv[]) // Now send this to the connected agents so they can also process these messages printf("rebroadcasting Z message to connected agents... agentList.broadcastToAgents()\n"); - agentList.broadcastToAgents(packetData,receivedBytes,AgentList::AGENTS_OF_TYPE_HEAD); + agentList.broadcastToAgents(packetData,receivedBytes, AGENT_TYPE_INTERFACE); } if (packetData[0] == PACKET_HEADER_HEAD_DATA) { if (agentList.addOrUpdateAgent(&agentPublicAddress, &agentPublicAddress, - packetData[0], + AGENT_TYPE_INTERFACE, agentList.getLastAgentId())) { agentList.increaseAgentId(); }