Don't inline the utf8 converters
[openal-soft.git] / alc / ambdec.h
blobff7b71eef53c2682398e9268a5c8c531e0ae1b6b
1 #ifndef AMBDEC_H
2 #define AMBDEC_H
4 #include <array>
5 #include <string>
7 #include "ambidefs.h"
8 #include "vector.h"
10 /* Helpers to read .ambdec configuration files. */
12 enum class AmbDecScale {
13 N3D,
14 SN3D,
15 FuMa,
17 struct AmbDecConf {
18 std::string Description;
19 int Version{0}; /* Must be 3 */
21 unsigned int ChanMask{0u};
22 unsigned int FreqBands{0u}; /* Must be 1 or 2 */
23 AmbDecScale CoeffScale{};
25 float XOverFreq{0.0f};
26 float XOverRatio{0.0f};
28 struct SpeakerConf {
29 std::string Name;
30 float Distance{0.0f};
31 float Azimuth{0.0f};
32 float Elevation{0.0f};
33 std::string Connection;
35 al::vector<SpeakerConf> Speakers;
37 using CoeffArray = std::array<float,MAX_AMBI_CHANNELS>;
38 /* Unused when FreqBands == 1 */
39 float LFOrderGain[MAX_AMBI_ORDER+1]{};
40 al::vector<CoeffArray> LFMatrix;
42 float HFOrderGain[MAX_AMBI_ORDER+1]{};
43 al::vector<CoeffArray> HFMatrix;
45 int load(const char *fname) noexcept;
48 #endif /* AMBDEC_H */