From f319eb0c88a048b63d8691a654fab964f283cb4d Mon Sep 17 00:00:00 2001 From: Taylor Holberton Date: Fri, 14 Oct 2016 20:05:30 -0400 Subject: Added support for default config --- src/pcm.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src/pcm.c') diff --git a/src/pcm.c b/src/pcm.c index a45ce75..b185f5e 100644 --- a/src/pcm.c +++ b/src/pcm.c @@ -796,10 +796,22 @@ struct pcm *pcm_open(unsigned int card, unsigned int device, int rc; pcm = calloc(1, sizeof(struct pcm)); - if (!pcm || !config) - return &bad_pcm; /* TODO: could support default config here */ - - pcm->config = *config; + if (!pcm) + return &bad_pcm; + + if (config == NULL) { + config = &pcm->config; + config->channels = 2; + config->rate = 48000; + config->period_size = 1024; + config->period_count = 4; + config->format = PCM_FORMAT_S16_LE; + config->start_threshold = config->period_count * config->period_size; + config->stop_threshold = config->period_count * config->period_size; + config->silence_threshold = 0; + } else { + pcm->config = *config; + } snprintf(fn, sizeof(fn), "/dev/snd/pcmC%uD%u%c", card, device, flags & PCM_IN ? 'c' : 'p'); -- cgit v1.2.3