summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaymond Yau <superquad.vortex2@gmail.com>2011-04-20 16:18:50 +0800
committerTakashi Iwai <tiwai@suse.de>2011-04-20 14:11:59 +0200
commit7ed19bbc9a0150f1b3973de46aa4dfac6b9ed211 (patch)
treee096978abf8ec81d7903f267b6ff34333a87ef68
parent780f30ab1a104e4f2a72f4c7cc2ed3ed0e3725e8 (diff)
downloadalsa-lib-7ed19bbc9a0150f1b3973de46aa4dfac6b9ed211.tar.gz
test/latency: print error message when 2 periods per buffer not supported
Print error message when playback/capture does not support 2 periods per buffer. Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--test/latency.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/test/latency.c b/test/latency.c
index 03d65a23..e9bc6d84 100644
--- a/test/latency.c
+++ b/test/latency.c
@@ -175,6 +175,7 @@ int setparams(snd_pcm_t *phandle, snd_pcm_t *chandle, int *bufsize)
snd_pcm_sw_params_t *p_swparams, *c_swparams;
snd_pcm_uframes_t p_size, c_size, p_psize, c_psize;
unsigned int p_time, c_time;
+ unsigned int val;
snd_pcm_hw_params_alloca(&p_params);
snd_pcm_hw_params_alloca(&c_params);
@@ -226,12 +227,23 @@ int setparams(snd_pcm_t *phandle, snd_pcm_t *chandle, int *bufsize)
goto __again;
snd_pcm_hw_params_get_buffer_size(p_params, &p_size);
- if (p_psize * 2 < p_size)
+ if (p_psize * 2 < p_size) {
+ snd_pcm_hw_params_get_periods_min(p_params, &val, NULL);
+ if (val > 2) {
+ printf("playback device does not support 2 periods per buffer\n");
+ exit(0);
+ }
goto __again;
+ }
snd_pcm_hw_params_get_buffer_size(c_params, &c_size);
- if (c_psize * 2 < c_size)
+ if (c_psize * 2 < c_size) {
+ snd_pcm_hw_params_get_periods_min(c_params, &val, NULL);
+ if (val > 2 ) {
+ printf("capture device does not support 2 periods per buffer\n");
+ exit(0);
+ }
goto __again;
-
+ }
if ((err = setparams_set(phandle, p_params, p_swparams, "playback")) < 0) {
printf("Unable to set sw parameters for playback stream: %s\n", snd_strerror(err));
exit(0);