au.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. enum {
  2. AU_ULAW = 1,
  3. AU_PCM8 = 2,
  4. AU_PCM16,
  5. AU_PCM24,
  6. AU_PCM32,
  7. AU_FLOAT32 = 6,
  8. AU_FLOAT64,
  9. AU_FIXED8 = 10,
  10. AU_FIXED16,
  11. AU_FIXED24,
  12. AU_FIXED32,
  13. AU_ALAW = 27,
  14. AU_ENCMAX = 27
  15. };
  16. #define AU_MAGIC UINT32_C(0x2E736E64)
  17. #define AU_COUNT 6
  18. #define AU_SIZE (AU_COUNT * sizeof(uint32_t))
  19. #define AU_INITIALIZER { AU_SIZE, UINT32_MAX, AU_PCM16, 48000, 1 }
  20. struct au {
  21. uint32_t au_off;
  22. uint32_t au_size;
  23. uint32_t au_enc;
  24. uint32_t au_rate;
  25. uint32_t au_chan;
  26. };
  27. #define au_vsize(au) au_encsize((au)->au_enc)
  28. #define au_ssize(au) (au_vsize(au) * (au)->au_chan)
  29. #define au_bswap(au, b, s) au_encbswap((au)->au_enc, (b), (s))
  30. #define au_nswap(au, b, s) au_encnswap((au)->au_enc, (b), (s))
  31. int au_gethdr(struct au *, const void *);
  32. int au_puthdr(struct au *, void *);
  33. const char *au_encstr(uint32_t);
  34. #define au_strenc(str) au_strencp((str), NULL)
  35. uint32_t au_strencp(const char *, const char **);
  36. size_t au_encsize(uint32_t);
  37. int au_encbswap(uint32_t, void *, size_t);
  38. int au_encnswap(uint32_t, void *, size_t);