X-Git-Url: https://code.delx.au/pulseaudio/blobdiff_plain/81822a751929fbc153282de3af447b9430d5c474..fbefe67d52eb89a429505c653d1ea4ce73d4f4e7:/polyp/memblockq.h diff --git a/polyp/memblockq.h b/polyp/memblockq.h index 40184703..16b51d7a 100644 --- a/polyp/memblockq.h +++ b/polyp/memblockq.h @@ -40,10 +40,11 @@ struct pa_memblockq* pa_memblockq_new(size_t maxlength, size_t tlength, size_t base, size_t prebuf, - size_t minreq); + size_t minreq, + struct pa_memblock_stat *s); void pa_memblockq_free(struct pa_memblockq*bq); -/* Push a new memory chunk into the queue. Optionally specify a value for future cancellation. This is currently not implemented, however! */ +/* Push a new memory chunk into the queue. Optionally specify a value for future cancellation. */ void pa_memblockq_push(struct pa_memblockq* bq, const struct pa_memchunk *chunk, size_t delta); /* Same as pa_memblockq_push(), however chunks are filtered through a mcalign object, and thus aligned to multiples of base */ @@ -52,8 +53,11 @@ void pa_memblockq_push_align(struct pa_memblockq* bq, const struct pa_memchunk * /* Return a copy of the next memory chunk in the queue. It is not removed from the queue */ int pa_memblockq_peek(struct pa_memblockq* bq, struct pa_memchunk *chunk); +/* Drop the specified bytes from the queue, only valid aufter pa_memblockq_peek() */ +void pa_memblockq_drop(struct pa_memblockq *bq, const struct pa_memchunk *chunk, size_t length); + /* Drop the specified bytes from the queue */ -void pa_memblockq_drop(struct pa_memblockq *bq, size_t length); +void pa_memblockq_skip(struct pa_memblockq *bq, size_t length); /* Shorten the pa_memblockq to the specified length by dropping data at the end of the queue */ void pa_memblockq_shorten(struct pa_memblockq *bq, size_t length); @@ -67,9 +71,6 @@ int pa_memblockq_is_readable(struct pa_memblockq *bq); /* Test if the pa_memblockq is currently writable for the specified amount of bytes */ int pa_memblockq_is_writable(struct pa_memblockq *bq, size_t length); -/* The time memory chunks stay in the queue until they are removed completely in usecs */ -uint32_t pa_memblockq_get_delay(struct pa_memblockq *bq); - /* Return the length of the queue in bytes */ uint32_t pa_memblockq_get_length(struct pa_memblockq *bq); @@ -82,4 +83,13 @@ uint32_t pa_memblockq_get_minreq(struct pa_memblockq *bq); /* Force disabling of pre-buf even when the pre-buffer is not yet filled */ void pa_memblockq_prebuf_disable(struct pa_memblockq *bq); +/* Manipulate the write pointer */ +void pa_memblockq_seek(struct pa_memblockq *bq, size_t delta); + +/* Flush the queue */ +void pa_memblockq_flush(struct pa_memblockq *bq); + +/* Get Target length */ +uint32_t pa_memblockq_get_tlength(struct pa_memblockq *bq); + #endif