From 71ab8ae4f862839cde0b8bb729dd8e1f930135bb Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 1 Aug 2013 10:07:10 -0700 Subject: [PATCH] some necessary changes for AvatarData transmission --- interface/src/Application.cpp | 2 +- libraries/avatars/src/AvatarData.cpp | 12 ++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index a4279a7e58..9b292b3d50 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2357,7 +2357,7 @@ void Application::updateAvatar(float deltaTime) { NodeList* nodeList = NodeList::getInstance(); if (nodeList->getOwnerID() != UNKNOWN_NODE_ID) { // if I know my ID, send head/hand data to the avatar mixer and voxel server - unsigned char broadcastString[200]; + unsigned char broadcastString[MAX_PACKET_SIZE]; unsigned char* endOfBroadcastStringWrite = broadcastString; endOfBroadcastStringWrite += populateTypeAndVersion(endOfBroadcastStringWrite, PACKET_TYPE_HEAD_DATA); diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 01907b92f4..65ae0c6952 100755 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -132,10 +132,6 @@ int AvatarData::getBroadcastData(unsigned char* destinationBuffer) { std::vector fingerVectors; _handData->encodeRemoteData(fingerVectors); - ///////////////////////////////// - // Temporarily disable Leap finger sending, as it's causing a crash whenever someone's got a Leap connected - fingerVectors.clear(); - ///////////////////////////////// if (fingerVectors.size() > 255) fingerVectors.clear(); // safety. We shouldn't ever get over 255, so consider that invalid. @@ -249,8 +245,8 @@ int AvatarData::parseData(unsigned char* sourceBuffer, int numBytes) { _handState = getSemiNibbleAt(bitItems,HAND_STATE_START_BIT); // leap hand data - if (sourceBuffer - startPosition < numBytes) // safety check - { + if (sourceBuffer - startPosition < numBytes) { + // check passed, bytes match unsigned int numFingerVectors = *sourceBuffer++; if (numFingerVectors > 0) { std::vector fingerVectors(numFingerVectors); @@ -264,8 +260,8 @@ int AvatarData::parseData(unsigned char* sourceBuffer, int numBytes) { } // skeleton joints - if (sourceBuffer - startPosition < numBytes) // safety check - { + if (sourceBuffer - startPosition < numBytes) { + // check passed, bytes match _joints.resize(*sourceBuffer++); for (vector::iterator it = _joints.begin(); it != _joints.end(); it++) { it->jointID = *sourceBuffer++;