X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=para.h;h=287e3c7a905bddd73b0cfda92e2653292ff93ab8;hp=ae3b5b2b2b2a1faf3473c66ec7fd5c25a3193de4;hb=9005b5a064873fc1ec2af9fb76c61aa7cd60db9b;hpb=e90440367f744a7723b201a95888e66f070ffa92 diff --git a/para.h b/para.h index ae3b5b2b..287e3c7a 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 + * \t 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