# HG changeset patch # User Hasan Yavuz Ă–ZDERYA # Date 2016-06-14 20:30:20 # Node ID 556aa6f2471310462379f9af43bb3a87198c2c9f # Parent b4195bca68b476954e1b70dba1a016eadca6eee5 added skip sample button diff --git a/src/binarystreamreader.cpp b/src/binarystreamreader.cpp --- a/src/binarystreamreader.cpp +++ b/src/binarystreamreader.cpp @@ -28,6 +28,7 @@ BinaryStreamReader::BinaryStreamReader(Q { paused = false; skipByteRequested = false; + skipSampleRequested = false; sampleCount = 0; _numOfChannels = _settingsWidget.numOfChannels(); @@ -41,12 +42,17 @@ BinaryStreamReader::BinaryStreamReader(Q connect(&_settingsWidget, &BinaryStreamReaderSettings::numberFormatChanged, this, &BinaryStreamReader::onNumberFormatChanged); - // enable skip byte button + // enable skip byte and sample buttons connect(&_settingsWidget, &BinaryStreamReaderSettings::skipByteRequested, [this]() { skipByteRequested = true; }); + connect(&_settingsWidget, &BinaryStreamReaderSettings::skipSampleRequested, + [this]() + { + skipSampleRequested = true; + }); } QWidget* BinaryStreamReader::settingsWidget() @@ -123,6 +129,7 @@ void BinaryStreamReader::onDataReady() int packageSize = sampleSize * _numOfChannels; int bytesAvailable = _device->bytesAvailable(); + // skip 1 byte if requested if (bytesAvailable > 0 && skipByteRequested) { _device->read(1); @@ -130,6 +137,14 @@ void BinaryStreamReader::onDataReady() bytesAvailable--; } + // skip 1 sample (channel) if requested + if (bytesAvailable >= (int) sampleSize && skipSampleRequested) + { + _device->read(sampleSize); + skipSampleRequested = false; + bytesAvailable--; + } + if (bytesAvailable < packageSize) return; int numOfPackagesToRead = diff --git a/src/binarystreamreader.h b/src/binarystreamreader.h --- a/src/binarystreamreader.h +++ b/src/binarystreamreader.h @@ -46,6 +46,7 @@ private: unsigned sampleSize; bool paused; bool skipByteRequested; + bool skipSampleRequested; /// points to the readSampleAs function for currently selected number format double (BinaryStreamReader::*readSample)(); diff --git a/src/binarystreamreadersettings.cpp b/src/binarystreamreadersettings.cpp --- a/src/binarystreamreadersettings.cpp +++ b/src/binarystreamreadersettings.cpp @@ -39,6 +39,7 @@ BinaryStreamReaderSettings::BinaryStream this, SIGNAL(numberFormatChanged(NumberFormat))); connect(ui->pbSkipByte, SIGNAL(clicked()), this, SIGNAL(skipByteRequested())); + connect(ui->pbSkipSample, SIGNAL(clicked()), this, SIGNAL(skipSampleRequested())); } BinaryStreamReaderSettings::~BinaryStreamReaderSettings() diff --git a/src/binarystreamreadersettings.h b/src/binarystreamreadersettings.h --- a/src/binarystreamreadersettings.h +++ b/src/binarystreamreadersettings.h @@ -44,6 +44,7 @@ signals: void numOfChannelsChanged(unsigned); void numberFormatChanged(NumberFormat); void skipByteRequested(); + void skipSampleRequested(); private: Ui::BinaryStreamReaderSettings *ui; diff --git a/src/binarystreamreadersettings.ui b/src/binarystreamreadersettings.ui --- a/src/binarystreamreadersettings.ui +++ b/src/binarystreamreadersettings.ui @@ -73,13 +73,23 @@ - Skip reading 1 byte to correct the alignment + Skip 1 byte while reading to correct the alignment Skip Byte + + + + Skip reading 1 sample while reading to shift channel order + + + Skip Sample + + +