]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - ao_write.c
alsa_write: Avoid spurious underrun warnings.
[paraslash.git] / ao_write.c
index e2858b918ebfd1d1e552147a4d62883990711a4c..037b92993325539552ddd625b881a843aa57c5a9 100644 (file)
@@ -87,7 +87,7 @@ static int aow_set_sample_format(unsigned sample_rate, unsigned channels,
                case SF_U8:
                case SF_U16_LE:
                case SF_U16_BE:
-                       return -E_AO_BAD_SAMPLE_FORMAT;
+                       return -E_BAD_SAMPLE_FORMAT;
                case SF_S8:
                        /* no need to set byte_format */
                        result->bits = 8;
@@ -159,8 +159,8 @@ static void aow_show_drivers(void)
 
                if (info->type == AO_TYPE_FILE)
                        continue;
-               PARA_DEBUG_LOG("%s: %s", info->short_name, info->name);
-               PARA_DEBUG_LOG("priority: %d", info->priority);
+               PARA_DEBUG_LOG("name: %s: %s\n", info->short_name, info->name);
+               PARA_DEBUG_LOG("priority: %d\n", info->priority);
                for (j = 0; j < info->option_count; j++) {
                        tmp = make_message("%s%s%s", keys? keys : "",
                                keys? ", " : "",
@@ -168,9 +168,9 @@ static void aow_show_drivers(void)
                        free(keys);
                        keys = tmp;
                }
-               PARA_DEBUG_LOG("keys: %s", keys? keys : "[none]");
+               PARA_DEBUG_LOG("keys: %s\n", keys? keys : "[none]");
                free(keys);
-               PARA_DEBUG_LOG("comment: %s", info->comment?
+               PARA_DEBUG_LOG("comment: %s\n", info->comment?
                        info->comment : "[none]");
        }
 }
@@ -357,9 +357,15 @@ static int aow_post_select(__a_unused struct sched *s, void *context)
                        goto remove_btrn;
                if (ret == 0)
                        return 0;
-               get_btr_sample_rate(wn->btrn, &rate);
-               get_btr_channels(wn->btrn, &ch);
-               get_btr_sample_format(wn->btrn, &format);
+               ret = get_btr_sample_rate(wn->btrn, &rate);
+               if (ret < 0)
+                       goto remove_btrn;
+               ret = get_btr_channels(wn->btrn, &ch);
+               if (ret < 0)
+                       goto remove_btrn;
+               ret = get_btr_sample_format(wn->btrn, &format);
+               if (ret < 0)
+                       goto remove_btrn;
                ret = aow_init(wn, rate, ch, format);
                if (ret < 0)
                        goto remove_btrn;