aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@suse.cz>2004-05-23 14:22:27 +0200
committerJaroslav Kysela <perex@suse.cz>2004-05-23 14:22:27 +0200
commit3c65bcbbfdebee6372ad34771a8fc94d628d8408 (patch)
tree2ca6f7d5254d0b2a595aad405ebb59cbb0a48d25 /sound
parent2b38ae751eeef2faa6193cdcae6be01c7ad8def3 (diff)
downloadhistory-3c65bcbbfdebee6372ad34771a8fc94d628d8408.tar.gz
ALSA CVS update - Jaroslav Kysela <perex@suse.cz>
PCM Midlevel,ALSA Core Added SNDRV_PCM_SYNC_PTR_APPL and SNDRV_PCM_SYNC_PTR_AVAIL_MIN extensions to SYNC_PTR ioctl for PCM API.
Diffstat (limited to 'sound')
-rw-r--r--sound/core/pcm_native.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 217ae426a7a131..38d5641862c400 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -2356,8 +2356,14 @@ static int snd_pcm_sync_ptr(snd_pcm_substream_t *substream, struct sndrv_pcm_syn
return err;
}
snd_pcm_stream_lock_irq(substream);
- control->appl_ptr = sync_ptr.c.control.appl_ptr;
- control->avail_min = sync_ptr.c.control.avail_min;
+ if (!(sync_ptr.flags & SNDRV_PCM_SYNC_PTR_APPL))
+ control->appl_ptr = sync_ptr.c.control.appl_ptr;
+ else
+ sync_ptr.c.control.appl_ptr = control->appl_ptr;
+ if (!(sync_ptr.flags & SNDRV_PCM_SYNC_PTR_AVAIL_MIN))
+ control->avail_min = sync_ptr.c.control.avail_min;
+ else
+ sync_ptr.c.control.avail_min = control->avail_min;
sync_ptr.s.status.state = status->state;
sync_ptr.s.status.hw_ptr = status->hw_ptr;
sync_ptr.s.status.tstamp = status->tstamp;