2021-04-28 12:43:51 +08:00
|
|
|
#ifndef ALU_H
|
|
|
|
#define ALU_H
|
|
|
|
|
2022-04-25 12:02:45 +08:00
|
|
|
#include <bitset>
|
|
|
|
|
|
|
|
#include "aloptional.h"
|
|
|
|
|
2021-04-28 12:43:51 +08:00
|
|
|
struct ALCcontext;
|
|
|
|
struct ALCdevice;
|
|
|
|
struct EffectSlot;
|
|
|
|
|
2022-04-25 12:02:45 +08:00
|
|
|
enum class StereoEncoding : unsigned char;
|
|
|
|
|
2021-04-28 12:43:51 +08:00
|
|
|
|
|
|
|
constexpr float GainMixMax{1000.0f}; /* +60dB */
|
|
|
|
|
|
|
|
|
2022-04-25 12:02:45 +08:00
|
|
|
enum CompatFlags : uint8_t {
|
|
|
|
ReverseX,
|
|
|
|
ReverseY,
|
|
|
|
ReverseZ,
|
2021-04-28 12:43:51 +08:00
|
|
|
|
2022-04-25 12:02:45 +08:00
|
|
|
Count
|
2021-04-28 12:43:51 +08:00
|
|
|
};
|
2022-04-25 12:02:45 +08:00
|
|
|
using CompatFlagBitset = std::bitset<CompatFlags::Count>;
|
2021-04-28 12:43:51 +08:00
|
|
|
|
2023-02-04 15:03:54 +08:00
|
|
|
void aluInit(CompatFlagBitset flags, const float nfcscale);
|
2021-04-28 12:43:51 +08:00
|
|
|
|
|
|
|
/* aluInitRenderer
|
|
|
|
*
|
|
|
|
* Set up the appropriate panning method and mixing method given the device
|
|
|
|
* properties.
|
|
|
|
*/
|
2022-04-25 12:02:45 +08:00
|
|
|
void aluInitRenderer(ALCdevice *device, int hrtf_id, al::optional<StereoEncoding> stereomode);
|
2021-04-28 12:43:51 +08:00
|
|
|
|
|
|
|
void aluInitEffectPanning(EffectSlot *slot, ALCcontext *context);
|
|
|
|
|
|
|
|
#endif
|