mirror of https://github.com/axmolengine/axmol.git
39 lines
728 B
C++
39 lines
728 B
C++
#ifndef ALU_H
|
|
#define ALU_H
|
|
|
|
#include <bitset>
|
|
#include <optional>
|
|
#include <stdint.h>
|
|
|
|
struct ALCcontext;
|
|
struct ALCdevice;
|
|
struct EffectSlot;
|
|
|
|
enum class StereoEncoding : uint8_t;
|
|
|
|
|
|
constexpr float GainMixMax{1000.0f}; /* +60dB */
|
|
|
|
|
|
enum CompatFlags : uint8_t {
|
|
ReverseX,
|
|
ReverseY,
|
|
ReverseZ,
|
|
|
|
Count
|
|
};
|
|
using CompatFlagBitset = std::bitset<CompatFlags::Count>;
|
|
|
|
void aluInit(CompatFlagBitset flags, const float nfcscale);
|
|
|
|
/* aluInitRenderer
|
|
*
|
|
* Set up the appropriate panning method and mixing method given the device
|
|
* properties.
|
|
*/
|
|
void aluInitRenderer(ALCdevice *device, int hrtf_id, std::optional<StereoEncoding> stereomode);
|
|
|
|
void aluInitEffectPanning(EffectSlot *slot, ALCcontext *context);
|
|
|
|
#endif
|