From 7480283dd42b0ced3f2ddd39b09360797e9b9a1b Mon Sep 17 00:00:00 2001
From: ZappoMan <bradh@konamoxt.com>
Date: Mon, 8 Apr 2013 19:54:14 -0700
Subject: [PATCH] cleanup of packet header constants

---
 injector/src/injector.cpp     |  4 +++-
 interface/src/Audio.cpp       |  3 ++-
 interface/src/VoxelSystem.cpp |  6 +++---
 interface/src/main.cpp        |  9 ++++++---
 mixer/src/main.cpp            |  3 ++-
 shared/src/AgentList.cpp      |  4 ++--
 shared/src/PacketHeaders.h    |  7 +++++++
 shared/src/SharedUtil.cpp     |  2 +-
 shared/src/VoxelTree.cpp      |  2 +-
 tools/sendvoxels.php          |  8 ++++----
 voxel/src/main.cpp            | 13 +++++++------
 11 files changed, 38 insertions(+), 23 deletions(-)

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 <SharedUtil.h>
+#include <PacketHeaders.h>
+
 
 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 <StdDev.h>
 #include <UDPSocket.h>
 #include <SharedUtil.h>
+#include <PacketHeaders.h>
 #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 <PerfStat.h>
 #include <SharedUtil.h>
+#include <PacketHeaders.h>
 
 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 <SharedUtil.h>
 #include <StdDev.h>
 #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 <VoxelTree.h>
 #include "VoxelAgentData.h"
 #include <SharedUtil.h>
+#include <PacketHeaders.h>
 
 #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],