X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=para.h;h=09132432bfb56c8cb8aaa0577a87437e82151981;hp=ae3b5b2b2b2a1faf3473c66ec7fd5c25a3193de4;hb=d5538ff0dd9f6531a1a319b49c32bd72597fb2c3;hpb=ffb2eaa90429f6d5c3d369509efcdf91c5463dad diff --git a/para.h b/para.h index ae3b5b2b..09132432 100644 --- a/para.h +++ b/para.h @@ -259,3 +259,27 @@ _static_inline_ long int para_random(unsigned max) /** Used to avoid a shortcoming in vim's syntax highlighting. */ #define EMBRACE(...) { __VA_ARGS__} +/** + * The sample formats supported by paraslash. + * + * It may be determined by one of the following sources: + * + * 1. The decoding filter (para_audiod only). In this case, it is always + * \p SF_S16_LE which is the canonical format used within decoders. + * + * 2. The wav header (para_write only). + * + * 3. The --format option of para_write. + */ +#define SAMPLE_FORMATS \ + SAMPLE_FORMAT(SF_S8, "8 bit signed"), \ + SAMPLE_FORMAT(SF_U8, "8 bit unsigned"), \ + SAMPLE_FORMAT(SF_S16_LE, "16 bit signed, little endian"), \ + SAMPLE_FORMAT(SF_S16_BE, "16 bit signed, big endian"), \ + SAMPLE_FORMAT(SF_U16_LE, "16 bit unsigned, little endian"), \ + SAMPLE_FORMAT(SF_U16_BE, "16 bit unsigned, big endian"), \ + +#define SAMPLE_FORMAT(a, b) a +enum sample_format {SAMPLE_FORMATS}; +#undef SAMPLE_FORMAT +#define SAMPLE_FORMAT(a, b) b