Showing the changes to interface/src/MetavoxelSystem.cpp (1 of 6 files). Show all
Unified · Split
| @@ -186,14 +186,15 @@ static QByteArray createDatagramHeader(const QUuid& sessionID) { · 185 unmodified lines | |||
| 186 | MetavoxelClient::MetavoxelClient(const HifiSockAddr& address) : | 186 | MetavoxelClient::MetavoxelClient(const HifiSockAddr& address) : |
| 187 | _address(address), | 187 | _address(address), |
| 188 | _sessionID(QUuid::createUuid()), | 188 | _sessionID(QUuid::createUuid()), |
| 189 | _sequencer(createDatagramHeader(_sessionID)) { | 189 | _sequencer(createDatagramHeader(_sessionID)), |
| 190 | _data(new MetavoxelData()) { | ||
| 190 | 191 | ||
| 191 | connect(&_sequencer, SIGNAL(readyToWrite(const QByteArray&)), SLOT(sendData(const QByteArray&))); | 192 | connect(&_sequencer, SIGNAL(readyToWrite(const QByteArray&)), SLOT(sendData(const QByteArray&))); |
| 192 | connect(&_sequencer, SIGNAL(readyToRead(Bitstream&)), SLOT(readPacket(Bitstream&))); | 193 | connect(&_sequencer, SIGNAL(readyToRead(Bitstream&)), SLOT(readPacket(Bitstream&))); |
| 193 | connect(&_sequencer, SIGNAL(receiveAcknowledged(int)), SLOT(clearReceiveRecordsBefore(int))); | 194 | connect(&_sequencer, SIGNAL(receiveAcknowledged(int)), SLOT(clearReceiveRecordsBefore(int))); |
| 194 | 195 | ||
| 195 | // insert the baseline receive record | 196 | // insert the baseline receive record |
| 196 | ReceiveRecord record = { 0 }; | 197 | ReceiveRecord record = { 0, _data }; |
| 197 | _receiveRecords.append(record); | 198 | _receiveRecords.append(record); |
| 198 | } | 199 | } |
| 199 | 200 | ||
| @@ -219,10 +220,10 @@ void MetavoxelClient::sendData(const QByteArray& data) { · 19 unmodified lines | |||
| 219 | void MetavoxelClient::readPacket(Bitstream& in) { | 220 | void MetavoxelClient::readPacket(Bitstream& in) { |
| 220 | QVariant message; | 221 | QVariant message; |
| 221 | in >> message; | 222 | in >> message; |
| 222 | handleMessage(message); | 223 | handleMessage(message, in); |
| 223 | 224 | ||
| 224 | // record the receipt | 225 | // record the receipt |
| 225 | ReceiveRecord record = { _sequencer.getIncomingPacketNumber() }; | 226 | ReceiveRecord record = { _sequencer.getIncomingPacketNumber(), _data }; |
| 226 | _receiveRecords.append(record); | 227 | _receiveRecords.append(record); |
| 227 | } | 228 | } |
| 228 | 229 | ||
| @@ -230,14 +231,14 @@ void MetavoxelClient::clearReceiveRecordsBefore(int index) { · 1 unmodified line | |||
| 230 | _receiveRecords.erase(_receiveRecords.begin(), _receiveRecords.begin() + index + 1); | 231 | _receiveRecords.erase(_receiveRecords.begin(), _receiveRecords.begin() + index + 1); |
| 231 | } | 232 | } |
| 232 | 233 | ||
| 233 | void MetavoxelClient::handleMessage(const QVariant& message) { | 234 | void MetavoxelClient::handleMessage(const QVariant& message, Bitstream& in) { |
| 234 | int userType = message.userType(); | 235 | int userType = message.userType(); |
| 235 | if (userType == MetavoxelDeltaMessage::Type) { | 236 | if (userType == MetavoxelDeltaMessage::Type) { |
| 236 | 237 | _data->readDelta(*_receiveRecords.first().data, in); | |
| 237 | 238 | ||
| 238 | } else if (userType == QMetaType::QVariantList) { | 239 | } else if (userType == QMetaType::QVariantList) { |
| 239 | foreach (const QVariant& element, message.toList()) { | 240 | foreach (const QVariant& element, message.toList()) { |
| 240 | handleMessage(element); | 241 | handleMessage(element, in); |
| 241 | } | 242 | } |
| 242 | } | 243 | } |
| 243 | } | 244 | } |