summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/audiolevels/audiolevelsiodevice.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/examples/audiolevels/audiolevelsiodevice.cpp b/examples/audiolevels/audiolevelsiodevice.cpp
index 46e5aadb..2e36787f 100644
--- a/examples/audiolevels/audiolevelsiodevice.cpp
+++ b/examples/audiolevels/audiolevelsiodevice.cpp
@@ -47,10 +47,12 @@ qint64 AudioLevelsIODevice::writeData(const char *data, qint64 maxSize)
int rowSize = qMin((newDataSize + oldRow->size()), maxRowSize);
QBarDataRow *row = new QBarDataRow(rowSize);
+ int bottom = qMax(0, (newDataSize - rowSize));
// Insert data in reverse order, so that newest data is always at the front of the row
- for (int i = newDataSize - 1; i >= 0; i--)
- (*row)[i].setValue(((quint8)data[resolution * i] - 128) / 2.0);
+ int index = 0;
+ for (int i = newDataSize - 1; i >= bottom; i--)
+ (*row)[index++].setValue(((quint8)data[resolution * i] - 128) / 2.0);
// Append old data to new row
for (int i = newDataSize; i < rowSize; i++)