float ReSID::readData() { float value; /* static unsigned debugcnt = 0; if (debugcnt++ % 100 == 0) printf("ReSID::readData Ringbuffer: 0 | ... | r:%ld | ... | w->%ld | ... | %d\n", readBuffer - ringBuffer, writeBuffer - ringBuffer, bufferSize); */ if (readBuffer == writeBuffer) { // fprintf(stderr, "SID RINGBUFFER UNDERFLOW (%ld)\n", readBuffer - ringBuffer); handleBufferException(); } value = *readBuffer; if (readBuffer == endBuffer) readBuffer = ringBuffer; else readBuffer++; return value; }
void ReSID::writeData(float data) { if (readBuffer == writeBuffer) { // fprintf(stderr, "SID RINGBUFFER OVERFLOW (%d)\n", writeBuffer - ringBuffer); handleBufferException(); } *writeBuffer = data; if (writeBuffer == endBuffer) writeBuffer = ringBuffer; else writeBuffer++; }
float ReSID::readData() { float value; if (readBuffer == writeBuffer) { // fprintf(stderr, "SID RINGBUFFER UNDERFLOW (%d)\n", readBuffer - ringBuffer); handleBufferException(); } value = *readBuffer; if (readBuffer == endBuffer) readBuffer = ringBuffer; else readBuffer++; return value; }
void ReSID::run() { handleBufferException(); }