aboutsummaryrefslogtreecommitdiff
path: root/pd/src/s_audio_paring.c
diff options
context:
space:
mode:
Diffstat (limited to 'pd/src/s_audio_paring.c')
-rw-r--r--pd/src/s_audio_paring.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/pd/src/s_audio_paring.c b/pd/src/s_audio_paring.c
index 6e645e45..af2771ff 100644
--- a/pd/src/s_audio_paring.c
+++ b/pd/src/s_audio_paring.c
@@ -46,11 +46,11 @@
/***************************************************************************
* Initialize FIFO.
*/
-long sys_ringbuf_Init( sys_ringbuf *rbuf, long numBytes, void *dataPtr )
+long sys_ringbuf_Init(sys_ringbuf *rbuf, long numBytes, void *dataPtr, long nfill)
{
rbuf->bufferSize = numBytes;
rbuf->buffer = (char *)dataPtr;
- sys_ringbuf_Flush( rbuf );
+ sys_ringbuf_Flush(rbuf, dataPtr, nfill);
return 0;
}
/***************************************************************************
@@ -74,9 +74,14 @@ long sys_ringbuf_GetWriteAvailable( sys_ringbuf *rbuf )
/***************************************************************************
** Clear buffer. Should only be called when buffer is NOT being read. */
-void sys_ringbuf_Flush( sys_ringbuf *rbuf )
+void sys_ringbuf_Flush(sys_ringbuf *rbuf, void *dataPtr, long nfill)
{
- rbuf->writeIndex = rbuf->readIndex = 0;
+ char *s;
+ long n;
+ rbuf->readIndex = 0;
+ rbuf->writeIndex = nfill;
+ for (n = nfill, s = dataPtr; n--; s++)
+ *s = 0;
}
/***************************************************************************