buffer_storage.cpp 834 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include "config.h"
  2. #include "buffer_storage.h"
  3. #include <cstdint>
  4. uint BytesFromFmt(FmtType type) noexcept
  5. {
  6. switch(type)
  7. {
  8. case FmtUByte: return sizeof(uint8_t);
  9. case FmtShort: return sizeof(int16_t);
  10. case FmtFloat: return sizeof(float);
  11. case FmtDouble: return sizeof(double);
  12. case FmtMulaw: return sizeof(uint8_t);
  13. case FmtAlaw: return sizeof(uint8_t);
  14. }
  15. return 0;
  16. }
  17. uint ChannelsFromFmt(FmtChannels chans, uint ambiorder) noexcept
  18. {
  19. switch(chans)
  20. {
  21. case FmtMono: return 1;
  22. case FmtStereo: return 2;
  23. case FmtRear: return 2;
  24. case FmtQuad: return 4;
  25. case FmtX51: return 6;
  26. case FmtX61: return 7;
  27. case FmtX71: return 8;
  28. case FmtBFormat2D: return (ambiorder*2) + 1;
  29. case FmtBFormat3D: return (ambiorder+1) * (ambiorder+1);
  30. }
  31. return 0;
  32. }