]> git.tdb.fi Git - ext/openal.git/blob - core/devformat.cpp
Tweak some types to work around an MSVC compile error
[ext/openal.git] / core / devformat.cpp
1
2 #include "config.h"
3
4 #include "devformat.h"
5
6
7 uint BytesFromDevFmt(DevFmtType type) noexcept
8 {
9     switch(type)
10     {
11     case DevFmtByte: return sizeof(int8_t);
12     case DevFmtUByte: return sizeof(uint8_t);
13     case DevFmtShort: return sizeof(int16_t);
14     case DevFmtUShort: return sizeof(uint16_t);
15     case DevFmtInt: return sizeof(int32_t);
16     case DevFmtUInt: return sizeof(uint32_t);
17     case DevFmtFloat: return sizeof(float);
18     }
19     return 0;
20 }
21 uint ChannelsFromDevFmt(DevFmtChannels chans, uint ambiorder) noexcept
22 {
23     switch(chans)
24     {
25     case DevFmtMono: return 1;
26     case DevFmtStereo: return 2;
27     case DevFmtQuad: return 4;
28     case DevFmtX51: return 6;
29     case DevFmtX61: return 7;
30     case DevFmtX71: return 8;
31     case DevFmtX714: return 12;
32     case DevFmtX3D71: return 8;
33     case DevFmtAmbi3D: return (ambiorder+1) * (ambiorder+1);
34     }
35     return 0;
36 }
37
38 const char *DevFmtTypeString(DevFmtType type) noexcept
39 {
40     switch(type)
41     {
42     case DevFmtByte: return "Int8";
43     case DevFmtUByte: return "UInt8";
44     case DevFmtShort: return "Int16";
45     case DevFmtUShort: return "UInt16";
46     case DevFmtInt: return "Int32";
47     case DevFmtUInt: return "UInt32";
48     case DevFmtFloat: return "Float32";
49     }
50     return "(unknown type)";
51 }
52 const char *DevFmtChannelsString(DevFmtChannels chans) noexcept
53 {
54     switch(chans)
55     {
56     case DevFmtMono: return "Mono";
57     case DevFmtStereo: return "Stereo";
58     case DevFmtQuad: return "Quadraphonic";
59     case DevFmtX51: return "5.1 Surround";
60     case DevFmtX61: return "6.1 Surround";
61     case DevFmtX71: return "7.1 Surround";
62     case DevFmtX714: return "7.1.4 Surround";
63     case DevFmtX3D71: return "3D7.1 Surround";
64     case DevFmtAmbi3D: return "Ambisonic 3D";
65     }
66     return "(unknown channels)";
67 }