broadcast to VS and avatar mixer on position change

This commit is contained in:
Stephen Birarda 2013-04-09 16:56:19 -07:00
parent a0f3f161b1
commit ae7f3e71d8
4 changed files with 16 additions and 24 deletions

View file

@ -532,11 +532,15 @@ void simulateHead(float frametime)
myHead.setAverageLoudness(averageLoudness); myHead.setAverageLoudness(averageLoudness);
#endif #endif
// Send my stream of head/hand data to the avatar mixer // Send my stream of head/hand data to the avatar mixer and voxel server
const int MAX_BROADCAST_STRING = 200; char broadcastString[200];
char broadcast_string[MAX_BROADCAST_STRING]; int broadcastBytes = myHead.getBroadcastData(broadcast_string);
int broadcast_bytes = myHead.getBroadcastData(broadcast_string);
agentList.getAgentSocket().send(AVATAR_SERVER_IP, AVATAR_SERVER_PORT, broadcast_string, broadcast_bytes); 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 I'm in paint mode, send a voxel out to VOXEL server agents.
if (::paintOn) { if (::paintOn) {
@ -556,7 +560,7 @@ void simulateHead(float frametime)
::paintingVoxel.z >= 0.0 && ::paintingVoxel.z <= 1.0) { ::paintingVoxel.z >= 0.0 && ::paintingVoxel.z <= 1.0) {
if (createVoxelEditMessage(PACKET_HEADER_SET_VOXEL,0,1,&::paintingVoxel,bufferOut,sizeOut)){ 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; delete bufferOut;
} }
} }
@ -809,14 +813,14 @@ void sendVoxelServerEraseAll() {
char message[100]; char message[100];
sprintf(message,"%c%s",'Z',"erase all"); sprintf(message,"%c%s",'Z',"erase all");
int messageSize = strlen(message)+1; int messageSize = strlen(message)+1;
::agentList.broadcastToAgents(message, messageSize,AgentList::AGENTS_OF_TYPE_VOXEL); ::agentList.broadcastToAgents(message, messageSize, AGENT_TYPE_VOXEL);
} }
void sendVoxelServerAddScene() { void sendVoxelServerAddScene() {
char message[100]; char message[100];
sprintf(message,"%c%s",'Z',"add scene"); sprintf(message,"%c%s",'Z',"add scene");
int messageSize = strlen(message)+1; int messageSize = strlen(message)+1;
::agentList.broadcastToAgents(message, messageSize,AgentList::AGENTS_OF_TYPE_VOXEL); ::agentList.broadcastToAgents(message, messageSize, AGENT_TYPE_VOXEL);
} }
void shiftPaintingColor() void shiftPaintingColor()

View file

@ -24,9 +24,7 @@
const char * SOLO_AGENT_TYPES_STRING = "MV"; const char * SOLO_AGENT_TYPES_STRING = "MV";
char DOMAIN_HOSTNAME[] = "highfidelity.below92.com"; char DOMAIN_HOSTNAME[] = "highfidelity.below92.com";
char DOMAIN_IP[100] = ""; // IP Address will be re-set by lookup on startup 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 DOMAINSERVER_PORT = 40102;
const int AVATAR_SERVER_PORT = 55444;
bool silentAgentThreadStopFlag = false; bool silentAgentThreadStopFlag = false;
bool domainServerCheckinStopFlag = 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) { void AgentList::broadcastToAgents(char *broadcastData, size_t dataBytes,const char* agentTypes) {
for(std::vector<Agent>::iterator agent = agents.begin(); agent != agents.end(); agent++) { for(std::vector<Agent>::iterator agent = agents.begin(); agent != agents.end(); agent++) {
// only send to the AgentTypes we are asked to send to. // only send to the AgentTypes we are asked to send to.
@ -348,7 +341,6 @@ void *checkInWithDomainServer(void *args) {
sockaddr_in tempAddress; sockaddr_in tempAddress;
memcpy(&tempAddress.sin_addr, pHostInfo->h_addr_list[0], pHostInfo->h_length); memcpy(&tempAddress.sin_addr, pHostInfo->h_addr_list[0], pHostInfo->h_length);
strcpy(DOMAIN_IP, inet_ntoa(tempAddress.sin_addr)); strcpy(DOMAIN_IP, inet_ntoa(tempAddress.sin_addr));
strcpy(AVATAR_SERVER_IP, inet_ntoa(tempAddress.sin_addr));
printf("Domain server %s: \n", DOMAIN_HOSTNAME); printf("Domain server %s: \n", DOMAIN_HOSTNAME);
} else { } else {

View file

@ -68,10 +68,6 @@ public:
void startDomainServerCheckInThread(); void startDomainServerCheckInThread();
void stopDomainServerCheckInThread(); 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); int unpackAgentId(unsigned char *packedData, uint16_t *agentId);

View file

@ -345,7 +345,7 @@ int main(int argc, const char * argv[])
// Now send this to the connected agents so they know to delete // Now send this to the connected agents so they know to delete
printf("rebroadcasting delete voxel message to connected agents... agentList.broadcastToAgents()\n"); 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) { 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 // Now send this to the connected agents so they can also process these messages
printf("rebroadcasting Z message to connected agents... agentList.broadcastToAgents()\n"); 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 (packetData[0] == PACKET_HEADER_HEAD_DATA) {
if (agentList.addOrUpdateAgent(&agentPublicAddress, if (agentList.addOrUpdateAgent(&agentPublicAddress,
&agentPublicAddress, &agentPublicAddress,
packetData[0], AGENT_TYPE_INTERFACE,
agentList.getLastAgentId())) { agentList.getLastAgentId())) {
agentList.increaseAgentId(); agentList.increaseAgentId();
} }