# HG changeset patch # User Hasan Yavuz Ă–ZDERYA # Date 2016-06-14 15:55:01 # Node ID b4195bca68b476954e1b70dba1a016eadca6eee5 # Parent 934c1d1050b2b986d1d7d8be0068d4b3bae349c6 number of packages should be calculated after byte is skipped diff --git a/src/binarystreamreader.cpp b/src/binarystreamreader.cpp --- a/src/binarystreamreader.cpp +++ b/src/binarystreamreader.cpp @@ -122,6 +122,16 @@ void BinaryStreamReader::onDataReady() // a package is a set of channel data like {CHAN0_SAMPLE, CHAN1_SAMPLE...} int packageSize = sampleSize * _numOfChannels; int bytesAvailable = _device->bytesAvailable(); + + if (bytesAvailable > 0 && skipByteRequested) + { + _device->read(1); + skipByteRequested = false; + bytesAvailable--; + } + + if (bytesAvailable < packageSize) return; + int numOfPackagesToRead = (bytesAvailable - (bytesAvailable % packageSize)) / packageSize; @@ -132,15 +142,6 @@ void BinaryStreamReader::onDataReady() return; } - if (bytesAvailable > 0 && skipByteRequested) - { - _device->read(1); - skipByteRequested = false; - bytesAvailable--; - } - - if (bytesAvailable < packageSize) return; - double* channelSamples = new double[numOfPackagesToRead*_numOfChannels]; for (int i = 0; i < numOfPackagesToRead; i++)