mirror of
https://github.com/overte-org/overte.git
synced 2025-07-22 13:33:45 +02:00
inital changes to add a version byte to packets
This commit is contained in:
parent
c1d23f5f63
commit
3349419c68
4 changed files with 55 additions and 31 deletions
|
@ -74,6 +74,7 @@ int main(int argc, const char* argv[]) {
|
|||
|
||||
unsigned char *broadcastPacket = new unsigned char[MAX_PACKET_SIZE];
|
||||
*broadcastPacket = PACKET_HEADER_BULK_AVATAR_DATA;
|
||||
*(broadcastPacket + 1) = version(*broadcastPacket);
|
||||
|
||||
unsigned char* currentBufferPosition = NULL;
|
||||
|
||||
|
@ -104,7 +105,7 @@ int main(int argc, const char* argv[]) {
|
|||
// parse positional data from an agent
|
||||
agentList->updateAgentWithData(avatarAgent, packetData, receivedBytes);
|
||||
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
|
||||
for (AgentList::iterator agent = agentList->begin(); agent != agentList->end(); agent++) {
|
||||
|
|
|
@ -2702,36 +2702,40 @@ void* Application::networkReceive(void* args) {
|
|||
app->_packetCount++;
|
||||
app->_bytesCount += bytesReceived;
|
||||
|
||||
switch (app->_incomingPacket[0]) {
|
||||
case PACKET_HEADER_TRANSMITTER_DATA_V2:
|
||||
// V2 = IOS transmitter app
|
||||
app->_myTransmitter.processIncomingData(app->_incomingPacket, bytesReceived);
|
||||
|
||||
break;
|
||||
case PACKET_HEADER_MIXED_AUDIO:
|
||||
app->_audio.addReceivedAudioToBuffer(app->_incomingPacket, bytesReceived);
|
||||
break;
|
||||
case PACKET_HEADER_VOXEL_DATA:
|
||||
case PACKET_HEADER_VOXEL_DATA_MONOCHROME:
|
||||
case PACKET_HEADER_Z_COMMAND:
|
||||
case PACKET_HEADER_ERASE_VOXEL:
|
||||
app->_voxels.parseData(app->_incomingPacket, bytesReceived);
|
||||
break;
|
||||
case PACKET_HEADER_ENVIRONMENT_DATA:
|
||||
app->_environment.parseData(&senderAddress, app->_incomingPacket, bytesReceived);
|
||||
break;
|
||||
case PACKET_HEADER_BULK_AVATAR_DATA:
|
||||
AgentList::getInstance()->processBulkAgentData(&senderAddress,
|
||||
app->_incomingPacket,
|
||||
bytesReceived);
|
||||
break;
|
||||
case PACKET_HEADER_AVATAR_VOXEL_URL:
|
||||
processAvatarVoxelURLMessage(app->_incomingPacket, bytesReceived);
|
||||
break;
|
||||
default:
|
||||
AgentList::getInstance()->processAgentData(&senderAddress, app->_incomingPacket, bytesReceived);
|
||||
break;
|
||||
}
|
||||
if (app->_incomingPacket[1] == packetVersion(app->_incomingPacket[0])) {
|
||||
// only process this packet if we have a match on the packet version
|
||||
|
||||
switch (app->_incomingPacket[0]) {
|
||||
case PACKET_HEADER_TRANSMITTER_DATA_V2:
|
||||
// V2 = IOS transmitter app
|
||||
app->_myTransmitter.processIncomingData(app->_incomingPacket, bytesReceived);
|
||||
|
||||
break;
|
||||
case PACKET_HEADER_MIXED_AUDIO:
|
||||
app->_audio.addReceivedAudioToBuffer(app->_incomingPacket, bytesReceived);
|
||||
break;
|
||||
case PACKET_HEADER_VOXEL_DATA:
|
||||
case PACKET_HEADER_VOXEL_DATA_MONOCHROME:
|
||||
case PACKET_HEADER_Z_COMMAND:
|
||||
case PACKET_HEADER_ERASE_VOXEL:
|
||||
app->_voxels.parseData(app->_incomingPacket, bytesReceived);
|
||||
break;
|
||||
case PACKET_HEADER_ENVIRONMENT_DATA:
|
||||
app->_environment.parseData(&senderAddress, app->_incomingPacket, bytesReceived);
|
||||
break;
|
||||
case PACKET_HEADER_BULK_AVATAR_DATA:
|
||||
AgentList::getInstance()->processBulkAgentData(&senderAddress,
|
||||
app->_incomingPacket,
|
||||
bytesReceived);
|
||||
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) {
|
||||
break;
|
||||
}
|
||||
|
|
17
libraries/shared/src/PacketHeaders.cpp
Normal file
17
libraries/shared/src/PacketHeaders.cpp
Normal 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;
|
||||
}
|
||||
}
|
|
@ -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_REPORT_FOR_DUTY = 'C';
|
||||
|
||||
typedef char PACKET_VERSION;
|
||||
PACKET_VERSION packetVersion(PACKET_HEADER header);
|
||||
|
||||
// These are supported Z-Command
|
||||
#define ERASE_ALL_COMMAND "erase all"
|
||||
|
|
Loading…
Reference in a new issue