summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/memblockq.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2008-06-26 00:39:31 +0200
committerLennart Poettering <lennart@poettering.net>2008-06-26 00:39:31 +0200
commit1514d138353f04578d885d9cb18c528d9b562a83 (patch)
treeb67e6debab81ad4515f41fdcb2b7691509c1fdae /src/pulsecore/memblockq.c
parent5fccac94e737a760c12fb82e5cd4a82362c17a24 (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.c17
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);