]> git.alsa-project.org Git - alsa-lib.git/commitdiff
test/latency: print error message when 2 periods per buffer not supported
authorRaymond Yau <superquad.vortex2@gmail.com>
Wed, 20 Apr 2011 08:18:50 +0000 (16:18 +0800)
committerTakashi Iwai <tiwai@suse.de>
Wed, 20 Apr 2011 12:11:59 +0000 (14:11 +0200)
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>
test/latency.c

index 03d65a23889f3eae7c6c7aeb51050ee5ace0de9c..e9bc6d8408a32955d058433d29bd1c8d6b0bd8f2 100644 (file)
@@ -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);