2020年3月28日 星期六

aplay -L

Copy it form alsa.c
#include <alsa/asoundlib.h>


static void pcm_list(snd_pcm_stream_t stream)
{
    void **hints, **n;
    char *name, *descr, *descr1, *io;
    const char *filter;
    if (snd_device_name_hint(-1, "pcm", &hints) < 0)
        return;
    n = hints;
    filter = stream == SND_PCM_STREAM_CAPTURE ? "Input" : "Output";
    while (*n != NULL) {
        name = snd_device_name_get_hint(*n, "NAME");
        descr = snd_device_name_get_hint(*n, "DESC");
        io = snd_device_name_get_hint(*n, "IOID");
        if (io != NULL && strcmp(io, filter) != 0)
            goto __end;
        printf("%s\n", name);
        if ((descr1 = descr) != NULL) {
            printf("    ");
            while (*descr1) {
                if (*descr1 == '\n')
                    printf("\n    ");
                else
                    putchar(*descr1);
                descr1++;
            }
            putchar('\n');
         }
       __end:
         if (name != NULL)
             free(name);
         if (descr != NULL)
             free(descr);
         if (io != NULL)
            free(io);
         n++;
    }
    snd_device_name_free_hint(hints);
}

void main (void)
{
    printf("-------capture-------\n");
    pcm_list(SND_PCM_STREAM_CAPTURE);
    printf("\n");
    printf("\n");
    printf("-------playback-------\n");
    pcm_list(SND_PCM_STREAM_PLAYBACK);
    return;
}
Copy it form alsa.c ref:
Linux Sound Programming

沒有留言:

張貼留言