diff options
author | Lennart Poettering <lennart@poettering.net> | 2008-06-26 00:39:31 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2008-06-26 00:39:31 +0200 |
commit | 1514d138353f04578d885d9cb18c528d9b562a83 (patch) | |
tree | b67e6debab81ad4515f41fdcb2b7691509c1fdae /src/pulsecore/memblockq.c | |
parent | 5fccac94e737a760c12fb82e5cd4a82362c17a24 (diff) |
split pa_memblockq_flush() into two flush commands, one which fixes up the read ptr, and one which fixes up the write ptr
Diffstat (limited to 'src/pulsecore/memblockq.c')
-rw-r--r-- | src/pulsecore/memblockq.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/pulsecore/memblockq.c b/src/pulsecore/memblockq.c index 9ce3372c..841b9075 100644 --- a/src/pulsecore/memblockq.c +++ b/src/pulsecore/memblockq.c @@ -638,7 +638,7 @@ void pa_memblockq_seek(pa_memblockq *bq, int64_t offset, pa_seek_mode_t seek) { bq->missing -= delta; } -void pa_memblockq_flush(pa_memblockq *bq) { +void pa_memblockq_flush_write(pa_memblockq *bq) { int64_t old, delta; pa_assert(bq); @@ -662,6 +662,21 @@ void pa_memblockq_flush(pa_memblockq *bq) { bq->missing -= delta; } +void pa_memblockq_flush_read(pa_memblockq *bq) { + int64_t old, delta; + pa_assert(bq); + + pa_memblockq_silence(bq); + + old = bq->read_index; + bq->read_index = bq->write_index; + + pa_memblockq_prebuf_force(bq); + + delta = bq->read_index - old; + bq->missing += delta; +} + size_t pa_memblockq_get_tlength(pa_memblockq *bq) { pa_assert(bq); |