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
186186 MetavoxelClient::MetavoxelClient(const HifiSockAddr& address) :
187187 _address(address),
188188 _sessionID(QUuid::createUuid()),
189− _sequencer(createDatagramHeader(_sessionID)) {
189+ _sequencer(createDatagramHeader(_sessionID)),
190+ _data(new MetavoxelData()) {
190191
191192 connect(&_sequencer, SIGNAL(readyToWrite(const QByteArray&)), SLOT(sendData(const QByteArray&)));
192193 connect(&_sequencer, SIGNAL(readyToRead(Bitstream&)), SLOT(readPacket(Bitstream&)));
193194 connect(&_sequencer, SIGNAL(receiveAcknowledged(int)), SLOT(clearReceiveRecordsBefore(int)));
194195
195196 // insert the baseline receive record
196− ReceiveRecord record = { 0 };
197+ ReceiveRecord record = { 0, _data };
197198 _receiveRecords.append(record);
198199 }
199200
@@ -219,10 +220,10 @@ void MetavoxelClient::sendData(const QByteArray& data) { · 19 unmodified lines
219220 void MetavoxelClient::readPacket(Bitstream& in) {
220221 QVariant message;
221222 in >> message;
222− handleMessage(message);
223+ handleMessage(message, in);
223224
224225 // record the receipt
225− ReceiveRecord record = { _sequencer.getIncomingPacketNumber() };
226+ ReceiveRecord record = { _sequencer.getIncomingPacketNumber(), _data };
226227 _receiveRecords.append(record);
227228 }
228229
@@ -230,14 +231,14 @@ void MetavoxelClient::clearReceiveRecordsBefore(int index) { · 1 unmodified line
230231 _receiveRecords.erase(_receiveRecords.begin(), _receiveRecords.begin() + index + 1);
231232 }
232233
233−void MetavoxelClient::handleMessage(const QVariant& message) {
234+void MetavoxelClient::handleMessage(const QVariant& message, Bitstream& in) {
234235 int userType = message.userType();
235236 if (userType == MetavoxelDeltaMessage::Type) {
236−
237+ _data->readDelta(*_receiveRecords.first().data, in);
237238
238239 } else if (userType == QMetaType::QVariantList) {
239240 foreach (const QVariant& element, message.toList()) {
240− handleMessage(element);
241+ handleMessage(element, in);
241242 }
242243 }
243244 }