| 264 | } |
| 265 | |
| 266 | void Framebuffer_writeBuffer(CSOUND *csound, Framebuffer *self, |
| 267 | MYFLT *inputSamples, int32_t inputSamplesCount) |
| 268 | { |
| 269 | IGN(csound); |
| 270 | if (self->writeIndex + inputSamplesCount <= self->elementCount) { |
| 271 | |
| 272 | memcpy(&self->buffer[self->writeIndex], inputSamples, |
| 273 | sizeof(MYFLT) * inputSamplesCount); |
| 274 | self->writeIndex += self->ksmps; |
| 275 | self->writeIndex %= self->elementCount; |
| 276 | } |
| 277 | else { |
| 278 | |
| 279 | int32_t firstHalf = self->elementCount - self->writeIndex; |
| 280 | memcpy(&self->buffer[self->writeIndex], inputSamples, |
| 281 | sizeof(MYFLT) * firstHalf); |
| 282 | int32_t secondHalf = inputSamplesCount - firstHalf; |
| 283 | memcpy(self->buffer, &inputSamples[firstHalf], |
| 284 | sizeof(MYFLT) * secondHalf); |
| 285 | self->writeIndex = secondHalf; |
| 286 | } |
| 287 | } |
| 288 | |
| 289 | void Framebuffer_readBuffer(CSOUND *csound, Framebuffer *self, |
| 290 | MYFLT *outputSamples, int32_t outputSamplesCount) |
no outgoing calls
no test coverage detected