Recently Written · git

sad

sad (2f30.org simple audio daemon) with a Cygwin/OSS port on branch cygwin

git clone https://github.com/equwal/sad

Log | Files | Refs


decoder.c (588 bytes)

1 #include <sys/select.h>
2 
3 #include <err.h>
4 #include <limits.h>
5 #include <stdio.h>
6 #include <string.h>
7 #include <strings.h>
8 
9 #include "sad.h"
10 
11 static struct {
12   char *ext;
13   Decoder *decoder;
14 } decodermap[] = {
15     {".wav", &wavdecoder},
16     {".flac", &wavdecoder},
17     {".mp3", &mp3decoder},
18     {".ogg", &vorbisdecoder},
19 };
20 
21 Decoder *matchdecoder(const char *name) {
22   char *ext;
23   size_t i;
24 
25   ext = strrchr(name, '.');
26   if (!ext)
27     return NULL;
28   for (i = 0; i < LEN(decodermap); i++)
29     if (!strcasecmp(decodermap[i].ext, ext))
30       return decodermap[i].decoder;
31   return NULL;
32 }