Skip to content
Snippets Groups Projects
Commit 5fecf54c authored by jsiegle's avatar jsiegle
Browse files

Commit before major changes to LfpDisplayCanvas

parent 5ff3f993
Branches
Tags
No related merge requests found
......@@ -112,63 +112,65 @@ void LfpDisplayCanvas::updateScreenBuffer()
int valuesNeeded = nSamples / int(ratio);
//lock->enterRead();
float subSampleOffset = 0.0;
int nextPos = (displayBufferIndex + 1) % displayBufferSize;
//int screenBufferPos;
if (valuesNeeded > 0) {
//
int sourceSampleNumber;
int destSampleNumber;
//int sourceSampleNumber;
//int destSampleNumber;
int valuesTaken = 0;
//int valuesTaken = 0;
//float subSampleOffset = 0.0;
screenBuffer->clear(screenBufferIndex, valuesNeeded);
for (int i = 0; i < valuesNeeded; i++)
{
sourceSampleNumber = (displayBufferIndex + int(float(i)*ratio) ) % displayBufferSize;
destSampleNumber = (screenBufferIndex + i) % maxSamples;
if (sourceSampleNumber >= 0 && destSampleNumber >= 0 && destSampleNumber < displayBufferSize) {
valuesTaken++;
//std::cout << " " << " " << sourceSampleNumber << " " <<
//destSampleNumber << std::endl;
for (int channel = 0; channel < displayBuffer->getNumChannels(); channel++) {
screenBuffer->copyFrom(channel, // destChannel
destSampleNumber, // destSampleOffset
//*displayBuffer,
//channel,
//sourceSampleNumber,
// 1);
displayBuffer->getSampleData(channel,sourceSampleNumber), // source
1, // sourceChannel
displayGain); // number of samples
}
}
}
//std::cout << screenBufferIndex << " " << displayBufferIndex << " " <<
// valuesNeeded << " " << valuesTaken << " " << nSamples << " " << ratio << std::endl;
//if (sourceSampleNumber >= 0 && destSampleNumber >= 0) {
screenBufferIndex += valuesTaken;
screenBufferIndex %= maxSamples;
displayBufferIndex = index;
float gain = 1.0;
float alpha = (float) subSampleOffset;
float invAlpha = 1.0f - alpha;
for (int channel = 0; channel < displayBuffer->getNumChannels(); channel++) {
screenBuffer->addFrom(channel,
screenBufferIndex,
buffer,
channel,
displayBufferIndex,
1,
invAlpha*gain*displayGain);
screenBuffer->addFrom(channel,
screenBufferIndex,
buffer,
channel,
displayBufferIndex,
1,
alpha*gain*displayGain);
}
subSampleOffset += ratio;
while (subSampleOffset >= 1.0)
{
if (++displayBufferIndex >= displayBufferSize)
displayBufferIndex = 0;
nextPos = (displayBufferPos + 1) % displayBufferSize;
subSampleOffset -= 1.0;
}
screenBufferIndex++;
}
}
//}
//lock->exitRead();
//std::cout << n << std::endl;
}
void LfpDisplayCanvas::renderOpenGL()
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment