History

Working on delta encoding.

Andrzej Kapolka committed 12 years ago

Commit 31443e41 parent 5694a846 files · +87 −33Browse files

Showing the changes to interface/src/MetavoxelSystem.cpp (1 of 6 files). Show all

Unified · Split

interface/src/MetavoxelSystem.cpp+8−7
@@ -186,14 +186,15 @@ static QByteArray createDatagramHeader(const QUuid& sessionID) { · 185 unmodified lines
186MetavoxelClient::MetavoxelClient(const HifiSockAddr& address) :186MetavoxelClient::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 record196 // 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
219void MetavoxelClient::readPacket(Bitstream& in) {220void 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 receipt225 // 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
233void MetavoxelClient::handleMessage(const QVariant& message) {234void 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}