. . () (/) .
, 0.023 , (/ ) 1024 . , , 0.023 . , , , - , , .
- . , . "" , "".
, . , 0,023 , 1024 . , .
void myCallback(float *samples,int sampleCount, SampleSaver *saver){
SampleSaverSaveSamples(saver,samples,sampleCount);
}
!! ...
, , 0.023 , , SampleSaver , .
- . TPCircularBuffer, . , (), , () , (). , TPCircularBuffer ( ).
void myCallback(float *samples,int sampleCount, TPCircularBuffer *buffer){
int32_t availableBytes = 0;
float *head = TPCircularBufferHead(buffer, &availableBytes);
memcpy(head,samples,sampleCount * sizeof(float));
TPCircularBufferProduce(buffer,sampleCount * sizeof(float));
}
. , .
void myLeisurelySavingCallback(TPCircularBuffer *buffer, SampleSaver *saver){
int32_t available;
float *tail = TPCircularBufferTail(buffer, &available);
int samplesInBuffer = available / sizeof(float);
SampleSaverSaveSamples(saver, tail, samplesInBuffer);
TPCircularBufferConsume(buffer, samplesInBuffer * sizeof(float));
}
, , , , ( , ), , 0,023 !
, . . - , .