From e6ee6e50def7e45640d883a7bca29aabdec4029b Mon Sep 17 00:00:00 2001 From: jules Date: Wed, 15 Jan 2014 22:40:57 +0000 Subject: [PATCH] Fix for audio thumbnail generation beyond the end of a file. --- .../gui/juce_AudioThumbnail.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp b/modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp index 43d32f6365..0745d09671 100644 --- a/modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp +++ b/modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp @@ -461,15 +461,20 @@ private: if (sample >= 0) { if (sample >= levelData->lengthInSamples) - break; + { + for (int chan = 0; chan < numChannelsCached; ++chan) + *getData (chan, i) = MinMaxValue(); + } + else + { + levelData->getLevels (sample, jmax (1, nextSample - sample), levels); - levelData->getLevels (sample, jmax (1, nextSample - sample), levels); + const int totalChans = jmin (levels.size() / 2, numChannelsCached); - const int totalChans = jmin (levels.size() / 2, numChannelsCached); - - for (int chan = 0; chan < totalChans; ++chan) - getData (chan, i)->setFloat (levels.getUnchecked (chan * 2), - levels.getUnchecked (chan * 2 + 1)); + for (int chan = 0; chan < totalChans; ++chan) + getData (chan, i)->setFloat (levels.getUnchecked (chan * 2), + levels.getUnchecked (chan * 2 + 1)); + } } startTime += timePerPixel;