diff options
Diffstat (limited to 'polyp/memblockq.c')
-rw-r--r-- | polyp/memblockq.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/polyp/memblockq.c b/polyp/memblockq.c index 59794d6c..0e71fa8c 100644 --- a/polyp/memblockq.c +++ b/polyp/memblockq.c @@ -42,7 +42,7 @@ struct memblock_list { struct pa_memblockq { struct memblock_list *blocks, *blocks_tail; unsigned n_blocks; - size_t current_length, maxlength, tlength, base, prebuf, minreq; + size_t current_length, maxlength, tlength, base, prebuf, orig_prebuf, minreq; struct pa_mcalign *mcalign; struct pa_memblock_stat *memblock_stat; }; @@ -72,6 +72,8 @@ struct pa_memblockq* pa_memblockq_new(size_t maxlength, size_t tlength, size_t b bq->prebuf = (bq->prebuf/base)*base; if (bq->prebuf > bq->maxlength) bq->prebuf = bq->maxlength; + + bq->orig_prebuf = bq->prebuf; bq->minreq = (minreq/base)*base; if (bq->minreq == 0) @@ -285,6 +287,11 @@ void pa_memblockq_prebuf_disable(struct pa_memblockq *bq) { bq->prebuf = 0; } +void pa_memblockq_prebuf_reenable(struct pa_memblockq *bq) { + assert(bq); + bq->prebuf = bq->orig_prebuf; +} + void pa_memblockq_seek(struct pa_memblockq *bq, size_t length) { assert(bq); |