From 1aeea94ce81d2ccead17399a99bd0ecfe53025f0 Mon Sep 17 00:00:00 2001 From: Sava Jakovljev Date: Mon, 5 Jul 2021 20:28:34 +0200 Subject: [PATCH] pcm: multi plugin - adjust appl_ptr on rewind/forward operations When doing rewind or forward operations, application pointer needs to be properly adjusted, in the same way when doing commit/write operations. Fixes: https://github.com/alsa-project/alsa-lib/pull/161 Signed-off-by: Sava Jakovljev Signed-off-by: Jaroslav Kysela --- src/pcm/pcm_multi.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pcm/pcm_multi.c b/src/pcm/pcm_multi.c index 5fa09b9b..7fb21276 100644 --- a/src/pcm/pcm_multi.c +++ b/src/pcm/pcm_multi.c @@ -669,6 +669,7 @@ static snd_pcm_sframes_t snd_pcm_multi_rewind(snd_pcm_t *pcm, snd_pcm_uframes_t return -EIO; } } + snd_pcm_mmap_appl_backward(pcm, frames); return frames; } @@ -699,6 +700,7 @@ static snd_pcm_sframes_t snd_pcm_multi_forward(snd_pcm_t *pcm, snd_pcm_uframes_t return -EIO; } } + snd_pcm_mmap_appl_forward(pcm, frames); return frames; } @@ -782,8 +784,7 @@ static snd_pcm_sframes_t snd_pcm_multi_mmap_commit(snd_pcm_t *pcm, if ((snd_pcm_uframes_t)result != size) return -EIO; } - multi->appl_ptr += size; - multi->appl_ptr %= pcm->boundary; + snd_pcm_mmap_appl_forward(pcm, size); return size; } -- 2.47.3