aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2007-06-29 19:16:32 +0200
committerTakashi Iwai <tiwai@suse.de>2007-06-29 19:16:32 +0200
commit744113ce13c0cc78aa5c731d1d3ea9d826238d86 (patch)
treecbde4e6fd8215001b9088067b7f7f1bc0eca9a3d
parent29e991b1d65015fc932bc11bceb77ef81305bf43 (diff)
downloadsalsa-lib-744113ce13c0cc78aa5c731d1d3ea9d826238d86.tar.gz
Fix avail_min=0 problem.
-rw-r--r--ChangeLog4
-rw-r--r--src/pcm.c2
-rw-r--r--src/pcm_params.c1
3 files changed, 7 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index e951430..1274c20 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Version 0.0.5:
+ * Fix the bug that avail_min is cleared, which screwed up poll
+ return condition
+
Version 0.0.4:
* Fix the missing return from _snd_mixer_selem_get_volume_range()
* Fix the check of stop_threshold in snd_pcm_avail_update().
diff --git a/src/pcm.c b/src/pcm.c
index b61fe21..5e3b455 100644
--- a/src/pcm.c
+++ b/src/pcm.c
@@ -857,6 +857,7 @@ static int snd_pcm_hw_mmap_status(snd_pcm_t *pcm)
pcm->mmap_status = NULL;
goto no_mmap;
}
+ pcm->mmap_control->avail_min = 1;
return 0;
no_mmap:
@@ -865,6 +866,7 @@ static int snd_pcm_hw_mmap_status(snd_pcm_t *pcm)
return -ENOMEM;
pcm->mmap_status = &pcm->sync_ptr->s.status;
pcm->mmap_control = &pcm->sync_ptr->c.control;
+ pcm->mmap_control->avail_min = 1;
_snd_pcm_sync_ptr(pcm, 0);
return 0;
}
diff --git a/src/pcm_params.c b/src/pcm_params.c
index a4e73e2..6869fd5 100644
--- a/src/pcm_params.c
+++ b/src/pcm_params.c
@@ -1052,6 +1052,7 @@ int snd_pcm_sw_params(snd_pcm_t *pcm, snd_pcm_sw_params_t *params)
if (ioctl(pcm->fd, SNDRV_PCM_IOCTL_SW_PARAMS, params) < 0)
return -errno;
pcm->sw_params = *params;
+ pcm->mmap_control->avail_min = params->avail_min;
return 0;
}