aboutsummaryrefslogtreecommitdiffstats
path: root/alc/buffer_storage.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2020-08-27 23:02:17 -0700
committerChris Robinson <[email protected]>2020-08-27 23:02:17 -0700
commitecf30de36f6487c1f8a19ae0d03ba810078706f4 (patch)
tree1a25173f5d35b9c317854a1e20493bdb2be3d948 /alc/buffer_storage.cpp
parenta9ebcdcb7fb2d8eeb137b54c100f3d9601b71a2e (diff)
Rename buffer_formats to buffer_storage
Diffstat (limited to 'alc/buffer_storage.cpp')
-rw-r--r--alc/buffer_storage.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/alc/buffer_storage.cpp b/alc/buffer_storage.cpp
new file mode 100644
index 00000000..727cb281
--- /dev/null
+++ b/alc/buffer_storage.cpp
@@ -0,0 +1,37 @@
+
+#include "config.h"
+
+#include "buffer_storage.h"
+
+#include <cstdint>
+
+
+ALuint BytesFromFmt(FmtType type) noexcept
+{
+ switch(type)
+ {
+ case FmtUByte: return sizeof(uint8_t);
+ case FmtShort: return sizeof(int16_t);
+ case FmtFloat: return sizeof(float);
+ case FmtDouble: return sizeof(double);
+ case FmtMulaw: return sizeof(uint8_t);
+ case FmtAlaw: return sizeof(uint8_t);
+ }
+ return 0;
+}
+ALuint ChannelsFromFmt(FmtChannels chans, ALuint ambiorder) noexcept
+{
+ switch(chans)
+ {
+ case FmtMono: return 1;
+ case FmtStereo: return 2;
+ case FmtRear: return 2;
+ case FmtQuad: return 4;
+ case FmtX51: return 6;
+ case FmtX61: return 7;
+ case FmtX71: return 8;
+ case FmtBFormat2D: return (ambiorder*2) + 1;
+ case FmtBFormat3D: return (ambiorder+1) * (ambiorder+1);
+ }
+ return 0;
+}