diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-09-06 14:19:28 +0300 |
---|---|---|
committer | Pasi Keränen <pasi.keranen@digia.com> | 2013-09-06 14:46:48 +0300 |
commit | b288ecc4c08e97c1b09b8a253de4931616bd3d91 (patch) | |
tree | eea178622c26f496ae1ed2f0e7e77699b0206d2f | |
parent | 294a23e02474838186cc102a8ec9e50aa159a2dd (diff) |
Fix audiolevels crash
+Actually reverse the data as was the original intention
Change-Id: I43c78a82f335696bd6b785c7186368e7fea4ded9
Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
-rw-r--r-- | examples/audiolevels/audiolevelsiodevice.cpp | 6 |
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++) |