From 8e39b06e98c1cf6c07799a2759bbcb6ed2349a76 Mon Sep 17 00:00:00 2001 From: Aaron Cuevas Lopez <aacuelo@teleco.upv.es> Date: Sun, 5 Nov 2017 05:24:16 +0100 Subject: [PATCH] Fix spike buffer indexing issue --- .../BasicSpikeDisplay/SpikeDetector/SpikeDetector.cpp | 9 ++++++--- Source/Plugins/SpikeSorter/SpikeSorter.cpp | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Source/Plugins/BasicSpikeDisplay/SpikeDetector/SpikeDetector.cpp b/Source/Plugins/BasicSpikeDisplay/SpikeDetector/SpikeDetector.cpp index 5db1eb2ea..cf3d7d88b 100644 --- a/Source/Plugins/BasicSpikeDisplay/SpikeDetector/SpikeDetector.cpp +++ b/Source/Plugins/BasicSpikeDisplay/SpikeDetector/SpikeDetector.cpp @@ -101,8 +101,11 @@ void SpikeDetector::createSpikeChannels() void SpikeDetector::updateSettings() { - if (getNumInputs() > 0) - overflowBuffer.setSize (getNumInputs(), overflowBufferSize); + if (getNumInputs() > 0) + { + overflowBuffer.setSize(getNumInputs(), overflowBufferSize); + overflowBuffer.clear(); + } } @@ -516,7 +519,7 @@ float SpikeDetector::getNextSample (int& chan) } else { - if (sampleIndex < dataBuffer->getNumSamples()) + if (sampleIndex < getNumSamples(chan)) return *dataBuffer->getWritePointer (chan, sampleIndex); else return 0; diff --git a/Source/Plugins/SpikeSorter/SpikeSorter.cpp b/Source/Plugins/SpikeSorter/SpikeSorter.cpp index b95f8cede..6be80a43f 100644 --- a/Source/Plugins/SpikeSorter/SpikeSorter.cpp +++ b/Source/Plugins/SpikeSorter/SpikeSorter.cpp @@ -174,8 +174,11 @@ void SpikeSorter::updateSettings() mut.enter(); sorterReady = false; int numChannels = getNumInputs(); - if (numChannels > 0) - overflowBuffer.setSize(getNumInputs(), overflowBufferSize); + if (numChannels > 0) + { + overflowBuffer.setSize(getNumInputs(), overflowBufferSize); + overflowBuffer.clear(); + } if (channelBuffers != nullptr) delete channelBuffers; @@ -1047,7 +1050,7 @@ float SpikeSorter::getNextSample(int& chan) // useOverflowBuffer = false; // std::cout << " sample index " << sampleIndex << "from regular buffer" << std::endl; - if (sampleIndex < dataBuffer->getNumSamples()) + if (sampleIndex < getNumSamples(chan)) return (*dataBuffer->getReadPointer(chan, sampleIndex)); else return 0; -- GitLab