ambdec.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #ifndef AMBDEC_H
  2. #define AMBDEC_H
  3. #include "alstring.h"
  4. #include "alMain.h"
  5. /* Helpers to read .ambdec configuration files. */
  6. enum AmbDecScaleType {
  7. ADS_N3D,
  8. ADS_SN3D,
  9. ADS_FuMa,
  10. };
  11. typedef struct AmbDecConf {
  12. al_string Description;
  13. ALuint Version; /* Must be 3 */
  14. ALuint ChanMask;
  15. ALuint FreqBands; /* Must be 1 or 2 */
  16. ALuint NumSpeakers;
  17. enum AmbDecScaleType CoeffScale;
  18. ALfloat XOverFreq;
  19. ALfloat XOverRatio;
  20. struct {
  21. al_string Name;
  22. ALfloat Distance;
  23. ALfloat Azimuth;
  24. ALfloat Elevation;
  25. al_string Connection;
  26. } Speakers[MAX_OUTPUT_CHANNELS];
  27. /* Unused when FreqBands == 1 */
  28. ALfloat LFOrderGain[MAX_AMBI_ORDER+1];
  29. ALfloat LFMatrix[MAX_OUTPUT_CHANNELS][MAX_AMBI_COEFFS];
  30. ALfloat HFOrderGain[MAX_AMBI_ORDER+1];
  31. ALfloat HFMatrix[MAX_OUTPUT_CHANNELS][MAX_AMBI_COEFFS];
  32. } AmbDecConf;
  33. void ambdec_init(AmbDecConf *conf);
  34. void ambdec_deinit(AmbDecConf *conf);
  35. int ambdec_load(AmbDecConf *conf, const char *fname);
  36. #endif /* AMBDEC_H */