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);
#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()

View file

@ -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<Agent>::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 {

View file

@ -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);

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
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();
}