Dear Jules,
I just wonder if in this fragment:
[code]void AbstractFifo::finishedWrite (int numWritten) noexcept
{
jassert (numWritten >= 0 && numWritten < bufferSize);
int newEnd = validEnd.value + numWritten;
if (newEnd >= bufferSize)
newEnd -= bufferSize;
validEnd = newEnd;
}
[/code]
would be:
instead of:
Because if I use a fixed input buffer size (let’s say size =2048), each time I need to fill it, I’d do it fully (2048 floats) but it raises me this assert.
On the other hand, this code has an asymmetry related to AbstractFifo::finishedRead:
[code]void AbstractFifo::finishedRead (int numRead) noexcept
{
jassert (numRead >= 0 && numRead <= bufferSize);
int newStart = validStart.value + numRead;
if (newStart >= bufferSize)
newStart -= bufferSize;
validStart = newStart;
}
[/code]
where the assert has a <= comparator operator instead of a < op.
Gabriel
P.S. The more I am able to exploit your code the more I admire you!