inital changes to add a version byte to packets

This commit is contained in:
Stephen Birarda 2013-06-28 16:23:35 -07:00
parent c1d23f5f63
commit 3349419c68
4 changed files with 55 additions and 31 deletions

View file

@ -74,6 +74,7 @@ int main(int argc, const char* argv[]) {
unsigned char *broadcastPacket = new unsigned char[MAX_PACKET_SIZE]; unsigned char *broadcastPacket = new unsigned char[MAX_PACKET_SIZE];
*broadcastPacket = PACKET_HEADER_BULK_AVATAR_DATA; *broadcastPacket = PACKET_HEADER_BULK_AVATAR_DATA;
*(broadcastPacket + 1) = version(*broadcastPacket);
unsigned char* currentBufferPosition = NULL; unsigned char* currentBufferPosition = NULL;
@ -104,7 +105,7 @@ int main(int argc, const char* argv[]) {
// parse positional data from an agent // parse positional data from an agent
agentList->updateAgentWithData(avatarAgent, packetData, receivedBytes); agentList->updateAgentWithData(avatarAgent, packetData, receivedBytes);
case PACKET_HEADER_INJECT_AUDIO: case PACKET_HEADER_INJECT_AUDIO:
currentBufferPosition = broadcastPacket + 1; currentBufferPosition = broadcastPacket + sizeof(PACKET_HEADER) + sizeof(PACKET_VERSION);
// send back a packet with other active agent data to this agent // send back a packet with other active agent data to this agent
for (AgentList::iterator agent = agentList->begin(); agent != agentList->end(); agent++) { for (AgentList::iterator agent = agentList->begin(); agent != agentList->end(); agent++) {

View file

@ -2702,35 +2702,39 @@ void* Application::networkReceive(void* args) {
app->_packetCount++; app->_packetCount++;
app->_bytesCount += bytesReceived; app->_bytesCount += bytesReceived;
switch (app->_incomingPacket[0]) { if (app->_incomingPacket[1] == packetVersion(app->_incomingPacket[0])) {
case PACKET_HEADER_TRANSMITTER_DATA_V2: // only process this packet if we have a match on the packet version
// V2 = IOS transmitter app
app->_myTransmitter.processIncomingData(app->_incomingPacket, bytesReceived);
break; switch (app->_incomingPacket[0]) {
case PACKET_HEADER_MIXED_AUDIO: case PACKET_HEADER_TRANSMITTER_DATA_V2:
app->_audio.addReceivedAudioToBuffer(app->_incomingPacket, bytesReceived); // V2 = IOS transmitter app
break; app->_myTransmitter.processIncomingData(app->_incomingPacket, bytesReceived);
case PACKET_HEADER_VOXEL_DATA:
case PACKET_HEADER_VOXEL_DATA_MONOCHROME: break;
case PACKET_HEADER_Z_COMMAND: case PACKET_HEADER_MIXED_AUDIO:
case PACKET_HEADER_ERASE_VOXEL: app->_audio.addReceivedAudioToBuffer(app->_incomingPacket, bytesReceived);
app->_voxels.parseData(app->_incomingPacket, bytesReceived); break;
break; case PACKET_HEADER_VOXEL_DATA:
case PACKET_HEADER_ENVIRONMENT_DATA: case PACKET_HEADER_VOXEL_DATA_MONOCHROME:
app->_environment.parseData(&senderAddress, app->_incomingPacket, bytesReceived); case PACKET_HEADER_Z_COMMAND:
break; case PACKET_HEADER_ERASE_VOXEL:
case PACKET_HEADER_BULK_AVATAR_DATA: app->_voxels.parseData(app->_incomingPacket, bytesReceived);
AgentList::getInstance()->processBulkAgentData(&senderAddress, break;
app->_incomingPacket, case PACKET_HEADER_ENVIRONMENT_DATA:
bytesReceived); app->_environment.parseData(&senderAddress, app->_incomingPacket, bytesReceived);
break; break;
case PACKET_HEADER_AVATAR_VOXEL_URL: case PACKET_HEADER_BULK_AVATAR_DATA:
processAvatarVoxelURLMessage(app->_incomingPacket, bytesReceived); AgentList::getInstance()->processBulkAgentData(&senderAddress,
break; app->_incomingPacket,
default: bytesReceived);
AgentList::getInstance()->processAgentData(&senderAddress, app->_incomingPacket, bytesReceived); break;
break; case PACKET_HEADER_AVATAR_VOXEL_URL:
processAvatarVoxelURLMessage(app->_incomingPacket, bytesReceived);
break;
default:
AgentList::getInstance()->processAgentData(&senderAddress, app->_incomingPacket, bytesReceived);
break;
}
} }
} else if (!app->_enableNetworkThread) { } else if (!app->_enableNetworkThread) {
break; break;

View file

@ -0,0 +1,17 @@
//
// PacketHeaders.cpp
// hifi
//
// Created by Stephen Birarda on 6/28/13.
// Copyright (c) 2013 HighFidelity, Inc. All rights reserved.
//
#include "PacketHeaders.h"
PACKET_VERSION packetVersion(PACKET_HEADER header) {
switch (header) {
default:
return 0;
break;
}
}

View file

@ -34,6 +34,8 @@ const PACKET_HEADER PACKET_HEADER_ENVIRONMENT_DATA = 'e';
const PACKET_HEADER PACKET_HEADER_DOMAIN_LIST_REQUEST = 'L'; const PACKET_HEADER PACKET_HEADER_DOMAIN_LIST_REQUEST = 'L';
const PACKET_HEADER PACKET_HEADER_DOMAIN_REPORT_FOR_DUTY = 'C'; const PACKET_HEADER PACKET_HEADER_DOMAIN_REPORT_FOR_DUTY = 'C';
typedef char PACKET_VERSION;
PACKET_VERSION packetVersion(PACKET_HEADER header);
// These are supported Z-Command // These are supported Z-Command
#define ERASE_ALL_COMMAND "erase all" #define ERASE_ALL_COMMAND "erase all"