diff --git a/injector/src/injector.cpp b/injector/src/injector.cpp index 3845370178..3f6bb7f689 100644 --- a/injector/src/injector.cpp +++ b/injector/src/injector.cpp @@ -20,6 +20,8 @@ #include "UDPSocket.h" #include "UDPSocket.cpp" #include +#include + char EC2_WEST_AUDIO_SERVER[] = "54.241.92.53"; const int AUDIO_UDP_LISTEN_PORT = 55443; @@ -121,7 +123,7 @@ void stream(void) int leadingBytes = 1 + (sizeof(float) * 4); unsigned char dataPacket[BUFFER_LENGTH_BYTES + leadingBytes]; - dataPacket[0] = 'I'; + dataPacket[0] = PACKET_HEADER_INJECT_AUDIO; unsigned char *currentPacketPtr = dataPacket + 1; for (int p = 0; p < 4; p++) { diff --git a/interface/src/Audio.cpp b/interface/src/Audio.cpp index ce45670c45..e717d707a9 100644 --- a/interface/src/Audio.cpp +++ b/interface/src/Audio.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include "Audio.h" #include "Util.h" @@ -150,7 +151,7 @@ int audioCallback (const void *inputBuffer, // + 12 for 3 floats for position + float for bearing + 1 attenuation byte unsigned char dataPacket[BUFFER_LENGTH_BYTES + leadingBytes]; - dataPacket[0] = 'I'; + dataPacket[0] = PACKET_HEADER_INJECT_AUDIO; unsigned char *currentPacketPtr = dataPacket + 1; // memcpy the three float positions diff --git a/interface/src/VoxelSystem.cpp b/interface/src/VoxelSystem.cpp index f3eb8ec957..ca6bbee7b0 100644 --- a/interface/src/VoxelSystem.cpp +++ b/interface/src/VoxelSystem.cpp @@ -113,15 +113,15 @@ void VoxelSystem::parseData(void *data, int size) { unsigned char *voxelData = (unsigned char *) data + 1; switch(command) { - case 'V': + case PACKET_HEADER_VOXEL_DATA: // ask the VoxelTree to read the bitstream into the tree tree->readBitstreamToTree(voxelData, size - 1); break; - case 'R': + case PACKET_HEADER_ERASE_VOXEL: // ask the tree to read the "remove" bitstream tree->processRemoveVoxelBitstream((unsigned char*)data,size); break; - case 'Z': + case PACKET_HEADER_Z_COMMAND: // the Z command is a special command that allows the sender to send high level semantic // requests, like erase all, or add sphere scene, different receivers may handle these diff --git a/interface/src/main.cpp b/interface/src/main.cpp index 64d4e774c5..e7f794e0b7 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -63,6 +63,7 @@ #include "SerialInterface.h" #include #include +#include using namespace std; @@ -553,7 +554,7 @@ void simulateHead(float frametime) ::paintingVoxel.y >= 0.0 && ::paintingVoxel.y <= 1.0 && ::paintingVoxel.z >= 0.0 && ::paintingVoxel.z <= 1.0) { - if (createVoxelEditMessage('I',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); delete bufferOut; } @@ -1003,10 +1004,12 @@ void *networkReceive(void *args) packetcount++; bytescount += bytesReceived; - if (incomingPacket[0] == 't') { + if (incomingPacket[0] == PACKET_HEADER_TRANSMITTER_DATA) { // Pass everything but transmitter data to the agent list myHead.hand->processTransmitterData(incomingPacket, bytesReceived); - } else if (incomingPacket[0] == 'V' || incomingPacket[0] == 'Z') { + } else if (incomingPacket[0] == PACKET_HEADER_VOXEL_DATA || + incomingPacket[0] == PACKET_HEADER_Z_COMMAND || + incomingPacket[0] == PACKET_HEADER_ERASE_VOXEL) { voxels.parseData(incomingPacket, bytesReceived); } else { agentList.processAgentData(&senderAddress, incomingPacket, bytesReceived); diff --git a/mixer/src/main.cpp b/mixer/src/main.cpp index bb97dab353..80c2452e2f 100644 --- a/mixer/src/main.cpp +++ b/mixer/src/main.cpp @@ -20,6 +20,7 @@ #include #include #include "AudioRingBuffer.h" +#include "PacketHeaders.h" #ifdef _WIN32 #include "Syssocket.h" @@ -275,7 +276,7 @@ int main(int argc, const char * argv[]) while (true) { if(agentList.getAgentSocket().receive(agentAddress, packetData, &receivedBytes)) { - if (packetData[0] == 'I') { + if (packetData[0] == PACKET_HEADER_INJECT_AUDIO) { // Compute and report standard deviation for jitter calculation if (firstSample) { diff --git a/shared/src/AgentList.cpp b/shared/src/AgentList.cpp index 729a88ca6d..e0d4491700 100644 --- a/shared/src/AgentList.cpp +++ b/shared/src/AgentList.cpp @@ -69,12 +69,12 @@ unsigned int AgentList::getSocketListenPort() { void AgentList::processAgentData(sockaddr *senderAddress, void *packetData, size_t dataBytes) { switch (((char *)packetData)[0]) { - case 'D': { + case PACKET_HEADER_DOMAIN: { // list of agents from domain server updateList((unsigned char *)packetData, dataBytes); break; } - case 'H': { + case PACKET_HEADER_HEAD_DATA: { // head data from another agent updateAgentWithData(senderAddress, packetData, dataBytes); break; diff --git a/shared/src/PacketHeaders.h b/shared/src/PacketHeaders.h index 7c76c5d7f9..097a87604c 100644 --- a/shared/src/PacketHeaders.h +++ b/shared/src/PacketHeaders.h @@ -12,5 +12,12 @@ const char PACKET_HEADER_DOMAIN = 'D'; const char PACKET_HEADER_PING = 'P'; const char PACKET_HEADER_PING_REPLY = 'R'; +const char PACKET_HEADER_HEAD_DATA = 'H'; +const char PACKET_HEADER_Z_COMMAND = 'Z'; +const char PACKET_HEADER_INJECT_AUDIO = 'I'; +const char PACKET_HEADER_SET_VOXEL = 'S'; +const char PACKET_HEADER_ERASE_VOXEL = 'E'; +const char PACKET_HEADER_VOXEL_DATA = 'V'; +const char PACKET_HEADER_TRANSMITTER_DATA = 't'; #endif diff --git a/shared/src/SharedUtil.cpp b/shared/src/SharedUtil.cpp index be4d081c5a..60d3b1559f 100644 --- a/shared/src/SharedUtil.cpp +++ b/shared/src/SharedUtil.cpp @@ -131,7 +131,7 @@ bool cmdOptionExists(int argc, const char * argv[],const char* option) { // corresponding to the closest voxel which encloses a cube with // lower corners at x,y,z, having side of length S. // The input values x,y,z range 0.0 <= v < 1.0 -// message should be either 'I' for insert or 'R' for remove +// message should be either 'S' for SET or 'E' for ERASE // // IMPORTANT: The buffer is returned to you a buffer which you MUST delete when you are // done with it. diff --git a/shared/src/VoxelTree.cpp b/shared/src/VoxelTree.cpp index dfda1de2b5..8cefb45a11 100644 --- a/shared/src/VoxelTree.cpp +++ b/shared/src/VoxelTree.cpp @@ -309,7 +309,7 @@ unsigned char * VoxelTree::loadBitstreamBuffer(unsigned char *& bitstreamBuffer, if (strcmp((char *)stopOctalCode, (char *)currentVoxelNode->octalCode) == 0) { // this is is the root node for this packet // add the leading V - *(bitstreamBuffer++) = 'V'; + *(bitstreamBuffer++) = PACKET_HEADER_VOXEL_DATA; // add its octal code to the packet int octalCodeBytes = bytesRequiredForCodeLength(*currentVoxelNode->octalCode); diff --git a/tools/sendvoxels.php b/tools/sendvoxels.php index b71c50c8df..438c9a1b8a 100644 --- a/tools/sendvoxels.php +++ b/tools/sendvoxels.php @@ -68,15 +68,15 @@ if (empty($options['i']) && empty($options['zcommand'])) { $filename = $options['i']; $server = $options['s']; $port = empty($options['p']) ? 40106 : $options['p']; - $command = empty($options['c']) ? 'I' : $options['c']; + $command = empty($options['c']) ? 'S' : $options['c']; switch($command) { - case 'I': - case 'R': + case 'S': + case 'E': case 'Z': //$command is good break; default: - $command='I';// insert by default! + $command='S';// insert by default! } if ($options['testmode']) { diff --git a/voxel/src/main.cpp b/voxel/src/main.cpp index c3b955b22e..09834a2d3e 100644 --- a/voxel/src/main.cpp +++ b/voxel/src/main.cpp @@ -16,6 +16,7 @@ #include #include "VoxelAgentData.h" #include +#include #ifdef _WIN32 #include "Syssocket.h" @@ -293,8 +294,8 @@ int main(int argc, const char * argv[]) // loop to send to agents requesting data while (true) { if (agentList.getAgentSocket().receive(&agentPublicAddress, packetData, &receivedBytes)) { - // XXXBHG: Hacked in support for 'I' insert command - if (packetData[0] == 'I') { + // XXXBHG: Hacked in support for 'S' SET command + if (packetData[0] == PACKET_HEADER_SET_VOXEL) { unsigned short int itemNumber = (*((unsigned short int*)&packetData[1])); printf("got I - insert voxels - command from client receivedBytes=%ld itemNumber=%d\n", receivedBytes,itemNumber); @@ -335,10 +336,10 @@ int main(int argc, const char * argv[]) // after done inserting all these voxels, then reaverage colors randomTree.reaverageVoxelColors(randomTree.rootNode); } - if (packetData[0] == 'R') { + if (packetData[0] == PACKET_HEADER_ERASE_VOXEL) { // Send these bits off to the VoxelTree class to process them - printf("got Remove Voxels message, have voxel tree do the work... randomTree.processRemoveVoxelBitstream()\n"); + printf("got Erase Voxels message, have voxel tree do the work... randomTree.processRemoveVoxelBitstream()\n"); randomTree.processRemoveVoxelBitstream((unsigned char*)packetData,receivedBytes); // Now send this to the connected agents so they know to delete @@ -346,7 +347,7 @@ int main(int argc, const char * argv[]) agentList.broadcastToAgents(packetData,receivedBytes,AgentList::AGENTS_OF_TYPE_HEAD); } - if (packetData[0] == 'Z') { + if (packetData[0] == PACKET_HEADER_Z_COMMAND) { // the Z command is a special command that allows the sender to send the voxel server high level semantic // requests, like erase all, or add sphere scene @@ -373,7 +374,7 @@ int main(int argc, const char * argv[]) printf("rebroadcasting Z message to connected agents... agentList.broadcastToAgents()\n"); agentList.broadcastToAgents(packetData,receivedBytes,AgentList::AGENTS_OF_TYPE_HEAD); } - if (packetData[0] == 'H') { + if (packetData[0] == PACKET_HEADER_HEAD_DATA) { if (agentList.addOrUpdateAgent(&agentPublicAddress, &agentPublicAddress, packetData[0],