initial commit
commit
2a304de60c
Binary file not shown.
|
@ -0,0 +1,446 @@
|
|||
/*******************************************************************\
|
||||
* *
|
||||
* EFX-UTIL.H - EFX Utilities functions and Reverb Presets *
|
||||
* *
|
||||
* File revision 1.0 *
|
||||
* *
|
||||
\*******************************************************************/
|
||||
|
||||
#ifndef EFX_UTIL_H_INCLUDED
|
||||
#define EFX_UTIL_H_INCLUDED
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif // __cplusplus
|
||||
|
||||
#pragma pack(push, 4)
|
||||
|
||||
#ifndef EAXVECTOR_DEFINED
|
||||
#define EAXVECTOR_DEFINED
|
||||
typedef struct _EAXVECTOR {
|
||||
float x;
|
||||
float y;
|
||||
float z;
|
||||
} EAXVECTOR;
|
||||
#endif
|
||||
|
||||
#ifndef EAXREVERBPROPERTIES_DEFINED
|
||||
#define EAXREVERBPROPERTIES_DEFINED
|
||||
typedef struct _EAXREVERBPROPERTIES
|
||||
{
|
||||
unsigned long ulEnvironment;
|
||||
float flEnvironmentSize;
|
||||
float flEnvironmentDiffusion;
|
||||
long lRoom;
|
||||
long lRoomHF;
|
||||
long lRoomLF;
|
||||
float flDecayTime;
|
||||
float flDecayHFRatio;
|
||||
float flDecayLFRatio;
|
||||
long lReflections;
|
||||
float flReflectionsDelay;
|
||||
EAXVECTOR vReflectionsPan;
|
||||
long lReverb;
|
||||
float flReverbDelay;
|
||||
EAXVECTOR vReverbPan;
|
||||
float flEchoTime;
|
||||
float flEchoDepth;
|
||||
float flModulationTime;
|
||||
float flModulationDepth;
|
||||
float flAirAbsorptionHF;
|
||||
float flHFReference;
|
||||
float flLFReference;
|
||||
float flRoomRolloffFactor;
|
||||
unsigned long ulFlags;
|
||||
} EAXREVERBPROPERTIES, *LPEAXREVERBPROPERTIES;
|
||||
#endif
|
||||
|
||||
#ifndef EFXEAXREVERBPROPERTIES_DEFINED
|
||||
#define EFXEAXREVERBPROPERTIES_DEFINED
|
||||
typedef struct
|
||||
{
|
||||
float flDensity;
|
||||
float flDiffusion;
|
||||
float flGain;
|
||||
float flGainHF;
|
||||
float flGainLF;
|
||||
float flDecayTime;
|
||||
float flDecayHFRatio;
|
||||
float flDecayLFRatio;
|
||||
float flReflectionsGain;
|
||||
float flReflectionsDelay;
|
||||
float flReflectionsPan[3];
|
||||
float flLateReverbGain;
|
||||
float flLateReverbDelay;
|
||||
float flLateReverbPan[3];
|
||||
float flEchoTime;
|
||||
float flEchoDepth;
|
||||
float flModulationTime;
|
||||
float flModulationDepth;
|
||||
float flAirAbsorptionGainHF;
|
||||
float flHFReference;
|
||||
float flLFReference;
|
||||
float flRoomRolloffFactor;
|
||||
int iDecayHFLimit;
|
||||
} EFXEAXREVERBPROPERTIES, *LPEFXEAXREVERBPROPERTIES;
|
||||
#endif
|
||||
|
||||
#ifndef EAXOBSTRUCTIONPROPERTIES_DEFINED
|
||||
#define EAXOBSTRUCTIONPROPERTIES_DEFINED
|
||||
typedef struct _EAXOBSTRUCTIONPROPERTIES
|
||||
{
|
||||
long lObstruction;
|
||||
float flObstructionLFRatio;
|
||||
} EAXOBSTRUCTIONPROPERTIES, *LPEAXOBSTRUCTIONPROPERTIES;
|
||||
#endif
|
||||
|
||||
#ifndef EAXOCCLUSIONPROPERTIES_DEFINED
|
||||
#define EAXOCCLUSIONPROPERTIES_DEFINED
|
||||
typedef struct _EAXOCCLUSIONPROPERTIES
|
||||
{
|
||||
long lOcclusion;
|
||||
float flOcclusionLFRatio;
|
||||
float flOcclusionRoomRatio;
|
||||
float flOcclusionDirectRatio;
|
||||
} EAXOCCLUSIONPROPERTIES, *LPEAXOCCLUSIONPROPERTIES;
|
||||
#endif
|
||||
|
||||
#ifndef EAXEXCLUSIONPROPERTIES_DEFINED
|
||||
#define EAXEXCLUSIONPROPERTIES_DEFINED
|
||||
typedef struct _EAXEXCLUSIONPROPERTIES
|
||||
{
|
||||
long lExclusion;
|
||||
float flExclusionLFRatio;
|
||||
} EAXEXCLUSIONPROPERTIES, *LPEAXEXCLUSIONPROPERTIES;
|
||||
#endif
|
||||
|
||||
#ifndef EFXLOWPASSFILTER_DEFINED
|
||||
#define EFXLOWPASSFILTER_DEFINED
|
||||
typedef struct _EFXLOWPASSFILTER
|
||||
{
|
||||
float flGain;
|
||||
float flGainHF;
|
||||
} EFXLOWPASSFILTER, *LPEFXLOWPASSFILTER;
|
||||
#endif
|
||||
|
||||
#ifdef EFXUTILDLL_EXPORTS
|
||||
#define EFX_API __declspec(dllexport)
|
||||
#else
|
||||
#define EFX_API
|
||||
#endif
|
||||
|
||||
EFX_API void __cdecl ConvertReverbParameters(EAXREVERBPROPERTIES *pEAXProp, EFXEAXREVERBPROPERTIES *pEFXEAXReverb);
|
||||
EFX_API void __cdecl ConvertObstructionParameters(EAXOBSTRUCTIONPROPERTIES *pObProp, EFXLOWPASSFILTER *pDirectLowPassFilter);
|
||||
EFX_API void __cdecl ConvertExclusionParameters(EAXEXCLUSIONPROPERTIES *pExProp, EFXLOWPASSFILTER *pSendLowPassFilter);
|
||||
EFX_API void __cdecl ConvertOcclusionParameters(EAXOCCLUSIONPROPERTIES *pOcProp, EFXLOWPASSFILTER *pDirectLowPassFilter, EFXLOWPASSFILTER *pSendLowPassFilter);
|
||||
EFX_API void __cdecl AdjustEnvironmentSize(EAXREVERBPROPERTIES *pEAXProp, float flEnvironmentSize);
|
||||
|
||||
/***********************************************************************************************\
|
||||
*
|
||||
* EAX Reverb Presets in legacy format - use ConvertReverbParameters() to convert to
|
||||
* EFX EAX Reverb Presets for use with the OpenAL Effects Extension.
|
||||
*
|
||||
************************************************************************************************/
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_GENERIC \
|
||||
{0, 7.5f, 1.000f, -1000, -100, 0, 1.49f, 0.83f, 1.00f, -2602, 0.007f, 0.00f,0.00f,0.00f, 200, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_PADDEDCELL \
|
||||
{1, 1.4f, 1.000f, -1000, -6000, 0, 0.17f, 0.10f, 1.00f, -1204, 0.001f, 0.00f,0.00f,0.00f, 207, 0.002f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_ROOM \
|
||||
{2, 1.9f, 1.000f, -1000, -454, 0, 0.40f, 0.83f, 1.00f, -1646, 0.002f, 0.00f,0.00f,0.00f, 53, 0.003f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_BATHROOM \
|
||||
{3, 1.4f, 1.000f, -1000, -1200, 0, 1.49f, 0.54f, 1.00f, -370, 0.007f, 0.00f,0.00f,0.00f, 1030, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_LIVINGROOM \
|
||||
{4, 2.5f, 1.000f, -1000, -6000, 0, 0.50f, 0.10f, 1.00f, -1376, 0.003f, 0.00f,0.00f,0.00f, -1104, 0.004f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_STONEROOM \
|
||||
{5, 11.6f, 1.000f, -1000, -300, 0, 2.31f, 0.64f, 1.00f, -711, 0.012f, 0.00f,0.00f,0.00f, 83, 0.017f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_AUDITORIUM \
|
||||
{6, 21.6f, 1.000f, -1000, -476, 0, 4.32f, 0.59f, 1.00f, -789, 0.020f, 0.00f,0.00f,0.00f, -289, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_CONCERTHALL \
|
||||
{7, 19.6f, 1.000f, -1000, -500, 0, 3.92f, 0.70f, 1.00f, -1230, 0.020f, 0.00f,0.00f,0.00f, -02, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_CAVE \
|
||||
{8, 14.6f, 1.000f, -1000, 0, 0, 2.91f, 1.30f, 1.00f, -602, 0.015f, 0.00f,0.00f,0.00f, -302, 0.022f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_ARENA \
|
||||
{9, 36.2f, 1.000f, -1000, -698, 0, 7.24f, 0.33f, 1.00f, -1166, 0.020f, 0.00f,0.00f,0.00f, 16, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_HANGAR \
|
||||
{10, 50.3f, 1.000f, -1000, -1000, 0, 10.05f, 0.23f, 1.00f, -602, 0.020f, 0.00f,0.00f,0.00f, 198, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_CARPETTEDHALLWAY \
|
||||
{11, 1.9f, 1.000f, -1000, -4000, 0, 0.30f, 0.10f, 1.00f, -1831, 0.002f, 0.00f,0.00f,0.00f, -1630, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_HALLWAY \
|
||||
{12, 1.8f, 1.000f, -1000, -300, 0, 1.49f, 0.59f, 1.00f, -1219, 0.007f, 0.00f,0.00f,0.00f, 441, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_STONECORRIDOR \
|
||||
{13, 13.5f, 1.000f, -1000, -237, 0, 2.70f, 0.79f, 1.00f, -1214, 0.013f, 0.00f,0.00f,0.00f, 395, 0.020f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_ALLEY \
|
||||
{14, 7.5f, 0.300f, -1000, -270, 0, 1.49f, 0.86f, 1.00f, -1204, 0.007f, 0.00f,0.00f,0.00f, -4, 0.011f, 0.00f,0.00f,0.00f, 0.125f, 0.950f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_FOREST \
|
||||
{15, 38.0f, 0.300f, -1000, -3300, 0, 1.49f, 0.54f, 1.00f, -2560, 0.162f, 0.00f,0.00f,0.00f, -229, 0.088f, 0.00f,0.00f,0.00f, 0.125f, 1.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_CITY \
|
||||
{16, 7.5f, 0.500f, -1000, -800, 0, 1.49f, 0.67f, 1.00f, -2273, 0.007f, 0.00f,0.00f,0.00f, -1691, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_MOUNTAINS \
|
||||
{17, 100.0f, 0.270f, -1000, -2500, 0, 1.49f, 0.21f, 1.00f, -2780, 0.300f, 0.00f,0.00f,0.00f, -1434, 0.100f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_QUARRY \
|
||||
{18, 17.5f, 1.000f, -1000, -1000, 0, 1.49f, 0.83f, 1.00f, -10000, 0.061f, 0.00f,0.00f,0.00f, 500, 0.025f, 0.00f,0.00f,0.00f, 0.125f, 0.700f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_PLAIN \
|
||||
{19, 42.5f, 0.210f, -1000, -2000, 0, 1.49f, 0.50f, 1.00f, -2466, 0.179f, 0.00f,0.00f,0.00f, -1926, 0.100f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_PARKINGLOT \
|
||||
{20, 8.3f, 1.000f, -1000, 0, 0, 1.65f, 1.50f, 1.00f, -1363, 0.008f, 0.00f,0.00f,0.00f, -1153, 0.012f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_SEWERPIPE \
|
||||
{21, 1.7f, 0.800f, -1000, -1000, 0, 2.81f, 0.14f, 1.00f, 429, 0.014f, 0.00f,0.00f,0.00f, 1023, 0.021f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_UNDERWATER \
|
||||
{22, 1.8f, 1.000f, -1000, -4000, 0, 1.49f, 0.10f, 1.00f, -449, 0.007f, 0.00f,0.00f,0.00f, 1700, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 1.180f, 0.348f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_DRUGGED \
|
||||
{23, 1.9f, 0.500f, -1000, 0, 0, 8.39f, 1.39f, 1.00f, -115, 0.002f, 0.00f,0.00f,0.00f, 985, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 1.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_DIZZY \
|
||||
{24, 1.8f, 0.600f, -1000, -400, 0, 17.23f, 0.56f, 1.00f, -1713, 0.020f, 0.00f,0.00f,0.00f, -613, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.810f, 0.310f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_PSYCHOTIC \
|
||||
{25, 1.0f, 0.500f, -1000, -151, 0, 7.56f, 0.91f, 1.00f, -626, 0.020f, 0.00f,0.00f,0.00f, 774, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 4.000f, 1.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
|
||||
|
||||
// CASTLE PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_CASTLE_SMALLROOM \
|
||||
{ 26, 8.3f, 0.890f, -1000, -800, -2000, 1.22f, 0.83f, 0.31f, -100, 0.022f, 0.00f,0.00f,0.00f, 600, 0.011f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CASTLE_SHORTPASSAGE \
|
||||
{ 26, 8.3f, 0.890f, -1000, -1000, -2000, 2.32f, 0.83f, 0.31f, -100, 0.007f, 0.00f,0.00f,0.00f, 200, 0.023f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CASTLE_MEDIUMROOM \
|
||||
{ 26, 8.3f, 0.930f, -1000, -1100, -2000, 2.04f, 0.83f, 0.46f, -400, 0.022f, 0.00f,0.00f,0.00f, 400, 0.011f, 0.00f,0.00f,0.00f, 0.155f, 0.030f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CASTLE_LONGPASSAGE \
|
||||
{ 26, 8.3f, 0.890f, -1000, -800, -2000, 3.42f, 0.83f, 0.31f, -100, 0.007f, 0.00f,0.00f,0.00f, 300, 0.023f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CASTLE_LARGEROOM \
|
||||
{ 26, 8.3f, 0.820f, -1000, -1100, -1800, 2.53f, 0.83f, 0.50f, -700, 0.034f, 0.00f,0.00f,0.00f, 200, 0.016f, 0.00f,0.00f,0.00f, 0.185f, 0.070f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CASTLE_HALL \
|
||||
{ 26, 8.3f, 0.810f, -1000, -1100, -1500, 3.14f, 0.79f, 0.62f, -1500, 0.056f, 0.00f,0.00f,0.00f, 100, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CASTLE_CUPBOARD \
|
||||
{ 26, 8.3f, 0.890f, -1000, -1100, -2000, 0.67f, 0.87f, 0.31f, 300, 0.010f, 0.00f,0.00f,0.00f, 1100, 0.007f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CASTLE_COURTYARD \
|
||||
{ 26, 8.3f, 0.420f, -1000, -700, -1400, 2.13f, 0.61f, 0.23f, -1300, 0.160f, 0.00f,0.00f,0.00f, -300, 0.036f, 0.00f,0.00f,0.00f, 0.250f, 0.370f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_CASTLE_ALCOVE \
|
||||
{ 26, 8.3f, 0.890f, -1000, -600, -2000, 1.64f, 0.87f, 0.31f, 00, 0.007f, 0.00f,0.00f,0.00f, 300, 0.034f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
|
||||
|
||||
// FACTORY PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_FACTORY_ALCOVE \
|
||||
{ 26, 1.8f, 0.590f, -1200, -200, -600, 3.14f, 0.65f, 1.31f, 300, 0.010f, 0.00f,0.00f,0.00f, 000, 0.038f, 0.00f,0.00f,0.00f, 0.114f, 0.100f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_SHORTPASSAGE \
|
||||
{ 26, 1.8f, 0.640f, -1200, -200, -600, 2.53f, 0.65f, 1.31f, 0, 0.010f, 0.00f,0.00f,0.00f, 200, 0.038f, 0.00f,0.00f,0.00f, 0.135f, 0.230f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_MEDIUMROOM \
|
||||
{ 26, 1.9f, 0.820f, -1200, -200, -600, 2.76f, 0.65f, 1.31f, -1100, 0.022f, 0.00f,0.00f,0.00f, 300, 0.023f, 0.00f,0.00f,0.00f, 0.174f, 0.070f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_LONGPASSAGE \
|
||||
{ 26, 1.8f, 0.640f, -1200, -200, -600, 4.06f, 0.65f, 1.31f, 0, 0.020f, 0.00f,0.00f,0.00f, 200, 0.037f, 0.00f,0.00f,0.00f, 0.135f, 0.230f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_LARGEROOM \
|
||||
{ 26, 1.9f, 0.750f, -1200, -300, -400, 4.24f, 0.51f, 1.31f, -1500, 0.039f, 0.00f,0.00f,0.00f, 100, 0.023f, 0.00f,0.00f,0.00f, 0.231f, 0.070f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_HALL \
|
||||
{ 26, 1.9f, 0.750f, -1000, -300, -400, 7.43f, 0.51f, 1.31f, -2400, 0.073f, 0.00f,0.00f,0.00f, -100, 0.027f, 0.00f,0.00f,0.00f, 0.250f, 0.070f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_CUPBOARD \
|
||||
{ 26, 1.7f, 0.630f, -1200, -200, -600, 0.49f, 0.65f, 1.31f, 200, 0.010f, 0.00f,0.00f,0.00f, 600, 0.032f, 0.00f,0.00f,0.00f, 0.107f, 0.070f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_COURTYARD \
|
||||
{ 26, 1.7f, 0.570f, -1000, -1000, -400, 2.32f, 0.29f, 0.56f, -1300, 0.140f, 0.00f,0.00f,0.00f, -800, 0.039f, 0.00f,0.00f,0.00f, 0.250f, 0.290f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_SMALLROOM \
|
||||
{ 26, 1.8f, 0.820f, -1000, -200, -600, 1.72f, 0.65f, 1.31f, -300, 0.010f, 0.00f,0.00f,0.00f, 500, 0.024f, 0.00f,0.00f,0.00f, 0.119f, 0.070f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
|
||||
|
||||
// ICE PALACE PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_ICEPALACE_ALCOVE \
|
||||
{ 26, 2.7f, 0.840f, -1000, -500, -1100, 2.76f, 1.46f, 0.28f, 100, 0.010f, 0.00f,0.00f,0.00f, -100, 0.030f, 0.00f,0.00f,0.00f, 0.161f, 0.090f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_SHORTPASSAGE \
|
||||
{ 26, 2.7f, 0.750f, -1000, -500, -1100, 1.79f, 1.46f, 0.28f, -600, 0.010f, 0.00f,0.00f,0.00f, 100, 0.019f, 0.00f,0.00f,0.00f, 0.177f, 0.090f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_MEDIUMROOM \
|
||||
{ 26, 2.7f, 0.870f, -1000, -500, -700, 2.22f, 1.53f, 0.32f, -800, 0.039f, 0.00f,0.00f,0.00f, 100, 0.027f, 0.00f,0.00f,0.00f, 0.186f, 0.120f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_LONGPASSAGE \
|
||||
{ 26, 2.7f, 0.770f, -1000, -500, -800, 3.01f, 1.46f, 0.28f, -200, 0.012f, 0.00f,0.00f,0.00f, 200, 0.025f, 0.00f,0.00f,0.00f, 0.186f, 0.040f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_LARGEROOM \
|
||||
{ 26, 2.9f, 0.810f, -1000, -500, -700, 3.14f, 1.53f, 0.32f, -1200, 0.039f, 0.00f,0.00f,0.00f, 000, 0.027f, 0.00f,0.00f,0.00f, 0.214f, 0.110f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_HALL \
|
||||
{ 26, 2.9f, 0.760f, -1000, -700, -500, 5.49f, 1.53f, 0.38f, -1900, 0.054f, 0.00f,0.00f,0.00f, -400, 0.052f, 0.00f,0.00f,0.00f, 0.226f, 0.110f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_CUPBOARD \
|
||||
{ 26, 2.7f, 0.830f, -1000, -600, -1300, 0.76f, 1.53f, 0.26f, 100, 0.012f, 0.00f,0.00f,0.00f, 600, 0.016f, 0.00f,0.00f,0.00f, 0.143f, 0.080f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_COURTYARD \
|
||||
{ 26, 2.9f, 0.590f, -1000, -1100, -1000, 2.04f, 1.20f, 0.38f, -1000, 0.173f, 0.00f,0.00f,0.00f, -1000, 0.043f, 0.00f,0.00f,0.00f, 0.235f, 0.480f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_SMALLROOM \
|
||||
{ 26, 2.7f, 0.840f, -1000, -500, -1100, 1.51f, 1.53f, 0.27f, -100, 0.010f, 0.00f,0.00f,0.00f, 300, 0.011f, 0.00f,0.00f,0.00f, 0.164f, 0.140f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
|
||||
|
||||
// SPACE STATION PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_SPACESTATION_ALCOVE \
|
||||
{ 26, 1.5f, 0.780f, -1000, -300, -100, 1.16f, 0.81f, 0.55f, 300, 0.007f, 0.00f,0.00f,0.00f, 000, 0.018f, 0.00f,0.00f,0.00f, 0.192f, 0.210f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPACESTATION_MEDIUMROOM \
|
||||
{ 26, 1.5f, 0.750f, -1000, -400, -100, 3.01f, 0.50f, 0.55f, -800, 0.034f, 0.00f,0.00f,0.00f, 100, 0.035f, 0.00f,0.00f,0.00f, 0.209f, 0.310f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPACESTATION_SHORTPASSAGE \
|
||||
{ 26, 1.5f, 0.870f, -1000, -400, -100, 3.57f, 0.50f, 0.55f, 0, 0.012f, 0.00f,0.00f,0.00f, 100, 0.016f, 0.00f,0.00f,0.00f, 0.172f, 0.200f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPACESTATION_LONGPASSAGE \
|
||||
{ 26, 1.9f, 0.820f, -1000, -400, -100, 4.62f, 0.62f, 0.55f, 0, 0.012f, 0.00f,0.00f,0.00f, 200, 0.031f, 0.00f,0.00f,0.00f, 0.250f, 0.230f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPACESTATION_LARGEROOM \
|
||||
{ 26, 1.8f, 0.810f, -1000, -400, -100, 3.89f, 0.38f, 0.61f, -1000, 0.056f, 0.00f,0.00f,0.00f, -100, 0.035f, 0.00f,0.00f,0.00f, 0.233f, 0.280f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPACESTATION_HALL \
|
||||
{ 26, 1.9f, 0.870f, -1000, -400, -100, 7.11f, 0.38f, 0.61f, -1500, 0.100f, 0.00f,0.00f,0.00f, -400, 0.047f, 0.00f,0.00f,0.00f, 0.250f, 0.250f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPACESTATION_CUPBOARD \
|
||||
{ 26, 1.4f, 0.560f, -1000, -300, -100, 0.79f, 0.81f, 0.55f, 300, 0.007f, 0.00f,0.00f,0.00f, 500, 0.018f, 0.00f,0.00f,0.00f, 0.181f, 0.310f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPACESTATION_SMALLROOM \
|
||||
{ 26, 1.5f, 0.700f, -1000, -300, -100, 1.72f, 0.82f, 0.55f, -200, 0.007f, 0.00f,0.00f,0.00f, 300, 0.013f, 0.00f,0.00f,0.00f, 0.188f, 0.260f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
|
||||
|
||||
// WOODEN GALLEON PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_WOODEN_ALCOVE \
|
||||
{ 26, 7.5f, 1.000f, -1000, -1800, -1000, 1.22f, 0.62f, 0.91f, 100, 0.012f, 0.00f,0.00f,0.00f, -300, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_SHORTPASSAGE \
|
||||
{ 26, 7.5f, 1.000f, -1000, -1800, -1000, 1.75f, 0.50f, 0.87f, -100, 0.012f, 0.00f,0.00f,0.00f, -400, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_MEDIUMROOM \
|
||||
{ 26, 7.5f, 1.000f, -1000, -2000, -1100, 1.47f, 0.42f, 0.82f, -100, 0.049f, 0.00f,0.00f,0.00f, -100, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_LONGPASSAGE \
|
||||
{ 26, 7.5f, 1.000f, -1000, -2000, -1000, 1.99f, 0.40f, 0.79f, 000, 0.020f, 0.00f,0.00f,0.00f, -700, 0.036f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_LARGEROOM \
|
||||
{ 26, 7.5f, 1.000f, -1000, -2100, -1100, 2.65f, 0.33f, 0.82f, -100, 0.066f, 0.00f,0.00f,0.00f, -200, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_HALL \
|
||||
{ 26, 7.5f, 1.000f, -1000, -2200, -1100, 3.45f, 0.30f, 0.82f, -100, 0.088f, 0.00f,0.00f,0.00f, -200, 0.063f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_CUPBOARD \
|
||||
{ 26, 7.5f, 1.000f, -1000, -1700, -1000, 0.56f, 0.46f, 0.91f, 100, 0.012f, 0.00f,0.00f,0.00f, 100, 0.028f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_SMALLROOM \
|
||||
{ 26, 7.5f, 1.000f, -1000, -1900, -1000, 0.79f, 0.32f, 0.87f, 00, 0.032f, 0.00f,0.00f,0.00f, -100, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_COURTYARD \
|
||||
{ 26, 7.5f, 0.650f, -1000, -2200, -1000, 1.79f, 0.35f, 0.79f, -500, 0.123f, 0.00f,0.00f,0.00f, -2000, 0.032f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
|
||||
|
||||
// SPORTS PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_SPORT_EMPTYSTADIUM \
|
||||
{ 26, 7.2f, 1.000f, -1000, -700, -200, 6.26f, 0.51f, 1.10f, -2400, 0.183f, 0.00f,0.00f,0.00f, -800, 0.038f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPORT_SQUASHCOURT \
|
||||
{ 26, 7.5f, 0.750f, -1000, -1000, -200, 2.22f, 0.91f, 1.16f, -700, 0.007f, 0.00f,0.00f,0.00f, -200, 0.011f, 0.00f,0.00f,0.00f, 0.126f, 0.190f, 0.250f, 0.000f, -5.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPORT_SMALLSWIMMINGPOOL \
|
||||
{ 26, 36.2f, 0.700f, -1000, -200, -100, 2.76f, 1.25f, 1.14f, -400, 0.020f, 0.00f,0.00f,0.00f, -200, 0.030f, 0.00f,0.00f,0.00f, 0.179f, 0.150f, 0.895f, 0.190f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_SPORT_LARGESWIMMINGPOOL\
|
||||
{ 26, 36.2f, 0.820f, -1000, -200, 0, 5.49f, 1.31f, 1.14f, -700, 0.039f, 0.00f,0.00f,0.00f, -600, 0.049f, 0.00f,0.00f,0.00f, 0.222f, 0.550f, 1.159f, 0.210f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_SPORT_GYMNASIUM \
|
||||
{ 26, 7.5f, 0.810f, -1000, -700, -100, 3.14f, 1.06f, 1.35f, -800, 0.029f, 0.00f,0.00f,0.00f, -500, 0.045f, 0.00f,0.00f,0.00f, 0.146f, 0.140f, 0.250f, 0.000f, -5.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPORT_FULLSTADIUM \
|
||||
{ 26, 7.2f, 1.000f, -1000, -2300, -200, 5.25f, 0.17f, 0.80f, -2000, 0.188f, 0.00f,0.00f,0.00f, -1100, 0.038f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPORT_STADIUMTANNOY \
|
||||
{ 26, 3.0f, 0.780f, -1000, -500, -600, 2.53f, 0.88f, 0.68f, -1100, 0.230f, 0.00f,0.00f,0.00f, -600, 0.063f, 0.00f,0.00f,0.00f, 0.250f, 0.200f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
|
||||
|
||||
// PREFAB PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_PREFAB_WORKSHOP \
|
||||
{ 26, 1.9f, 1.000f, -1000, -1700, -800, 0.76f, 1.00f, 1.00f, 0, 0.012f, 0.00f,0.00f,0.00f, 100, 0.012f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_PREFAB_SCHOOLROOM \
|
||||
{ 26, 1.86f, 0.690f, -1000, -400, -600, 0.98f, 0.45f, 0.18f, 300, 0.017f, 0.00f,0.00f,0.00f, 300, 0.015f, 0.00f,0.00f,0.00f, 0.095f, 0.140f, 0.250f, 0.000f, -5.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_PREFAB_PRACTISEROOM \
|
||||
{ 26, 1.86f, 0.870f, -1000, -800, -600, 1.12f, 0.56f, 0.18f, 200, 0.010f, 0.00f,0.00f,0.00f, 300, 0.011f, 0.00f,0.00f,0.00f, 0.095f, 0.140f, 0.250f, 0.000f, -5.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_PREFAB_OUTHOUSE \
|
||||
{ 26, 80.3f, 0.820f, -1000, -1900, -1600, 1.38f, 0.38f, 0.35f, -100, 0.024f, 0.00f,0.00f,-0.00f, -400, 0.044f, 0.00f,0.00f,0.00f, 0.121f, 0.170f, 0.250f, 0.000f, -5.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_PREFAB_CARAVAN \
|
||||
{ 26, 8.3f, 1.000f, -1000, -2100, -1800, 0.43f, 1.50f, 1.00f, 0, 0.012f, 0.00f,0.00f,0.00f, 600, 0.012f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
// for US developers, a caravan is the same as a trailer =o)
|
||||
|
||||
|
||||
// DOME AND PIPE PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_DOME_TOMB \
|
||||
{ 26, 51.8f, 0.790f, -1000, -900, -1300, 4.18f, 0.21f, 0.10f, -825, 0.030f, 0.00f,0.00f,0.00f, 450, 0.022f, 0.00f,0.00f,0.00f, 0.177f, 0.190f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_PIPE_SMALL \
|
||||
{ 26, 50.3f, 1.000f, -1000, -900, -1300, 5.04f, 0.10f, 0.10f, -600, 0.032f, 0.00f,0.00f,0.00f, 800, 0.015f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_DOME_SAINTPAULS \
|
||||
{ 26, 50.3f, 0.870f, -1000, -900, -1300, 10.48f, 0.19f, 0.10f, -1500, 0.090f, 0.00f,0.00f,0.00f, 200, 0.042f, 0.00f,0.00f,0.00f, 0.250f, 0.120f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_PIPE_LONGTHIN \
|
||||
{ 26, 1.6f, 0.910f, -1000, -700, -1100, 9.21f, 0.18f, 0.10f, -300, 0.010f, 0.00f,0.00f,0.00f, -300, 0.022f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_PIPE_LARGE \
|
||||
{ 26, 50.3f, 1.000f, -1000, -900, -1300, 8.45f, 0.10f, 0.10f, -800, 0.046f, 0.00f,0.00f,0.00f, 400, 0.032f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_PIPE_RESONANT \
|
||||
{ 26, 1.3f, 0.910f, -1000, -700, -1100, 6.81f, 0.18f, 0.10f, -300, 0.010f, 0.00f,0.00f,0.00f, 00, 0.022f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x0 }
|
||||
|
||||
|
||||
// OUTDOORS PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_OUTDOORS_BACKYARD \
|
||||
{ 26, 80.3f, 0.450f, -1000, -1200, -600, 1.12f, 0.34f, 0.46f, -700, 0.069f, 0.00f,0.00f,-0.00f, -300, 0.023f, 0.00f,0.00f,0.00f, 0.218f, 0.340f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_OUTDOORS_ROLLINGPLAINS \
|
||||
{ 26, 80.3f, 0.000f, -1000, -3900, -400, 2.13f, 0.21f, 0.46f, -1500, 0.300f, 0.00f,0.00f,-0.00f, -700, 0.019f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_OUTDOORS_DEEPCANYON \
|
||||
{ 26, 80.3f, 0.740f, -1000, -1500, -400, 3.89f, 0.21f, 0.46f, -1000, 0.223f, 0.00f,0.00f,-0.00f, -900, 0.019f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_OUTDOORS_CREEK \
|
||||
{ 26, 80.3f, 0.350f, -1000, -1500, -600, 2.13f, 0.21f, 0.46f, -800, 0.115f, 0.00f,0.00f,-0.00f, -1400, 0.031f, 0.00f,0.00f,0.00f, 0.218f, 0.340f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_OUTDOORS_VALLEY \
|
||||
{ 26, 80.3f, 0.280f, -1000, -3100, -1600, 2.88f, 0.26f, 0.35f, -1700, 0.263f, 0.00f,0.00f,-0.00f, -800, 0.100f, 0.00f,0.00f,0.00f, 0.250f, 0.340f, 0.250f, 0.000f, -5.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
|
||||
|
||||
|
||||
// MOOD PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_MOOD_HEAVEN \
|
||||
{ 26, 19.6f, 0.940f, -1000, -200, -700, 5.04f, 1.12f, 0.56f, -1230, 0.020f, 0.00f,0.00f,0.00f, 200, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.080f, 2.742f, 0.050f, -2.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_MOOD_HELL \
|
||||
{ 26, 100.0f, 0.570f, -1000, -900, -700, 3.57f, 0.49f, 2.00f, -10000, 0.020f, 0.00f,0.00f,0.00f, 300, 0.030f, 0.00f,0.00f,0.00f, 0.110f, 0.040f, 2.109f, 0.520f, -5.0f, 5000.0f, 139.5f, 0.00f, 0x40 }
|
||||
#define REVERB_PRESET_MOOD_MEMORY \
|
||||
{ 26, 8.0f, 0.850f, -1000, -400, -900, 4.06f, 0.82f, 0.56f, -2800, 0.000f, 0.00f,0.00f,0.00f, 100, 0.000f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.474f, 0.450f, -10.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
|
||||
|
||||
// DRIVING SIMULATION PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_DRIVING_COMMENTATOR \
|
||||
{ 26, 3.0f, 0.000f, -1000, -500, -600, 2.42f, 0.88f, 0.68f, -1400, 0.093f, 0.00f,0.00f,0.00f, -1200, 0.017f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -10.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_DRIVING_PITGARAGE \
|
||||
{ 26, 1.9f, 0.590f, -1000, -300, -500, 1.72f, 0.93f, 0.87f, -500, 0.000f, 0.00f,0.00f,0.00f, 200, 0.016f, 0.00f,0.00f,0.00f, 0.250f, 0.110f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_DRIVING_INCAR_RACER \
|
||||
{ 26, 1.1f, 0.800f, -1000, 0, -200, 0.17f, 2.00f, 0.41f, 500, 0.007f, 0.00f,0.00f,0.00f, -300, 0.015f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10268.2f, 251.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_DRIVING_INCAR_SPORTS \
|
||||
{ 26, 1.1f, 0.800f, -1000, -400, 0, 0.17f, 0.75f, 0.41f, 0, 0.010f, 0.00f,0.00f,0.00f, -500, 0.000f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10268.2f, 251.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_DRIVING_INCAR_LUXURY \
|
||||
{ 26, 1.6f, 1.000f, -1000, -2000, -600, 0.13f, 0.41f, 0.46f, -200, 0.010f, 0.00f,0.00f,0.00f, 400, 0.010f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10268.2f, 251.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_DRIVING_FULLGRANDSTAND \
|
||||
{ 26, 8.3f, 1.000f, -1000, -1100, -400, 3.01f, 1.37f, 1.28f, -900, 0.090f, 0.00f,0.00f,0.00f, -1500, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10420.2f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_DRIVING_EMPTYGRANDSTAND \
|
||||
{ 26, 8.3f, 1.000f, -1000, 0, -200, 4.62f, 1.75f, 1.40f, -1363, 0.090f, 0.00f,0.00f,0.00f, -1200, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10420.2f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_DRIVING_TUNNEL \
|
||||
{ 26, 3.1f, 0.810f, -1000, -800, -100, 3.42f, 0.94f, 1.31f, -300, 0.051f, 0.00f,0.00f,0.00f, -300, 0.047f, 0.00f,0.00f,0.00f, 0.214f, 0.050f, 0.250f, 0.000f, -5.0f, 5000.0f, 155.3f, 0.00f, 0x20 }
|
||||
|
||||
|
||||
// CITY PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_CITY_STREETS \
|
||||
{ 26, 3.0f, 0.780f, -1000, -300, -100, 1.79f, 1.12f, 0.91f, -1100, 0.046f, 0.00f,0.00f,0.00f, -1400, 0.028f, 0.00f,0.00f,0.00f, 0.250f, 0.200f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CITY_SUBWAY \
|
||||
{ 26, 3.0f, 0.740f, -1000, -300, -100, 3.01f, 1.23f, 0.91f, -300, 0.046f, 0.00f,0.00f,0.00f, 200, 0.028f, 0.00f,0.00f,0.00f, 0.125f, 0.210f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CITY_MUSEUM \
|
||||
{ 26, 80.3f, 0.820f, -1000, -1500, -1500, 3.28f, 1.40f, 0.57f, -1200, 0.039f, 0.00f,0.00f,-0.00f, -100, 0.034f, 0.00f,0.00f,0.00f, 0.130f, 0.170f, 0.250f, 0.000f, -5.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_CITY_LIBRARY \
|
||||
{ 26, 80.3f, 0.820f, -1000, -1100, -2100, 2.76f, 0.89f, 0.41f, -900, 0.029f, 0.00f,0.00f,-0.00f, -100, 0.020f, 0.00f,0.00f,0.00f, 0.130f, 0.170f, 0.250f, 0.000f, -5.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_CITY_UNDERPASS \
|
||||
{ 26, 3.0f, 0.820f, -1000, -700, -100, 3.57f, 1.12f, 0.91f, -800, 0.059f, 0.00f,0.00f,0.00f, -100, 0.037f, 0.00f,0.00f,0.00f, 0.250f, 0.140f, 0.250f, 0.000f, -7.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CITY_ABANDONED \
|
||||
{ 26, 3.0f, 0.690f, -1000, -200, -100, 3.28f, 1.17f, 0.91f, -700, 0.044f, 0.00f,0.00f,0.00f, -1100, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.200f, 0.250f, 0.000f, -3.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
|
||||
|
||||
// MISC ROOMS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_DUSTYROOM \
|
||||
{ 26, 1.8f, 0.560f, -1000, -200, -300, 1.79f, 0.38f, 0.21f, -600, 0.002f, 0.00f,0.00f,0.00f, 200, 0.006f, 0.00f,0.00f,0.00f, 0.202f, 0.050f, 0.250f, 0.000f, -10.0f, 13046.0f, 163.3f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CHAPEL \
|
||||
{ 26, 19.6f, 0.840f, -1000, -500, 0, 4.62f, 0.64f, 1.23f, -700, 0.032f, 0.00f,0.00f,0.00f, -200, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.110f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_SMALLWATERROOM \
|
||||
{ 26, 36.2f, 0.700f, -1000, -698, 0, 1.51f, 1.25f, 1.14f, -100, 0.020f, 0.00f,0.00f,0.00f, 300, 0.030f, 0.00f,0.00f,0.00f, 0.179f, 0.150f, 0.895f, 0.190f, -7.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif // __cplusplus
|
||||
|
||||
#endif // EFX-UTIL_H_INCLUDED
|
|
@ -0,0 +1,732 @@
|
|||
#ifndef AL_AL_H
|
||||
#define AL_AL_H
|
||||
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(_XBOX)
|
||||
/* _OPENAL32LIB is deprecated */
|
||||
#if defined(AL_BUILD_LIBRARY) || defined (_OPENAL32LIB)
|
||||
#define AL_API __declspec(dllexport)
|
||||
#else
|
||||
#define AL_API __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
#define AL_API extern
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define AL_APIENTRY __cdecl
|
||||
#else
|
||||
#define AL_APIENTRY
|
||||
#endif
|
||||
|
||||
#if TARGET_OS_MAC
|
||||
#pragma export on
|
||||
#endif
|
||||
|
||||
/* The OPENAL, ALAPI, and ALAPIENTRY macros are deprecated, but are included for applications porting code
|
||||
from AL 1.0 */
|
||||
#define OPENAL
|
||||
#define ALAPI AL_API
|
||||
#define ALAPIENTRY AL_APIENTRY
|
||||
|
||||
#define AL_VERSION_1_0
|
||||
#define AL_VERSION_1_1
|
||||
|
||||
|
||||
/** 8-bit boolean */
|
||||
typedef char ALboolean;
|
||||
|
||||
/** character */
|
||||
typedef char ALchar;
|
||||
|
||||
/** signed 8-bit 2's complement integer */
|
||||
typedef char ALbyte;
|
||||
|
||||
/** unsigned 8-bit integer */
|
||||
typedef unsigned char ALubyte;
|
||||
|
||||
/** signed 16-bit 2's complement integer */
|
||||
typedef short ALshort;
|
||||
|
||||
/** unsigned 16-bit integer */
|
||||
typedef unsigned short ALushort;
|
||||
|
||||
/** signed 32-bit 2's complement integer */
|
||||
typedef int ALint;
|
||||
|
||||
/** unsigned 32-bit integer */
|
||||
typedef unsigned int ALuint;
|
||||
|
||||
/** non-negative 32-bit binary integer size */
|
||||
typedef int ALsizei;
|
||||
|
||||
/** enumerated 32-bit value */
|
||||
typedef int ALenum;
|
||||
|
||||
/** 32-bit IEEE754 floating-point */
|
||||
typedef float ALfloat;
|
||||
|
||||
/** 64-bit IEEE754 floating-point */
|
||||
typedef double ALdouble;
|
||||
|
||||
/** void type (for opaque pointers only) */
|
||||
typedef void ALvoid;
|
||||
|
||||
|
||||
/* Enumerant values begin at column 50. No tabs. */
|
||||
|
||||
/* bad value */
|
||||
#define AL_INVALID -1
|
||||
|
||||
#define AL_NONE 0
|
||||
|
||||
/* Boolean False. */
|
||||
#define AL_FALSE 0
|
||||
|
||||
/** Boolean True. */
|
||||
#define AL_TRUE 1
|
||||
|
||||
/** Indicate Source has relative coordinates. */
|
||||
#define AL_SOURCE_RELATIVE 0x202
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Directional source, inner cone angle, in degrees.
|
||||
* Range: [0-360]
|
||||
* Default: 360
|
||||
*/
|
||||
#define AL_CONE_INNER_ANGLE 0x1001
|
||||
|
||||
/**
|
||||
* Directional source, outer cone angle, in degrees.
|
||||
* Range: [0-360]
|
||||
* Default: 360
|
||||
*/
|
||||
#define AL_CONE_OUTER_ANGLE 0x1002
|
||||
|
||||
/**
|
||||
* Specify the pitch to be applied, either at source,
|
||||
* or on mixer results, at listener.
|
||||
* Range: [0.5-2.0]
|
||||
* Default: 1.0
|
||||
*/
|
||||
#define AL_PITCH 0x1003
|
||||
|
||||
/**
|
||||
* Specify the current location in three dimensional space.
|
||||
* OpenAL, like OpenGL, uses a right handed coordinate system,
|
||||
* where in a frontal default view X (thumb) points right,
|
||||
* Y points up (index finger), and Z points towards the
|
||||
* viewer/camera (middle finger).
|
||||
* To switch from a left handed coordinate system, flip the
|
||||
* sign on the Z coordinate.
|
||||
* Listener position is always in the world coordinate system.
|
||||
*/
|
||||
#define AL_POSITION 0x1004
|
||||
|
||||
/** Specify the current direction. */
|
||||
#define AL_DIRECTION 0x1005
|
||||
|
||||
/** Specify the current velocity in three dimensional space. */
|
||||
#define AL_VELOCITY 0x1006
|
||||
|
||||
/**
|
||||
* Indicate whether source is looping.
|
||||
* Type: ALboolean?
|
||||
* Range: [AL_TRUE, AL_FALSE]
|
||||
* Default: FALSE.
|
||||
*/
|
||||
#define AL_LOOPING 0x1007
|
||||
|
||||
/**
|
||||
* Indicate the buffer to provide sound samples.
|
||||
* Type: ALuint.
|
||||
* Range: any valid Buffer id.
|
||||
*/
|
||||
#define AL_BUFFER 0x1009
|
||||
|
||||
/**
|
||||
* Indicate the gain (volume amplification) applied.
|
||||
* Type: ALfloat.
|
||||
* Range: ]0.0- ]
|
||||
* A value of 1.0 means un-attenuated/unchanged.
|
||||
* Each division by 2 equals an attenuation of -6dB.
|
||||
* Each multiplicaton with 2 equals an amplification of +6dB.
|
||||
* A value of 0.0 is meaningless with respect to a logarithmic
|
||||
* scale; it is interpreted as zero volume - the channel
|
||||
* is effectively disabled.
|
||||
*/
|
||||
#define AL_GAIN 0x100A
|
||||
|
||||
/*
|
||||
* Indicate minimum source attenuation
|
||||
* Type: ALfloat
|
||||
* Range: [0.0 - 1.0]
|
||||
*
|
||||
* Logarthmic
|
||||
*/
|
||||
#define AL_MIN_GAIN 0x100D
|
||||
|
||||
/**
|
||||
* Indicate maximum source attenuation
|
||||
* Type: ALfloat
|
||||
* Range: [0.0 - 1.0]
|
||||
*
|
||||
* Logarthmic
|
||||
*/
|
||||
#define AL_MAX_GAIN 0x100E
|
||||
|
||||
/**
|
||||
* Indicate listener orientation.
|
||||
*
|
||||
* at/up
|
||||
*/
|
||||
#define AL_ORIENTATION 0x100F
|
||||
|
||||
/**
|
||||
* Specify the channel mask. (Creative)
|
||||
* Type: ALuint
|
||||
* Range: [0 - 255]
|
||||
*/
|
||||
#define AL_CHANNEL_MASK 0x3000
|
||||
|
||||
|
||||
/**
|
||||
* Source state information.
|
||||
*/
|
||||
#define AL_SOURCE_STATE 0x1010
|
||||
#define AL_INITIAL 0x1011
|
||||
#define AL_PLAYING 0x1012
|
||||
#define AL_PAUSED 0x1013
|
||||
#define AL_STOPPED 0x1014
|
||||
|
||||
/**
|
||||
* Buffer Queue params
|
||||
*/
|
||||
#define AL_BUFFERS_QUEUED 0x1015
|
||||
#define AL_BUFFERS_PROCESSED 0x1016
|
||||
|
||||
/**
|
||||
* Source buffer position information
|
||||
*/
|
||||
#define AL_SEC_OFFSET 0x1024
|
||||
#define AL_SAMPLE_OFFSET 0x1025
|
||||
#define AL_BYTE_OFFSET 0x1026
|
||||
|
||||
/*
|
||||
* Source type (Static, Streaming or undetermined)
|
||||
* Source is Static if a Buffer has been attached using AL_BUFFER
|
||||
* Source is Streaming if one or more Buffers have been attached using alSourceQueueBuffers
|
||||
* Source is undetermined when it has the NULL buffer attached
|
||||
*/
|
||||
#define AL_SOURCE_TYPE 0x1027
|
||||
#define AL_STATIC 0x1028
|
||||
#define AL_STREAMING 0x1029
|
||||
#define AL_UNDETERMINED 0x1030
|
||||
|
||||
/** Sound samples: format specifier. */
|
||||
#define AL_FORMAT_MONO8 0x1100
|
||||
#define AL_FORMAT_MONO16 0x1101
|
||||
#define AL_FORMAT_STEREO8 0x1102
|
||||
#define AL_FORMAT_STEREO16 0x1103
|
||||
|
||||
/**
|
||||
* source specific reference distance
|
||||
* Type: ALfloat
|
||||
* Range: 0.0 - +inf
|
||||
*
|
||||
* At 0.0, no distance attenuation occurs. Default is
|
||||
* 1.0.
|
||||
*/
|
||||
#define AL_REFERENCE_DISTANCE 0x1020
|
||||
|
||||
/**
|
||||
* source specific rolloff factor
|
||||
* Type: ALfloat
|
||||
* Range: 0.0 - +inf
|
||||
*
|
||||
*/
|
||||
#define AL_ROLLOFF_FACTOR 0x1021
|
||||
|
||||
/**
|
||||
* Directional source, outer cone gain.
|
||||
*
|
||||
* Default: 0.0
|
||||
* Range: [0.0 - 1.0]
|
||||
* Logarithmic
|
||||
*/
|
||||
#define AL_CONE_OUTER_GAIN 0x1022
|
||||
|
||||
/**
|
||||
* Indicate distance above which sources are not
|
||||
* attenuated using the inverse clamped distance model.
|
||||
*
|
||||
* Default: +inf
|
||||
* Type: ALfloat
|
||||
* Range: 0.0 - +inf
|
||||
*/
|
||||
#define AL_MAX_DISTANCE 0x1023
|
||||
|
||||
/**
|
||||
* Sound samples: frequency, in units of Hertz [Hz].
|
||||
* This is the number of samples per second. Half of the
|
||||
* sample frequency marks the maximum significant
|
||||
* frequency component.
|
||||
*/
|
||||
#define AL_FREQUENCY 0x2001
|
||||
#define AL_BITS 0x2002
|
||||
#define AL_CHANNELS 0x2003
|
||||
#define AL_SIZE 0x2004
|
||||
|
||||
/**
|
||||
* Buffer state.
|
||||
*
|
||||
* Not supported for public use (yet).
|
||||
*/
|
||||
#define AL_UNUSED 0x2010
|
||||
#define AL_PENDING 0x2011
|
||||
#define AL_PROCESSED 0x2012
|
||||
|
||||
|
||||
/** Errors: No Error. */
|
||||
#define AL_NO_ERROR AL_FALSE
|
||||
|
||||
/**
|
||||
* Invalid Name paramater passed to AL call.
|
||||
*/
|
||||
#define AL_INVALID_NAME 0xA001
|
||||
|
||||
/**
|
||||
* Invalid parameter passed to AL call.
|
||||
*/
|
||||
#define AL_ILLEGAL_ENUM 0xA002
|
||||
#define AL_INVALID_ENUM 0xA002
|
||||
|
||||
/**
|
||||
* Invalid enum parameter value.
|
||||
*/
|
||||
#define AL_INVALID_VALUE 0xA003
|
||||
|
||||
/**
|
||||
* Illegal call.
|
||||
*/
|
||||
#define AL_ILLEGAL_COMMAND 0xA004
|
||||
#define AL_INVALID_OPERATION 0xA004
|
||||
|
||||
|
||||
/**
|
||||
* No mojo.
|
||||
*/
|
||||
#define AL_OUT_OF_MEMORY 0xA005
|
||||
|
||||
|
||||
/** Context strings: Vendor Name. */
|
||||
#define AL_VENDOR 0xB001
|
||||
#define AL_VERSION 0xB002
|
||||
#define AL_RENDERER 0xB003
|
||||
#define AL_EXTENSIONS 0xB004
|
||||
|
||||
/** Global tweakage. */
|
||||
|
||||
/**
|
||||
* Doppler scale. Default 1.0
|
||||
*/
|
||||
#define AL_DOPPLER_FACTOR 0xC000
|
||||
|
||||
/**
|
||||
* Tweaks speed of propagation.
|
||||
*/
|
||||
#define AL_DOPPLER_VELOCITY 0xC001
|
||||
|
||||
/**
|
||||
* Speed of Sound in units per second
|
||||
*/
|
||||
#define AL_SPEED_OF_SOUND 0xC003
|
||||
|
||||
/**
|
||||
* Distance models
|
||||
*
|
||||
* used in conjunction with DistanceModel
|
||||
*
|
||||
* implicit: NONE, which disances distance attenuation.
|
||||
*/
|
||||
#define AL_DISTANCE_MODEL 0xD000
|
||||
#define AL_INVERSE_DISTANCE 0xD001
|
||||
#define AL_INVERSE_DISTANCE_CLAMPED 0xD002
|
||||
#define AL_LINEAR_DISTANCE 0xD003
|
||||
#define AL_LINEAR_DISTANCE_CLAMPED 0xD004
|
||||
#define AL_EXPONENT_DISTANCE 0xD005
|
||||
#define AL_EXPONENT_DISTANCE_CLAMPED 0xD006
|
||||
|
||||
|
||||
#if !defined(AL_NO_PROTOTYPES)
|
||||
|
||||
/*
|
||||
* Renderer State management
|
||||
*/
|
||||
AL_API void AL_APIENTRY alEnable( ALenum capability );
|
||||
|
||||
AL_API void AL_APIENTRY alDisable( ALenum capability );
|
||||
|
||||
AL_API ALboolean AL_APIENTRY alIsEnabled( ALenum capability );
|
||||
|
||||
|
||||
/*
|
||||
* State retrieval
|
||||
*/
|
||||
AL_API const ALchar* AL_APIENTRY alGetString( ALenum param );
|
||||
|
||||
AL_API void AL_APIENTRY alGetBooleanv( ALenum param, ALboolean* data );
|
||||
|
||||
AL_API void AL_APIENTRY alGetIntegerv( ALenum param, ALint* data );
|
||||
|
||||
AL_API void AL_APIENTRY alGetFloatv( ALenum param, ALfloat* data );
|
||||
|
||||
AL_API void AL_APIENTRY alGetDoublev( ALenum param, ALdouble* data );
|
||||
|
||||
AL_API ALboolean AL_APIENTRY alGetBoolean( ALenum param );
|
||||
|
||||
AL_API ALint AL_APIENTRY alGetInteger( ALenum param );
|
||||
|
||||
AL_API ALfloat AL_APIENTRY alGetFloat( ALenum param );
|
||||
|
||||
AL_API ALdouble AL_APIENTRY alGetDouble( ALenum param );
|
||||
|
||||
|
||||
/*
|
||||
* Error support.
|
||||
* Obtain the most recent error generated in the AL state machine.
|
||||
*/
|
||||
AL_API ALenum AL_APIENTRY alGetError( void );
|
||||
|
||||
|
||||
/*
|
||||
* Extension support.
|
||||
* Query for the presence of an extension, and obtain any appropriate
|
||||
* function pointers and enum values.
|
||||
*/
|
||||
AL_API ALboolean AL_APIENTRY alIsExtensionPresent( const ALchar* extname );
|
||||
|
||||
AL_API void* AL_APIENTRY alGetProcAddress( const ALchar* fname );
|
||||
|
||||
AL_API ALenum AL_APIENTRY alGetEnumValue( const ALchar* ename );
|
||||
|
||||
|
||||
/*
|
||||
* LISTENER
|
||||
* Listener represents the location and orientation of the
|
||||
* 'user' in 3D-space.
|
||||
*
|
||||
* Properties include: -
|
||||
*
|
||||
* Gain AL_GAIN ALfloat
|
||||
* Position AL_POSITION ALfloat[3]
|
||||
* Velocity AL_VELOCITY ALfloat[3]
|
||||
* Orientation AL_ORIENTATION ALfloat[6] (Forward then Up vectors)
|
||||
*/
|
||||
|
||||
/*
|
||||
* Set Listener parameters
|
||||
*/
|
||||
AL_API void AL_APIENTRY alListenerf( ALenum param, ALfloat value );
|
||||
|
||||
AL_API void AL_APIENTRY alListener3f( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alListenerfv( ALenum param, const ALfloat* values );
|
||||
|
||||
AL_API void AL_APIENTRY alListeneri( ALenum param, ALint value );
|
||||
|
||||
AL_API void AL_APIENTRY alListener3i( ALenum param, ALint value1, ALint value2, ALint value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alListeneriv( ALenum param, const ALint* values );
|
||||
|
||||
/*
|
||||
* Get Listener parameters
|
||||
*/
|
||||
AL_API void AL_APIENTRY alGetListenerf( ALenum param, ALfloat* value );
|
||||
|
||||
AL_API void AL_APIENTRY alGetListener3f( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alGetListenerfv( ALenum param, ALfloat* values );
|
||||
|
||||
AL_API void AL_APIENTRY alGetListeneri( ALenum param, ALint* value );
|
||||
|
||||
AL_API void AL_APIENTRY alGetListener3i( ALenum param, ALint *value1, ALint *value2, ALint *value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alGetListeneriv( ALenum param, ALint* values );
|
||||
|
||||
|
||||
/**
|
||||
* SOURCE
|
||||
* Sources represent individual sound objects in 3D-space.
|
||||
* Sources take the PCM data provided in the specified Buffer,
|
||||
* apply Source-specific modifications, and then
|
||||
* submit them to be mixed according to spatial arrangement etc.
|
||||
*
|
||||
* Properties include: -
|
||||
*
|
||||
* Gain AL_GAIN ALfloat
|
||||
* Min Gain AL_MIN_GAIN ALfloat
|
||||
* Max Gain AL_MAX_GAIN ALfloat
|
||||
* Position AL_POSITION ALfloat[3]
|
||||
* Velocity AL_VELOCITY ALfloat[3]
|
||||
* Direction AL_DIRECTION ALfloat[3]
|
||||
* Head Relative Mode AL_SOURCE_RELATIVE ALint (AL_TRUE or AL_FALSE)
|
||||
* Reference Distance AL_REFERENCE_DISTANCE ALfloat
|
||||
* Max Distance AL_MAX_DISTANCE ALfloat
|
||||
* RollOff Factor AL_ROLLOFF_FACTOR ALfloat
|
||||
* Inner Angle AL_CONE_INNER_ANGLE ALint or ALfloat
|
||||
* Outer Angle AL_CONE_OUTER_ANGLE ALint or ALfloat
|
||||
* Cone Outer Gain AL_CONE_OUTER_GAIN ALint or ALfloat
|
||||
* Pitch AL_PITCH ALfloat
|
||||
* Looping AL_LOOPING ALint (AL_TRUE or AL_FALSE)
|
||||
* MS Offset AL_MSEC_OFFSET ALint or ALfloat
|
||||
* Byte Offset AL_BYTE_OFFSET ALint or ALfloat
|
||||
* Sample Offset AL_SAMPLE_OFFSET ALint or ALfloat
|
||||
* Attached Buffer AL_BUFFER ALint
|
||||
* State (Query only) AL_SOURCE_STATE ALint
|
||||
* Buffers Queued (Query only) AL_BUFFERS_QUEUED ALint
|
||||
* Buffers Processed (Query only) AL_BUFFERS_PROCESSED ALint
|
||||
*/
|
||||
|
||||
/* Create Source objects */
|
||||
AL_API void AL_APIENTRY alGenSources( ALsizei n, ALuint* sources );
|
||||
|
||||
/* Delete Source objects */
|
||||
AL_API void AL_APIENTRY alDeleteSources( ALsizei n, const ALuint* sources );
|
||||
|
||||
/* Verify a handle is a valid Source */
|
||||
AL_API ALboolean AL_APIENTRY alIsSource( ALuint sid );
|
||||
|
||||
/*
|
||||
* Set Source parameters
|
||||
*/
|
||||
AL_API void AL_APIENTRY alSourcef( ALuint sid, ALenum param, ALfloat value );
|
||||
|
||||
AL_API void AL_APIENTRY alSource3f( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alSourcefv( ALuint sid, ALenum param, const ALfloat* values );
|
||||
|
||||
AL_API void AL_APIENTRY alSourcei( ALuint sid, ALenum param, ALint value );
|
||||
|
||||
AL_API void AL_APIENTRY alSource3i( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alSourceiv( ALuint sid, ALenum param, const ALint* values );
|
||||
|
||||
/*
|
||||
* Get Source parameters
|
||||
*/
|
||||
AL_API void AL_APIENTRY alGetSourcef( ALuint sid, ALenum param, ALfloat* value );
|
||||
|
||||
AL_API void AL_APIENTRY alGetSource3f( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
|
||||
|
||||
AL_API void AL_APIENTRY alGetSourcefv( ALuint sid, ALenum param, ALfloat* values );
|
||||
|
||||
AL_API void AL_APIENTRY alGetSourcei( ALuint sid, ALenum param, ALint* value );
|
||||
|
||||
AL_API void AL_APIENTRY alGetSource3i( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
|
||||
|
||||
AL_API void AL_APIENTRY alGetSourceiv( ALuint sid, ALenum param, ALint* values );
|
||||
|
||||
|
||||
/*
|
||||
* Source vector based playback calls
|
||||
*/
|
||||
|
||||
/* Play, replay, or resume (if paused) a list of Sources */
|
||||
AL_API void AL_APIENTRY alSourcePlayv( ALsizei ns, const ALuint *sids );
|
||||
|
||||
/* Stop a list of Sources */
|
||||
AL_API void AL_APIENTRY alSourceStopv( ALsizei ns, const ALuint *sids );
|
||||
|
||||
/* Rewind a list of Sources */
|
||||
AL_API void AL_APIENTRY alSourceRewindv( ALsizei ns, const ALuint *sids );
|
||||
|
||||
/* Pause a list of Sources */
|
||||
AL_API void AL_APIENTRY alSourcePausev( ALsizei ns, const ALuint *sids );
|
||||
|
||||
/*
|
||||
* Source based playback calls
|
||||
*/
|
||||
|
||||
/* Play, replay, or resume a Source */
|
||||
AL_API void AL_APIENTRY alSourcePlay( ALuint sid );
|
||||
|
||||
/* Stop a Source */
|
||||
AL_API void AL_APIENTRY alSourceStop( ALuint sid );
|
||||
|
||||
/* Rewind a Source (set playback postiton to beginning) */
|
||||
AL_API void AL_APIENTRY alSourceRewind( ALuint sid );
|
||||
|
||||
/* Pause a Source */
|
||||
AL_API void AL_APIENTRY alSourcePause( ALuint sid );
|
||||
|
||||
/*
|
||||
* Source Queuing
|
||||
*/
|
||||
AL_API void AL_APIENTRY alSourceQueueBuffers( ALuint sid, ALsizei numEntries, const ALuint *bids );
|
||||
|
||||
AL_API void AL_APIENTRY alSourceUnqueueBuffers( ALuint sid, ALsizei numEntries, ALuint *bids );
|
||||
|
||||
|
||||
/**
|
||||
* BUFFER
|
||||
* Buffer objects are storage space for sample data.
|
||||
* Buffers are referred to by Sources. One Buffer can be used
|
||||
* by multiple Sources.
|
||||
*
|
||||
* Properties include: -
|
||||
*
|
||||
* Frequency (Query only) AL_FREQUENCY ALint
|
||||
* Size (Query only) AL_SIZE ALint
|
||||
* Bits (Query only) AL_BITS ALint
|
||||
* Channels (Query only) AL_CHANNELS ALint
|
||||
*/
|
||||
|
||||
/* Create Buffer objects */
|
||||
AL_API void AL_APIENTRY alGenBuffers( ALsizei n, ALuint* buffers );
|
||||
|
||||
/* Delete Buffer objects */
|
||||
AL_API void AL_APIENTRY alDeleteBuffers( ALsizei n, const ALuint* buffers );
|
||||
|
||||
/* Verify a handle is a valid Buffer */
|
||||
AL_API ALboolean AL_APIENTRY alIsBuffer( ALuint bid );
|
||||
|
||||
/* Specify the data to be copied into a buffer */
|
||||
AL_API void AL_APIENTRY alBufferData( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq );
|
||||
|
||||
/*
|
||||
* Set Buffer parameters
|
||||
*/
|
||||
AL_API void AL_APIENTRY alBufferf( ALuint bid, ALenum param, ALfloat value );
|
||||
|
||||
AL_API void AL_APIENTRY alBuffer3f( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alBufferfv( ALuint bid, ALenum param, const ALfloat* values );
|
||||
|
||||
AL_API void AL_APIENTRY alBufferi( ALuint bid, ALenum param, ALint value );
|
||||
|
||||
AL_API void AL_APIENTRY alBuffer3i( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alBufferiv( ALuint bid, ALenum param, const ALint* values );
|
||||
|
||||
/*
|
||||
* Get Buffer parameters
|
||||
*/
|
||||
AL_API void AL_APIENTRY alGetBufferf( ALuint bid, ALenum param, ALfloat* value );
|
||||
|
||||
AL_API void AL_APIENTRY alGetBuffer3f( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
|
||||
|
||||
AL_API void AL_APIENTRY alGetBufferfv( ALuint bid, ALenum param, ALfloat* values );
|
||||
|
||||
AL_API void AL_APIENTRY alGetBufferi( ALuint bid, ALenum param, ALint* value );
|
||||
|
||||
AL_API void AL_APIENTRY alGetBuffer3i( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
|
||||
|
||||
AL_API void AL_APIENTRY alGetBufferiv( ALuint bid, ALenum param, ALint* values );
|
||||
|
||||
|
||||
/*
|
||||
* Global Parameters
|
||||
*/
|
||||
AL_API void AL_APIENTRY alDopplerFactor( ALfloat value );
|
||||
|
||||
AL_API void AL_APIENTRY alDopplerVelocity( ALfloat value );
|
||||
|
||||
AL_API void AL_APIENTRY alSpeedOfSound( ALfloat value );
|
||||
|
||||
AL_API void AL_APIENTRY alDistanceModel( ALenum distanceModel );
|
||||
|
||||
#else /* AL_NO_PROTOTYPES */
|
||||
|
||||
typedef void (AL_APIENTRY *LPALENABLE)( ALenum capability );
|
||||
typedef void (AL_APIENTRY *LPALDISABLE)( ALenum capability );
|
||||
typedef ALboolean (AL_APIENTRY *LPALISENABLED)( ALenum capability );
|
||||
typedef const ALchar* (AL_APIENTRY *LPALGETSTRING)( ALenum param );
|
||||
typedef void (AL_APIENTRY *LPALGETBOOLEANV)( ALenum param, ALboolean* data );
|
||||
typedef void (AL_APIENTRY *LPALGETINTEGERV)( ALenum param, ALint* data );
|
||||
typedef void (AL_APIENTRY *LPALGETFLOATV)( ALenum param, ALfloat* data );
|
||||
typedef void (AL_APIENTRY *LPALGETDOUBLEV)( ALenum param, ALdouble* data );
|
||||
typedef ALboolean (AL_APIENTRY *LPALGETBOOLEAN)( ALenum param );
|
||||
typedef ALint (AL_APIENTRY *LPALGETINTEGER)( ALenum param );
|
||||
typedef ALfloat (AL_APIENTRY *LPALGETFLOAT)( ALenum param );
|
||||
typedef ALdouble (AL_APIENTRY *LPALGETDOUBLE)( ALenum param );
|
||||
typedef ALenum (AL_APIENTRY *LPALGETERROR)( void );
|
||||
typedef ALboolean (AL_APIENTRY *LPALISEXTENSIONPRESENT)(const ALchar* extname );
|
||||
typedef void* (AL_APIENTRY *LPALGETPROCADDRESS)( const ALchar* fname );
|
||||
typedef ALenum (AL_APIENTRY *LPALGETENUMVALUE)( const ALchar* ename );
|
||||
typedef void (AL_APIENTRY *LPALLISTENERF)( ALenum param, ALfloat value );
|
||||
typedef void (AL_APIENTRY *LPALLISTENER3F)( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
|
||||
typedef void (AL_APIENTRY *LPALLISTENERFV)( ALenum param, const ALfloat* values );
|
||||
typedef void (AL_APIENTRY *LPALLISTENERI)( ALenum param, ALint value );
|
||||
typedef void (AL_APIENTRY *LPALLISTENER3I)( ALenum param, ALint value1, ALint value2, ALint value3 );
|
||||
typedef void (AL_APIENTRY *LPALLISTENERIV)( ALenum param, const ALint* values );
|
||||
typedef void (AL_APIENTRY *LPALGETLISTENERF)( ALenum param, ALfloat* value );
|
||||
typedef void (AL_APIENTRY *LPALGETLISTENER3F)( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 );
|
||||
typedef void (AL_APIENTRY *LPALGETLISTENERFV)( ALenum param, ALfloat* values );
|
||||
typedef void (AL_APIENTRY *LPALGETLISTENERI)( ALenum param, ALint* value );
|
||||
typedef void (AL_APIENTRY *LPALGETLISTENER3I)( ALenum param, ALint *value1, ALint *value2, ALint *value3 );
|
||||
typedef void (AL_APIENTRY *LPALGETLISTENERIV)( ALenum param, ALint* values );
|
||||
typedef void (AL_APIENTRY *LPALGENSOURCES)( ALsizei n, ALuint* sources );
|
||||
typedef void (AL_APIENTRY *LPALDELETESOURCES)( ALsizei n, const ALuint* sources );
|
||||
typedef ALboolean (AL_APIENTRY *LPALISSOURCE)( ALuint sid );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEF)( ALuint sid, ALenum param, ALfloat value);
|
||||
typedef void (AL_APIENTRY *LPALSOURCE3F)( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEFV)( ALuint sid, ALenum param, const ALfloat* values );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEI)( ALuint sid, ALenum param, ALint value);
|
||||
typedef void (AL_APIENTRY *LPALSOURCE3I)( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEIV)( ALuint sid, ALenum param, const ALint* values );
|
||||
typedef void (AL_APIENTRY *LPALGETSOURCEF)( ALuint sid, ALenum param, ALfloat* value );
|
||||
typedef void (AL_APIENTRY *LPALGETSOURCE3F)( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
|
||||
typedef void (AL_APIENTRY *LPALGETSOURCEFV)( ALuint sid, ALenum param, ALfloat* values );
|
||||
typedef void (AL_APIENTRY *LPALGETSOURCEI)( ALuint sid, ALenum param, ALint* value );
|
||||
typedef void (AL_APIENTRY *LPALGETSOURCE3I)( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
|
||||
typedef void (AL_APIENTRY *LPALGETSOURCEIV)( ALuint sid, ALenum param, ALint* values );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEPLAYV)( ALsizei ns, const ALuint *sids );
|
||||
typedef void (AL_APIENTRY *LPALSOURCESTOPV)( ALsizei ns, const ALuint *sids );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEREWINDV)( ALsizei ns, const ALuint *sids );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEPAUSEV)( ALsizei ns, const ALuint *sids );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEPLAY)( ALuint sid );
|
||||
typedef void (AL_APIENTRY *LPALSOURCESTOP)( ALuint sid );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEREWIND)( ALuint sid );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEPAUSE)( ALuint sid );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, const ALuint *bids );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEUNQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, ALuint *bids );
|
||||
typedef void (AL_APIENTRY *LPALGENBUFFERS)( ALsizei n, ALuint* buffers );
|
||||
typedef void (AL_APIENTRY *LPALDELETEBUFFERS)( ALsizei n, const ALuint* buffers );
|
||||
typedef ALboolean (AL_APIENTRY *LPALISBUFFER)( ALuint bid );
|
||||
typedef void (AL_APIENTRY *LPALBUFFERDATA)( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq );
|
||||
typedef void (AL_APIENTRY *LPALBUFFERF)( ALuint bid, ALenum param, ALfloat value);
|
||||
typedef void (AL_APIENTRY *LPALBUFFER3F)( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
|
||||
typedef void (AL_APIENTRY *LPALBUFFERFV)( ALuint bid, ALenum param, const ALfloat* values );
|
||||
typedef void (AL_APIENTRY *LPALBUFFERI)( ALuint bid, ALenum param, ALint value);
|
||||
typedef void (AL_APIENTRY *LPALBUFFER3I)( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 );
|
||||
typedef void (AL_APIENTRY *LPALBUFFERIV)( ALuint bid, ALenum param, const ALint* values );
|
||||
typedef void (AL_APIENTRY *LPALGETBUFFERF)( ALuint bid, ALenum param, ALfloat* value );
|
||||
typedef void (AL_APIENTRY *LPALGETBUFFER3F)( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
|
||||
typedef void (AL_APIENTRY *LPALGETBUFFERFV)( ALuint bid, ALenum param, ALfloat* values );
|
||||
typedef void (AL_APIENTRY *LPALGETBUFFERI)( ALuint bid, ALenum param, ALint* value );
|
||||
typedef void (AL_APIENTRY *LPALGETBUFFER3I)( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
|
||||
typedef void (AL_APIENTRY *LPALGETBUFFERIV)( ALuint bid, ALenum param, ALint* values );
|
||||
typedef void (AL_APIENTRY *LPALDOPPLERFACTOR)( ALfloat value );
|
||||
typedef void (AL_APIENTRY *LPALDOPPLERVELOCITY)( ALfloat value );
|
||||
typedef void (AL_APIENTRY *LPALSPEEDOFSOUND)( ALfloat value );
|
||||
typedef void (AL_APIENTRY *LPALDISTANCEMODEL)( ALenum distanceModel );
|
||||
|
||||
#endif /* AL_NO_PROTOTYPES */
|
||||
|
||||
#if TARGET_OS_MAC
|
||||
#pragma export off
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* AL_AL_H */
|
|
@ -0,0 +1,281 @@
|
|||
#ifndef AL_ALC_H
|
||||
#define AL_ALC_H
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(_XBOX)
|
||||
/* _OPENAL32LIB is deprecated */
|
||||
#if defined(AL_BUILD_LIBRARY) || defined (_OPENAL32LIB)
|
||||
#define ALC_API __declspec(dllexport)
|
||||
#else
|
||||
#define ALC_API __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
#if defined(AL_BUILD_LIBRARY) && defined(HAVE_GCC_VISIBILITY)
|
||||
#define ALC_API __attribute__((visibility("default")))
|
||||
#else
|
||||
#define ALC_API extern
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define ALC_APIENTRY __cdecl
|
||||
#else
|
||||
#define ALC_APIENTRY
|
||||
#endif
|
||||
|
||||
#if defined(TARGET_OS_MAC) && TARGET_OS_MAC
|
||||
#pragma export on
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The ALCAPI, ALCAPIENTRY, and ALC_INVALID macros are deprecated, but are
|
||||
* included for applications porting code from AL 1.0
|
||||
*/
|
||||
#define ALCAPI ALC_API
|
||||
#define ALCAPIENTRY ALC_APIENTRY
|
||||
#define ALC_INVALID 0
|
||||
|
||||
|
||||
#define ALC_VERSION_0_1 1
|
||||
|
||||
typedef struct ALCdevice_struct ALCdevice;
|
||||
typedef struct ALCcontext_struct ALCcontext;
|
||||
|
||||
|
||||
/** 8-bit boolean */
|
||||
typedef char ALCboolean;
|
||||
|
||||
/** character */
|
||||
typedef char ALCchar;
|
||||
|
||||
/** signed 8-bit 2's complement integer */
|
||||
typedef char ALCbyte;
|
||||
|
||||
/** unsigned 8-bit integer */
|
||||
typedef unsigned char ALCubyte;
|
||||
|
||||
/** signed 16-bit 2's complement integer */
|
||||
typedef short ALCshort;
|
||||
|
||||
/** unsigned 16-bit integer */
|
||||
typedef unsigned short ALCushort;
|
||||
|
||||
/** signed 32-bit 2's complement integer */
|
||||
typedef int ALCint;
|
||||
|
||||
/** unsigned 32-bit integer */
|
||||
typedef unsigned int ALCuint;
|
||||
|
||||
/** non-negative 32-bit binary integer size */
|
||||
typedef int ALCsizei;
|
||||
|
||||
/** enumerated 32-bit value */
|
||||
typedef int ALCenum;
|
||||
|
||||
/** 32-bit IEEE754 floating-point */
|
||||
typedef float ALCfloat;
|
||||
|
||||
/** 64-bit IEEE754 floating-point */
|
||||
typedef double ALCdouble;
|
||||
|
||||
/** void type (for opaque pointers only) */
|
||||
typedef void ALCvoid;
|
||||
|
||||
|
||||
/* Enumerant values begin at column 50. No tabs. */
|
||||
|
||||
/* Boolean False. */
|
||||
#define ALC_FALSE 0
|
||||
|
||||
/* Boolean True. */
|
||||
#define ALC_TRUE 1
|
||||
|
||||
/**
|
||||
* followed by <int> Hz
|
||||
*/
|
||||
#define ALC_FREQUENCY 0x1007
|
||||
|
||||
/**
|
||||
* followed by <int> Hz
|
||||
*/
|
||||
#define ALC_REFRESH 0x1008
|
||||
|
||||
/**
|
||||
* followed by AL_TRUE, AL_FALSE
|
||||
*/
|
||||
#define ALC_SYNC 0x1009
|
||||
|
||||
/**
|
||||
* followed by <int> Num of requested Mono (3D) Sources
|
||||
*/
|
||||
#define ALC_MONO_SOURCES 0x1010
|
||||
|
||||
/**
|
||||
* followed by <int> Num of requested Stereo Sources
|
||||
*/
|
||||
#define ALC_STEREO_SOURCES 0x1011
|
||||
|
||||
/**
|
||||
* errors
|
||||
*/
|
||||
|
||||
/**
|
||||
* No error
|
||||
*/
|
||||
#define ALC_NO_ERROR ALC_FALSE
|
||||
|
||||
/**
|
||||
* No device
|
||||
*/
|
||||
#define ALC_INVALID_DEVICE 0xA001
|
||||
|
||||
/**
|
||||
* invalid context ID
|
||||
*/
|
||||
#define ALC_INVALID_CONTEXT 0xA002
|
||||
|
||||
/**
|
||||
* bad enum
|
||||
*/
|
||||
#define ALC_INVALID_ENUM 0xA003
|
||||
|
||||
/**
|
||||
* bad value
|
||||
*/
|
||||
#define ALC_INVALID_VALUE 0xA004
|
||||
|
||||
/**
|
||||
* Out of memory.
|
||||
*/
|
||||
#define ALC_OUT_OF_MEMORY 0xA005
|
||||
|
||||
|
||||
/**
|
||||
* The Specifier string for default device
|
||||
*/
|
||||
#define ALC_DEFAULT_DEVICE_SPECIFIER 0x1004
|
||||
#define ALC_DEVICE_SPECIFIER 0x1005
|
||||
#define ALC_EXTENSIONS 0x1006
|
||||
|
||||
#define ALC_MAJOR_VERSION 0x1000
|
||||
#define ALC_MINOR_VERSION 0x1001
|
||||
|
||||
#define ALC_ATTRIBUTES_SIZE 0x1002
|
||||
#define ALC_ALL_ATTRIBUTES 0x1003
|
||||
|
||||
/**
|
||||
* ALC_ENUMERATE_ALL_EXT enums
|
||||
*/
|
||||
#define ALC_DEFAULT_ALL_DEVICES_SPECIFIER 0x1012
|
||||
#define ALC_ALL_DEVICES_SPECIFIER 0x1013
|
||||
|
||||
/**
|
||||
* Capture extension
|
||||
*/
|
||||
#define ALC_CAPTURE_DEVICE_SPECIFIER 0x310
|
||||
#define ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER 0x311
|
||||
#define ALC_CAPTURE_SAMPLES 0x312
|
||||
|
||||
|
||||
/*
|
||||
* Context Management
|
||||
*/
|
||||
ALC_API ALCcontext * ALC_APIENTRY alcCreateContext( ALCdevice *device, const ALCint* attrlist );
|
||||
|
||||
ALC_API ALCboolean ALC_APIENTRY alcMakeContextCurrent( ALCcontext *context );
|
||||
|
||||
ALC_API void ALC_APIENTRY alcProcessContext( ALCcontext *context );
|
||||
|
||||
ALC_API void ALC_APIENTRY alcSuspendContext( ALCcontext *context );
|
||||
|
||||
ALC_API void ALC_APIENTRY alcDestroyContext( ALCcontext *context );
|
||||
|
||||
ALC_API ALCcontext * ALC_APIENTRY alcGetCurrentContext( void );
|
||||
|
||||
ALC_API ALCdevice* ALC_APIENTRY alcGetContextsDevice( ALCcontext *context );
|
||||
|
||||
|
||||
/*
|
||||
* Device Management
|
||||
*/
|
||||
ALC_API ALCdevice * ALC_APIENTRY alcOpenDevice( const ALCchar *devicename );
|
||||
|
||||
ALC_API ALCboolean ALC_APIENTRY alcCloseDevice( ALCdevice *device );
|
||||
|
||||
|
||||
/*
|
||||
* Error support.
|
||||
* Obtain the most recent Context error
|
||||
*/
|
||||
ALC_API ALCenum ALC_APIENTRY alcGetError( ALCdevice *device );
|
||||
|
||||
|
||||
/*
|
||||
* Extension support.
|
||||
* Query for the presence of an extension, and obtain any appropriate
|
||||
* function pointers and enum values.
|
||||
*/
|
||||
ALC_API ALCboolean ALC_APIENTRY alcIsExtensionPresent( ALCdevice *device, const ALCchar *extname );
|
||||
|
||||
ALC_API void * ALC_APIENTRY alcGetProcAddress( ALCdevice *device, const ALCchar *funcname );
|
||||
|
||||
ALC_API ALCenum ALC_APIENTRY alcGetEnumValue( ALCdevice *device, const ALCchar *enumname );
|
||||
|
||||
|
||||
/*
|
||||
* Query functions
|
||||
*/
|
||||
ALC_API const ALCchar * ALC_APIENTRY alcGetString( ALCdevice *device, ALCenum param );
|
||||
|
||||
ALC_API void ALC_APIENTRY alcGetIntegerv( ALCdevice *device, ALCenum param, ALCsizei size, ALCint *data );
|
||||
|
||||
|
||||
/*
|
||||
* Capture functions
|
||||
*/
|
||||
ALC_API ALCdevice* ALC_APIENTRY alcCaptureOpenDevice( const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize );
|
||||
|
||||
ALC_API ALCboolean ALC_APIENTRY alcCaptureCloseDevice( ALCdevice *device );
|
||||
|
||||
ALC_API void ALC_APIENTRY alcCaptureStart( ALCdevice *device );
|
||||
|
||||
ALC_API void ALC_APIENTRY alcCaptureStop( ALCdevice *device );
|
||||
|
||||
ALC_API void ALC_APIENTRY alcCaptureSamples( ALCdevice *device, ALCvoid *buffer, ALCsizei samples );
|
||||
|
||||
/*
|
||||
* Pointer-to-function types, useful for dynamically getting ALC entry points.
|
||||
*/
|
||||
typedef ALCcontext * (ALC_APIENTRY *LPALCCREATECONTEXT) (ALCdevice *device, const ALCint *attrlist);
|
||||
typedef ALCboolean (ALC_APIENTRY *LPALCMAKECONTEXTCURRENT)( ALCcontext *context );
|
||||
typedef void (ALC_APIENTRY *LPALCPROCESSCONTEXT)( ALCcontext *context );
|
||||
typedef void (ALC_APIENTRY *LPALCSUSPENDCONTEXT)( ALCcontext *context );
|
||||
typedef void (ALC_APIENTRY *LPALCDESTROYCONTEXT)( ALCcontext *context );
|
||||
typedef ALCcontext * (ALC_APIENTRY *LPALCGETCURRENTCONTEXT)( void );
|
||||
typedef ALCdevice * (ALC_APIENTRY *LPALCGETCONTEXTSDEVICE)( ALCcontext *context );
|
||||
typedef ALCdevice * (ALC_APIENTRY *LPALCOPENDEVICE)( const ALCchar *devicename );
|
||||
typedef ALCboolean (ALC_APIENTRY *LPALCCLOSEDEVICE)( ALCdevice *device );
|
||||
typedef ALCenum (ALC_APIENTRY *LPALCGETERROR)( ALCdevice *device );
|
||||
typedef ALCboolean (ALC_APIENTRY *LPALCISEXTENSIONPRESENT)( ALCdevice *device, const ALCchar *extname );
|
||||
typedef void * (ALC_APIENTRY *LPALCGETPROCADDRESS)(ALCdevice *device, const ALCchar *funcname );
|
||||
typedef ALCenum (ALC_APIENTRY *LPALCGETENUMVALUE)(ALCdevice *device, const ALCchar *enumname );
|
||||
typedef const ALCchar* (ALC_APIENTRY *LPALCGETSTRING)( ALCdevice *device, ALCenum param );
|
||||
typedef void (ALC_APIENTRY *LPALCGETINTEGERV)( ALCdevice *device, ALCenum param, ALCsizei size, ALCint *dest );
|
||||
typedef ALCdevice * (ALC_APIENTRY *LPALCCAPTUREOPENDEVICE)( const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize );
|
||||
typedef ALCboolean (ALC_APIENTRY *LPALCCAPTURECLOSEDEVICE)( ALCdevice *device );
|
||||
typedef void (ALC_APIENTRY *LPALCCAPTURESTART)( ALCdevice *device );
|
||||
typedef void (ALC_APIENTRY *LPALCCAPTURESTOP)( ALCdevice *device );
|
||||
typedef void (ALC_APIENTRY *LPALCCAPTURESAMPLES)( ALCdevice *device, ALCvoid *buffer, ALCsizei samples );
|
||||
|
||||
#if defined(TARGET_OS_MAC) && TARGET_OS_MAC
|
||||
#pragma export off
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* AL_ALC_H */
|
|
@ -0,0 +1,151 @@
|
|||
#ifndef __efxcreative_h_
|
||||
#define __efxcreative_h_
|
||||
|
||||
/**
|
||||
* efx-creative.h - Environmental Audio Extensions
|
||||
* for OpenAL Effects Extension.
|
||||
*
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* Effect object definitions to be used with alEffect functions.
|
||||
*
|
||||
* Effect parameter value definitions, ranges, and defaults
|
||||
* appear farther down in this file.
|
||||
*/
|
||||
|
||||
/* AL EAXReverb effect parameters. */
|
||||
#define AL_EAXREVERB_DENSITY 0x0001
|
||||
#define AL_EAXREVERB_DIFFUSION 0x0002
|
||||
#define AL_EAXREVERB_GAIN 0x0003
|
||||
#define AL_EAXREVERB_GAINHF 0x0004
|
||||
#define AL_EAXREVERB_GAINLF 0x0005
|
||||
#define AL_EAXREVERB_DECAY_TIME 0x0006
|
||||
#define AL_EAXREVERB_DECAY_HFRATIO 0x0007
|
||||
#define AL_EAXREVERB_DECAY_LFRATIO 0x0008
|
||||
#define AL_EAXREVERB_REFLECTIONS_GAIN 0x0009
|
||||
#define AL_EAXREVERB_REFLECTIONS_DELAY 0x000A
|
||||
#define AL_EAXREVERB_REFLECTIONS_PAN 0x000B
|
||||
#define AL_EAXREVERB_LATE_REVERB_GAIN 0x000C
|
||||
#define AL_EAXREVERB_LATE_REVERB_DELAY 0x000D
|
||||
#define AL_EAXREVERB_LATE_REVERB_PAN 0x000E
|
||||
#define AL_EAXREVERB_ECHO_TIME 0x000F
|
||||
#define AL_EAXREVERB_ECHO_DEPTH 0x0010
|
||||
#define AL_EAXREVERB_MODULATION_TIME 0x0011
|
||||
#define AL_EAXREVERB_MODULATION_DEPTH 0x0012
|
||||
#define AL_EAXREVERB_AIR_ABSORPTION_GAINHF 0x0013
|
||||
#define AL_EAXREVERB_HFREFERENCE 0x0014
|
||||
#define AL_EAXREVERB_LFREFERENCE 0x0015
|
||||
#define AL_EAXREVERB_ROOM_ROLLOFF_FACTOR 0x0016
|
||||
#define AL_EAXREVERB_DECAY_HFLIMIT 0x0017
|
||||
|
||||
/* Effect type definitions to be used with AL_EFFECT_TYPE. */
|
||||
#define AL_EFFECT_EAXREVERB 0x8000
|
||||
|
||||
|
||||
|
||||
/**********************************************************
|
||||
* Effect parameter structures, value definitions, ranges and defaults.
|
||||
*/
|
||||
|
||||
/**
|
||||
* AL reverb effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_EAXREVERB_MIN_DENSITY 0.0f
|
||||
#define AL_EAXREVERB_MAX_DENSITY 1.0f
|
||||
#define AL_EAXREVERB_DEFAULT_DENSITY 1.0f
|
||||
|
||||
#define AL_EAXREVERB_MIN_DIFFUSION 0.0f
|
||||
#define AL_EAXREVERB_MAX_DIFFUSION 1.0f
|
||||
#define AL_EAXREVERB_DEFAULT_DIFFUSION 1.0f
|
||||
|
||||
#define AL_EAXREVERB_MIN_GAIN 0.0f
|
||||
#define AL_EAXREVERB_MAX_GAIN 1.0f
|
||||
#define AL_EAXREVERB_DEFAULT_GAIN 0.32f
|
||||
|
||||
#define AL_EAXREVERB_MIN_GAINHF 0.0f
|
||||
#define AL_EAXREVERB_MAX_GAINHF 1.0f
|
||||
#define AL_EAXREVERB_DEFAULT_GAINHF 0.89f
|
||||
|
||||
#define AL_EAXREVERB_MIN_GAINLF 0.0f
|
||||
#define AL_EAXREVERB_MAX_GAINLF 1.0f
|
||||
#define AL_EAXREVERB_DEFAULT_GAINLF 1.0f
|
||||
|
||||
#define AL_EAXREVERB_MIN_DECAY_TIME 0.1f
|
||||
#define AL_EAXREVERB_MAX_DECAY_TIME 20.0f
|
||||
#define AL_EAXREVERB_DEFAULT_DECAY_TIME 1.49f
|
||||
|
||||
#define AL_EAXREVERB_MIN_DECAY_HFRATIO 0.1f
|
||||
#define AL_EAXREVERB_MAX_DECAY_HFRATIO 2.0f
|
||||
#define AL_EAXREVERB_DEFAULT_DECAY_HFRATIO 0.83f
|
||||
|
||||
#define AL_EAXREVERB_MIN_DECAY_LFRATIO 0.1f
|
||||
#define AL_EAXREVERB_MAX_DECAY_LFRATIO 2.0f
|
||||
#define AL_EAXREVERB_DEFAULT_DECAY_LFRATIO 1.0f
|
||||
|
||||
#define AL_EAXREVERB_MIN_REFLECTIONS_GAIN 0.0f
|
||||
#define AL_EAXREVERB_MAX_REFLECTIONS_GAIN 3.16f
|
||||
#define AL_EAXREVERB_DEFAULT_REFLECTIONS_GAIN 0.05f
|
||||
|
||||
#define AL_EAXREVERB_MIN_REFLECTIONS_DELAY 0.0f
|
||||
#define AL_EAXREVERB_MAX_REFLECTIONS_DELAY 0.3f
|
||||
#define AL_EAXREVERB_DEFAULT_REFLECTIONS_DELAY 0.007f
|
||||
|
||||
#define AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN {0.0f, 0.0f, 0.0f}
|
||||
|
||||
#define AL_EAXREVERB_MIN_LATE_REVERB_GAIN 0.0f
|
||||
#define AL_EAXREVERB_MAX_LATE_REVERB_GAIN 10.0f
|
||||
#define AL_EAXREVERB_DEFAULT_LATE_REVERB_GAIN 1.26f
|
||||
|
||||
#define AL_EAXREVERB_MIN_LATE_REVERB_DELAY 0.0f
|
||||
#define AL_EAXREVERB_MAX_LATE_REVERB_DELAY 0.1f
|
||||
#define AL_EAXREVERB_DEFAULT_LATE_REVERB_DELAY 0.011f
|
||||
|
||||
#define AL_EAXREVERB_DEFAULT_LATE_REVERB_PAN {0.0f, 0.0f, 0.0f}
|
||||
|
||||
#define AL_EAXREVERB_MIN_ECHO_TIME 0.075f
|
||||
#define AL_EAXREVERB_MAX_ECHO_TIME 0.25f
|
||||
#define AL_EAXREVERB_DEFAULT_ECHO_TIME 0.25f
|
||||
|
||||
#define AL_EAXREVERB_MIN_ECHO_DEPTH 0.0f
|
||||
#define AL_EAXREVERB_MAX_ECHO_DEPTH 1.0f
|
||||
#define AL_EAXREVERB_DEFAULT_ECHO_DEPTH 0.0f
|
||||
|
||||
#define AL_EAXREVERB_MIN_MODULATION_TIME 0.04f
|
||||
#define AL_EAXREVERB_MAX_MODULATION_TIME 4.0f
|
||||
#define AL_EAXREVERB_DEFAULT_MODULATION_TIME 0.25f
|
||||
|
||||
#define AL_EAXREVERB_MIN_MODULATION_DEPTH 0.0f
|
||||
#define AL_EAXREVERB_MAX_MODULATION_DEPTH 1.0f
|
||||
#define AL_EAXREVERB_DEFAULT_MODULATION_DEPTH 0.0f
|
||||
|
||||
#define AL_EAXREVERB_MIN_AIR_ABSORPTION_GAINHF 0.892f
|
||||
#define AL_EAXREVERB_MAX_AIR_ABSORPTION_GAINHF 1.0f
|
||||
#define AL_EAXREVERB_DEFAULT_AIR_ABSORPTION_GAINHF 0.994f
|
||||
|
||||
#define AL_EAXREVERB_MIN_HFREFERENCE 1000.0f
|
||||
#define AL_EAXREVERB_MAX_HFREFERENCE 20000.0f
|
||||
#define AL_EAXREVERB_DEFAULT_HFREFERENCE 5000.0f
|
||||
|
||||
#define AL_EAXREVERB_MIN_LFREFERENCE 20.0f
|
||||
#define AL_EAXREVERB_MAX_LFREFERENCE 1000.0f
|
||||
#define AL_EAXREVERB_DEFAULT_LFREFERENCE 250.0f
|
||||
|
||||
#define AL_EAXREVERB_MIN_ROOM_ROLLOFF_FACTOR 0.0f
|
||||
#define AL_EAXREVERB_MAX_ROOM_ROLLOFF_FACTOR 10.0f
|
||||
#define AL_EAXREVERB_DEFAULT_ROOM_ROLLOFF_FACTOR 0.0f
|
||||
|
||||
#define AL_EAXREVERB_MIN_DECAY_HFLIMIT AL_FALSE
|
||||
#define AL_EAXREVERB_MAX_DECAY_HFLIMIT AL_TRUE
|
||||
#define AL_EAXREVERB_DEFAULT_DECAY_HFLIMIT AL_TRUE
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* __efxcreative_h_ */
|
|
@ -0,0 +1,737 @@
|
|||
#ifndef __efx_h_
|
||||
#define __efx_h_
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ALC_EXT_EFX_NAME "ALC_EXT_EFX"
|
||||
|
||||
/**
|
||||
* Context definitions to be used with alcCreateContext.
|
||||
* These values must be unique and not conflict with other
|
||||
* al context values.
|
||||
*/
|
||||
#define ALC_EFX_MAJOR_VERSION 0x20001
|
||||
#define ALC_EFX_MINOR_VERSION 0x20002
|
||||
#define ALC_MAX_AUXILIARY_SENDS 0x20003
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Listener definitions to be used with alListener functions.
|
||||
* These values must be unique and not conflict with other
|
||||
* al listener values.
|
||||
*/
|
||||
#define AL_METERS_PER_UNIT 0x20004
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Source definitions to be used with alSource functions.
|
||||
* These values must be unique and not conflict with other
|
||||
* al source values.
|
||||
*/
|
||||
#define AL_DIRECT_FILTER 0x20005
|
||||
#define AL_AUXILIARY_SEND_FILTER 0x20006
|
||||
#define AL_AIR_ABSORPTION_FACTOR 0x20007
|
||||
#define AL_ROOM_ROLLOFF_FACTOR 0x20008
|
||||
#define AL_CONE_OUTER_GAINHF 0x20009
|
||||
#define AL_DIRECT_FILTER_GAINHF_AUTO 0x2000A
|
||||
#define AL_AUXILIARY_SEND_FILTER_GAIN_AUTO 0x2000B
|
||||
#define AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO 0x2000C
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Effect object definitions to be used with alEffect functions.
|
||||
*
|
||||
* Effect parameter value definitions, ranges, and defaults
|
||||
* appear farther down in this file.
|
||||
*/
|
||||
|
||||
/* Reverb Parameters */
|
||||
#define AL_REVERB_DENSITY 0x0001
|
||||
#define AL_REVERB_DIFFUSION 0x0002
|
||||
#define AL_REVERB_GAIN 0x0003
|
||||
#define AL_REVERB_GAINHF 0x0004
|
||||
#define AL_REVERB_DECAY_TIME 0x0005
|
||||
#define AL_REVERB_DECAY_HFRATIO 0x0006
|
||||
#define AL_REVERB_REFLECTIONS_GAIN 0x0007
|
||||
#define AL_REVERB_REFLECTIONS_DELAY 0x0008
|
||||
#define AL_REVERB_LATE_REVERB_GAIN 0x0009
|
||||
#define AL_REVERB_LATE_REVERB_DELAY 0x000A
|
||||
#define AL_REVERB_AIR_ABSORPTION_GAINHF 0x000B
|
||||
#define AL_REVERB_ROOM_ROLLOFF_FACTOR 0x000C
|
||||
#define AL_REVERB_DECAY_HFLIMIT 0x000D
|
||||
|
||||
/* Chorus Parameters */
|
||||
#define AL_CHORUS_WAVEFORM 0x0001
|
||||
#define AL_CHORUS_PHASE 0x0002
|
||||
#define AL_CHORUS_RATE 0x0003
|
||||
#define AL_CHORUS_DEPTH 0x0004
|
||||
#define AL_CHORUS_FEEDBACK 0x0005
|
||||
#define AL_CHORUS_DELAY 0x0006
|
||||
|
||||
/* Distortion Parameters */
|
||||
#define AL_DISTORTION_EDGE 0x0001
|
||||
#define AL_DISTORTION_GAIN 0x0002
|
||||
#define AL_DISTORTION_LOWPASS_CUTOFF 0x0003
|
||||
#define AL_DISTORTION_EQCENTER 0x0004
|
||||
#define AL_DISTORTION_EQBANDWIDTH 0x0005
|
||||
|
||||
/* Echo Parameters */
|
||||
#define AL_ECHO_DELAY 0x0001
|
||||
#define AL_ECHO_LRDELAY 0x0002
|
||||
#define AL_ECHO_DAMPING 0x0003
|
||||
#define AL_ECHO_FEEDBACK 0x0004
|
||||
#define AL_ECHO_SPREAD 0x0005
|
||||
|
||||
/* Flanger Parameters */
|
||||
#define AL_FLANGER_WAVEFORM 0x0001
|
||||
#define AL_FLANGER_PHASE 0x0002
|
||||
#define AL_FLANGER_RATE 0x0003
|
||||
#define AL_FLANGER_DEPTH 0x0004
|
||||
#define AL_FLANGER_FEEDBACK 0x0005
|
||||
#define AL_FLANGER_DELAY 0x0006
|
||||
|
||||
/* Frequencyshifter Parameters */
|
||||
#define AL_FREQUENCY_SHIFTER_FREQUENCY 0x0001
|
||||
#define AL_FREQUENCY_SHIFTER_LEFT_DIRECTION 0x0002
|
||||
#define AL_FREQUENCY_SHIFTER_RIGHT_DIRECTION 0x0003
|
||||
|
||||
/* Vocalmorpher Parameters */
|
||||
#define AL_VOCAL_MORPHER_PHONEMEA 0x0001
|
||||
#define AL_VOCAL_MORPHER_PHONEMEA_COARSE_TUNING 0x0002
|
||||
#define AL_VOCAL_MORPHER_PHONEMEB 0x0003
|
||||
#define AL_VOCAL_MORPHER_PHONEMEB_COARSE_TUNING 0x0004
|
||||
#define AL_VOCAL_MORPHER_WAVEFORM 0x0005
|
||||
#define AL_VOCAL_MORPHER_RATE 0x0006
|
||||
|
||||
/* Pitchshifter Parameters */
|
||||
#define AL_PITCH_SHIFTER_COARSE_TUNE 0x0001
|
||||
#define AL_PITCH_SHIFTER_FINE_TUNE 0x0002
|
||||
|
||||
/* Ringmodulator Parameters */
|
||||
#define AL_RING_MODULATOR_FREQUENCY 0x0001
|
||||
#define AL_RING_MODULATOR_HIGHPASS_CUTOFF 0x0002
|
||||
#define AL_RING_MODULATOR_WAVEFORM 0x0003
|
||||
|
||||
/* Autowah Parameters */
|
||||
#define AL_AUTOWAH_ATTACK_TIME 0x0001
|
||||
#define AL_AUTOWAH_RELEASE_TIME 0x0002
|
||||
#define AL_AUTOWAH_RESONANCE 0x0003
|
||||
#define AL_AUTOWAH_PEAK_GAIN 0x0004
|
||||
|
||||
/* Compressor Parameters */
|
||||
#define AL_COMPRESSOR_ONOFF 0x0001
|
||||
|
||||
/* Equalizer Parameters */
|
||||
#define AL_EQUALIZER_LOW_GAIN 0x0001
|
||||
#define AL_EQUALIZER_LOW_CUTOFF 0x0002
|
||||
#define AL_EQUALIZER_MID1_GAIN 0x0003
|
||||
#define AL_EQUALIZER_MID1_CENTER 0x0004
|
||||
#define AL_EQUALIZER_MID1_WIDTH 0x0005
|
||||
#define AL_EQUALIZER_MID2_GAIN 0x0006
|
||||
#define AL_EQUALIZER_MID2_CENTER 0x0007
|
||||
#define AL_EQUALIZER_MID2_WIDTH 0x0008
|
||||
#define AL_EQUALIZER_HIGH_GAIN 0x0009
|
||||
#define AL_EQUALIZER_HIGH_CUTOFF 0x000A
|
||||
|
||||
/* Effect type */
|
||||
#define AL_EFFECT_FIRST_PARAMETER 0x0000
|
||||
#define AL_EFFECT_LAST_PARAMETER 0x8000
|
||||
#define AL_EFFECT_TYPE 0x8001
|
||||
|
||||
/* Effect type definitions to be used with AL_EFFECT_TYPE. */
|
||||
#define AL_EFFECT_NULL 0x0000 /* Can also be used as an Effect Object ID */
|
||||
#define AL_EFFECT_REVERB 0x0001
|
||||
#define AL_EFFECT_CHORUS 0x0002
|
||||
#define AL_EFFECT_DISTORTION 0x0003
|
||||
#define AL_EFFECT_ECHO 0x0004
|
||||
#define AL_EFFECT_FLANGER 0x0005
|
||||
#define AL_EFFECT_FREQUENCY_SHIFTER 0x0006
|
||||
#define AL_EFFECT_VOCAL_MORPHER 0x0007
|
||||
#define AL_EFFECT_PITCH_SHIFTER 0x0008
|
||||
#define AL_EFFECT_RING_MODULATOR 0x0009
|
||||
#define AL_EFFECT_AUTOWAH 0x000A
|
||||
#define AL_EFFECT_COMPRESSOR 0x000B
|
||||
#define AL_EFFECT_EQUALIZER 0x000C
|
||||
|
||||
/**
|
||||
* Auxiliary Slot object definitions to be used with alAuxiliaryEffectSlot functions.
|
||||
*/
|
||||
#define AL_EFFECTSLOT_EFFECT 0x0001
|
||||
#define AL_EFFECTSLOT_GAIN 0x0002
|
||||
#define AL_EFFECTSLOT_AUXILIARY_SEND_AUTO 0x0003
|
||||
|
||||
/**
|
||||
* Value to be used as an Auxiliary Slot ID to disable a source send..
|
||||
*/
|
||||
#define AL_EFFECTSLOT_NULL 0x0000
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Filter object definitions to be used with alFilter functions.
|
||||
*/
|
||||
|
||||
/* Lowpass parameters. */
|
||||
#define AL_LOWPASS_GAIN 0x0001
|
||||
#define AL_LOWPASS_GAINHF 0x0002
|
||||
|
||||
/* Highpass Parameters */
|
||||
#define AL_HIGHPASS_GAIN 0x0001
|
||||
#define AL_HIGHPASS_GAINLF 0x0002
|
||||
|
||||
/* Bandpass Parameters */
|
||||
#define AL_BANDPASS_GAIN 0x0001
|
||||
#define AL_BANDPASS_GAINLF 0x0002
|
||||
#define AL_BANDPASS_GAINHF 0x0003
|
||||
|
||||
/* Filter type */
|
||||
#define AL_FILTER_FIRST_PARAMETER 0x0000
|
||||
#define AL_FILTER_LAST_PARAMETER 0x8000
|
||||
#define AL_FILTER_TYPE 0x8001
|
||||
|
||||
/* Filter type definitions to be used with AL_FILTER_TYPE. */
|
||||
#define AL_FILTER_NULL 0x0000 /* Can also be used as a Filter Object ID */
|
||||
#define AL_FILTER_LOWPASS 0x0001
|
||||
#define AL_FILTER_HIGHPASS 0x0002
|
||||
#define AL_FILTER_BANDPASS 0x0003
|
||||
|
||||
|
||||
/**
|
||||
* Effect object functions.
|
||||
*/
|
||||
|
||||
/* Create Effect objects. */
|
||||
typedef void (__cdecl *LPALGENEFFECTS)( ALsizei n, ALuint* effects );
|
||||
|
||||
/* Delete Effect objects. */
|
||||
typedef void (__cdecl *LPALDELETEEFFECTS)( ALsizei n, ALuint* effects );
|
||||
|
||||
/* Verify a handle is a valid Effect. */
|
||||
typedef ALboolean (__cdecl *LPALISEFFECT)( ALuint eid );
|
||||
|
||||
/* Set an integer parameter for an Effect object. */
|
||||
typedef void (__cdecl *LPALEFFECTI)( ALuint eid, ALenum param, ALint value);
|
||||
typedef void (__cdecl *LPALEFFECTIV)( ALuint eid, ALenum param, ALint* values );
|
||||
|
||||
/* Set a floating point parameter for an Effect object. */
|
||||
typedef void (__cdecl *LPALEFFECTF)( ALuint eid, ALenum param, ALfloat value);
|
||||
typedef void (__cdecl *LPALEFFECTFV)( ALuint eid, ALenum param, ALfloat* values );
|
||||
|
||||
/* Get an integer parameter for an Effect object. */
|
||||
typedef void (__cdecl *LPALGETEFFECTI)( ALuint eid, ALenum pname, ALint* value );
|
||||
typedef void (__cdecl *LPALGETEFFECTIV)( ALuint eid, ALenum pname, ALint* values );
|
||||
|
||||
/* Get a floating point parameter for an Effect object. */
|
||||
typedef void (__cdecl *LPALGETEFFECTF)( ALuint eid, ALenum pname, ALfloat* value );
|
||||
typedef void (__cdecl *LPALGETEFFECTFV)( ALuint eid, ALenum pname, ALfloat* values );
|
||||
|
||||
|
||||
/**
|
||||
* Filter object functions
|
||||
*/
|
||||
|
||||
/* Create Filter objects. */
|
||||
typedef void (__cdecl *LPALGENFILTERS)( ALsizei n, ALuint* filters );
|
||||
|
||||
/* Delete Filter objects. */
|
||||
typedef void (__cdecl *LPALDELETEFILTERS)( ALsizei n, ALuint* filters );
|
||||
|
||||
/* Verify a handle is a valid Filter. */
|
||||
typedef ALboolean (__cdecl *LPALISFILTER)( ALuint fid );
|
||||
|
||||
/* Set an integer parameter for a Filter object. */
|
||||
typedef void (__cdecl *LPALFILTERI)( ALuint fid, ALenum param, ALint value );
|
||||
typedef void (__cdecl *LPALFILTERIV)( ALuint fid, ALenum param, ALint* values );
|
||||
|
||||
/* Set a floating point parameter for an Filter object. */
|
||||
typedef void (__cdecl *LPALFILTERF)( ALuint fid, ALenum param, ALfloat value);
|
||||
typedef void (__cdecl *LPALFILTERFV)( ALuint fid, ALenum param, ALfloat* values );
|
||||
|
||||
/* Get an integer parameter for a Filter object. */
|
||||
typedef void (__cdecl *LPALGETFILTERI)( ALuint fid, ALenum pname, ALint* value );
|
||||
typedef void (__cdecl *LPALGETFILTERIV)( ALuint fid, ALenum pname, ALint* values );
|
||||
|
||||
/* Get a floating point parameter for a Filter object. */
|
||||
typedef void (__cdecl *LPALGETFILTERF)( ALuint fid, ALenum pname, ALfloat* value );
|
||||
typedef void (__cdecl *LPALGETFILTERFV)( ALuint fid, ALenum pname, ALfloat* values );
|
||||
|
||||
|
||||
/**
|
||||
* Auxiliary Slot object functions
|
||||
*/
|
||||
|
||||
/* Create Auxiliary Slot objects. */
|
||||
typedef void (__cdecl *LPALGENAUXILIARYEFFECTSLOTS)( ALsizei n, ALuint* slots );
|
||||
|
||||
/* Delete Auxiliary Slot objects. */
|
||||
typedef void (__cdecl *LPALDELETEAUXILIARYEFFECTSLOTS)( ALsizei n, ALuint* slots );
|
||||
|
||||
/* Verify a handle is a valid Auxiliary Slot. */
|
||||
typedef ALboolean (__cdecl *LPALISAUXILIARYEFFECTSLOT)( ALuint slot );
|
||||
|
||||
/* Set an integer parameter for a Auxiliary Slot object. */
|
||||
typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTI)( ALuint asid, ALenum param, ALint value );
|
||||
typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTIV)( ALuint asid, ALenum param, ALint* values );
|
||||
|
||||
/* Set a floating point parameter for an Auxiliary Slot object. */
|
||||
typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTF)( ALuint asid, ALenum param, ALfloat value );
|
||||
typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTFV)( ALuint asid, ALenum param, ALfloat* values );
|
||||
|
||||
/* Get an integer parameter for a Auxiliary Slot object. */
|
||||
typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTI)( ALuint asid, ALenum pname, ALint* value );
|
||||
typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTIV)( ALuint asid, ALenum pname, ALint* values );
|
||||
|
||||
/* Get a floating point parameter for a Auxiliary Slot object. */
|
||||
typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTF)( ALuint asid, ALenum pname, ALfloat* value );
|
||||
typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTFV)( ALuint asid, ALenum pname, ALfloat* values );
|
||||
|
||||
|
||||
|
||||
|
||||
/**********************************************************
|
||||
* Filter ranges and defaults.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Lowpass filter
|
||||
*/
|
||||
|
||||
#define LOWPASS_MIN_GAIN 0.0f
|
||||
#define LOWPASS_MAX_GAIN 1.0f
|
||||
#define LOWPASS_DEFAULT_GAIN 1.0f
|
||||
|
||||
#define LOWPASS_MIN_GAINHF 0.0f
|
||||
#define LOWPASS_MAX_GAINHF 1.0f
|
||||
#define LOWPASS_DEFAULT_GAINHF 1.0f
|
||||
|
||||
/**
|
||||
* Highpass filter
|
||||
*/
|
||||
|
||||
#define HIGHPASS_MIN_GAIN 0.0f
|
||||
#define HIGHPASS_MAX_GAIN 1.0f
|
||||
#define HIGHPASS_DEFAULT_GAIN 1.0f
|
||||
|
||||
#define HIGHPASS_MIN_GAINLF 0.0f
|
||||
#define HIGHPASS_MAX_GAINLF 1.0f
|
||||
#define HIGHPASS_DEFAULT_GAINLF 1.0f
|
||||
|
||||
/**
|
||||
* Bandpass filter
|
||||
*/
|
||||
|
||||
#define BANDPASS_MIN_GAIN 0.0f
|
||||
#define BANDPASS_MAX_GAIN 1.0f
|
||||
#define BANDPASS_DEFAULT_GAIN 1.0f
|
||||
|
||||
#define BANDPASS_MIN_GAINHF 0.0f
|
||||
#define BANDPASS_MAX_GAINHF 1.0f
|
||||
#define BANDPASS_DEFAULT_GAINHF 1.0f
|
||||
|
||||
#define BANDPASS_MIN_GAINLF 0.0f
|
||||
#define BANDPASS_MAX_GAINLF 1.0f
|
||||
#define BANDPASS_DEFAULT_GAINLF 1.0f
|
||||
|
||||
|
||||
|
||||
|
||||
/**********************************************************
|
||||
* Effect parameter structures, value definitions, ranges and defaults.
|
||||
*/
|
||||
|
||||
/**
|
||||
* AL reverb effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_REVERB_MIN_DENSITY 0.0f
|
||||
#define AL_REVERB_MAX_DENSITY 1.0f
|
||||
#define AL_REVERB_DEFAULT_DENSITY 1.0f
|
||||
|
||||
#define AL_REVERB_MIN_DIFFUSION 0.0f
|
||||
#define AL_REVERB_MAX_DIFFUSION 1.0f
|
||||
#define AL_REVERB_DEFAULT_DIFFUSION 1.0f
|
||||
|
||||
#define AL_REVERB_MIN_GAIN 0.0f
|
||||
#define AL_REVERB_MAX_GAIN 1.0f
|
||||
#define AL_REVERB_DEFAULT_GAIN 0.32f
|
||||
|
||||
#define AL_REVERB_MIN_GAINHF 0.0f
|
||||
#define AL_REVERB_MAX_GAINHF 1.0f
|
||||
#define AL_REVERB_DEFAULT_GAINHF 0.89f
|
||||
|
||||
#define AL_REVERB_MIN_DECAY_TIME 0.1f
|
||||
#define AL_REVERB_MAX_DECAY_TIME 20.0f
|
||||
#define AL_REVERB_DEFAULT_DECAY_TIME 1.49f
|
||||
|
||||
#define AL_REVERB_MIN_DECAY_HFRATIO 0.1f
|
||||
#define AL_REVERB_MAX_DECAY_HFRATIO 2.0f
|
||||
#define AL_REVERB_DEFAULT_DECAY_HFRATIO 0.83f
|
||||
|
||||
#define AL_REVERB_MIN_REFLECTIONS_GAIN 0.0f
|
||||
#define AL_REVERB_MAX_REFLECTIONS_GAIN 3.16f
|
||||
#define AL_REVERB_DEFAULT_REFLECTIONS_GAIN 0.05f
|
||||
|
||||
#define AL_REVERB_MIN_REFLECTIONS_DELAY 0.0f
|
||||
#define AL_REVERB_MAX_REFLECTIONS_DELAY 0.3f
|
||||
#define AL_REVERB_DEFAULT_REFLECTIONS_DELAY 0.007f
|
||||
|
||||
#define AL_REVERB_MIN_LATE_REVERB_GAIN 0.0f
|
||||
#define AL_REVERB_MAX_LATE_REVERB_GAIN 10.0f
|
||||
#define AL_REVERB_DEFAULT_LATE_REVERB_GAIN 1.26f
|
||||
|
||||
#define AL_REVERB_MIN_LATE_REVERB_DELAY 0.0f
|
||||
#define AL_REVERB_MAX_LATE_REVERB_DELAY 0.1f
|
||||
#define AL_REVERB_DEFAULT_LATE_REVERB_DELAY 0.011f
|
||||
|
||||
#define AL_REVERB_MIN_AIR_ABSORPTION_GAINHF 0.892f
|
||||
#define AL_REVERB_MAX_AIR_ABSORPTION_GAINHF 1.0f
|
||||
#define AL_REVERB_DEFAULT_AIR_ABSORPTION_GAINHF 0.994f
|
||||
|
||||
#define AL_REVERB_MIN_ROOM_ROLLOFF_FACTOR 0.0f
|
||||
#define AL_REVERB_MAX_ROOM_ROLLOFF_FACTOR 10.0f
|
||||
#define AL_REVERB_DEFAULT_ROOM_ROLLOFF_FACTOR 0.0f
|
||||
|
||||
#define AL_REVERB_MIN_DECAY_HFLIMIT AL_FALSE
|
||||
#define AL_REVERB_MAX_DECAY_HFLIMIT AL_TRUE
|
||||
#define AL_REVERB_DEFAULT_DECAY_HFLIMIT AL_TRUE
|
||||
|
||||
/**
|
||||
* AL chorus effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_CHORUS_MIN_WAVEFORM 0
|
||||
#define AL_CHORUS_MAX_WAVEFORM 1
|
||||
#define AL_CHORUS_DEFAULT_WAVEFORM 1
|
||||
|
||||
#define AL_CHORUS_WAVEFORM_SINUSOID 0
|
||||
#define AL_CHORUS_WAVEFORM_TRIANGLE 1
|
||||
|
||||
#define AL_CHORUS_MIN_PHASE (-180)
|
||||
#define AL_CHORUS_MAX_PHASE 180
|
||||
#define AL_CHORUS_DEFAULT_PHASE 90
|
||||
|
||||
#define AL_CHORUS_MIN_RATE 0.0f
|
||||
#define AL_CHORUS_MAX_RATE 10.0f
|
||||
#define AL_CHORUS_DEFAULT_RATE 1.1f
|
||||
|
||||
#define AL_CHORUS_MIN_DEPTH 0.0f
|
||||
#define AL_CHORUS_MAX_DEPTH 1.0f
|
||||
#define AL_CHORUS_DEFAULT_DEPTH 0.1f
|
||||
|
||||
#define AL_CHORUS_MIN_FEEDBACK (-1.0f)
|
||||
#define AL_CHORUS_MAX_FEEDBACK 1.0f
|
||||
#define AL_CHORUS_DEFAULT_FEEDBACK 0.25f
|
||||
|
||||
#define AL_CHORUS_MIN_DELAY 0.0f
|
||||
#define AL_CHORUS_MAX_DELAY 0.016f
|
||||
#define AL_CHORUS_DEFAULT_DELAY 0.016f
|
||||
|
||||
/**
|
||||
* AL distortion effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_DISTORTION_MIN_EDGE 0.0f
|
||||
#define AL_DISTORTION_MAX_EDGE 1.0f
|
||||
#define AL_DISTORTION_DEFAULT_EDGE 0.2f
|
||||
|
||||
#define AL_DISTORTION_MIN_GAIN 0.01f
|
||||
#define AL_DISTORTION_MAX_GAIN 1.0f
|
||||
#define AL_DISTORTION_DEFAULT_GAIN 0.05f
|
||||
|
||||
#define AL_DISTORTION_MIN_LOWPASS_CUTOFF 80.0f
|
||||
#define AL_DISTORTION_MAX_LOWPASS_CUTOFF 24000.0f
|
||||
#define AL_DISTORTION_DEFAULT_LOWPASS_CUTOFF 8000.0f
|
||||
|
||||
#define AL_DISTORTION_MIN_EQCENTER 80.0f
|
||||
#define AL_DISTORTION_MAX_EQCENTER 24000.0f
|
||||
#define AL_DISTORTION_DEFAULT_EQCENTER 3600.0f
|
||||
|
||||
#define AL_DISTORTION_MIN_EQBANDWIDTH 80.0f
|
||||
#define AL_DISTORTION_MAX_EQBANDWIDTH 24000.0f
|
||||
#define AL_DISTORTION_DEFAULT_EQBANDWIDTH 3600.0f
|
||||
|
||||
/**
|
||||
* AL echo effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_ECHO_MIN_DELAY 0.0f
|
||||
#define AL_ECHO_MAX_DELAY 0.207f
|
||||
#define AL_ECHO_DEFAULT_DELAY 0.1f
|
||||
|
||||
#define AL_ECHO_MIN_LRDELAY 0.0f
|
||||
#define AL_ECHO_MAX_LRDELAY 0.404f
|
||||
#define AL_ECHO_DEFAULT_LRDELAY 0.1f
|
||||
|
||||
#define AL_ECHO_MIN_DAMPING 0.0f
|
||||
#define AL_ECHO_MAX_DAMPING 0.99f
|
||||
#define AL_ECHO_DEFAULT_DAMPING 0.5f
|
||||
|
||||
#define AL_ECHO_MIN_FEEDBACK 0.0f
|
||||
#define AL_ECHO_MAX_FEEDBACK 1.0f
|
||||
#define AL_ECHO_DEFAULT_FEEDBACK 0.5f
|
||||
|
||||
#define AL_ECHO_MIN_SPREAD (-1.0f)
|
||||
#define AL_ECHO_MAX_SPREAD 1.0f
|
||||
#define AL_ECHO_DEFAULT_SPREAD (-1.0f)
|
||||
|
||||
/**
|
||||
* AL flanger effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_FLANGER_MIN_WAVEFORM 0
|
||||
#define AL_FLANGER_MAX_WAVEFORM 1
|
||||
#define AL_FLANGER_DEFAULT_WAVEFORM 1
|
||||
|
||||
#define AL_FLANGER_WAVEFORM_SINUSOID 0
|
||||
#define AL_FLANGER_WAVEFORM_TRIANGLE 1
|
||||
|
||||
#define AL_FLANGER_MIN_PHASE (-180)
|
||||
#define AL_FLANGER_MAX_PHASE 180
|
||||
#define AL_FLANGER_DEFAULT_PHASE 0
|
||||
|
||||
#define AL_FLANGER_MIN_RATE 0.0f
|
||||
#define AL_FLANGER_MAX_RATE 10.0f
|
||||
#define AL_FLANGER_DEFAULT_RATE 0.27f
|
||||
|
||||
#define AL_FLANGER_MIN_DEPTH 0.0f
|
||||
#define AL_FLANGER_MAX_DEPTH 1.0f
|
||||
#define AL_FLANGER_DEFAULT_DEPTH 1.0f
|
||||
|
||||
#define AL_FLANGER_MIN_FEEDBACK (-1.0f)
|
||||
#define AL_FLANGER_MAX_FEEDBACK 1.0f
|
||||
#define AL_FLANGER_DEFAULT_FEEDBACK (-0.5f)
|
||||
|
||||
#define AL_FLANGER_MIN_DELAY 0.0f
|
||||
#define AL_FLANGER_MAX_DELAY 0.004f
|
||||
#define AL_FLANGER_DEFAULT_DELAY 0.002f
|
||||
|
||||
/**
|
||||
* AL frequency shifter effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_FREQUENCY_SHIFTER_MIN_FREQUENCY 0.0f
|
||||
#define AL_FREQUENCY_SHIFTER_MAX_FREQUENCY 24000.0f
|
||||
#define AL_FREQUENCY_SHIFTER_DEFAULT_FREQUENCY 0.0f
|
||||
|
||||
#define AL_FREQUENCY_SHIFTER_MIN_LEFT_DIRECTION 0
|
||||
#define AL_FREQUENCY_SHIFTER_MAX_LEFT_DIRECTION 2
|
||||
#define AL_FREQUENCY_SHIFTER_DEFAULT_LEFT_DIRECTION 0
|
||||
|
||||
#define AL_FREQUENCY_SHIFTER_MIN_RIGHT_DIRECTION 0
|
||||
#define AL_FREQUENCY_SHIFTER_MAX_RIGHT_DIRECTION 2
|
||||
#define AL_FREQUENCY_SHIFTER_DEFAULT_RIGHT_DIRECTION 0
|
||||
|
||||
#define AL_FREQUENCY_SHIFTER_DIRECTION_DOWN 0
|
||||
#define AL_FREQUENCY_SHIFTER_DIRECTION_UP 1
|
||||
#define AL_FREQUENCY_SHIFTER_DIRECTION_OFF 2
|
||||
|
||||
/**
|
||||
* AL vocal morpher effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_VOCAL_MORPHER_MIN_PHONEMEA 0
|
||||
#define AL_VOCAL_MORPHER_MAX_PHONEMEA 29
|
||||
#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA 0
|
||||
|
||||
#define AL_VOCAL_MORPHER_MIN_PHONEMEA_COARSE_TUNING (-24)
|
||||
#define AL_VOCAL_MORPHER_MAX_PHONEMEA_COARSE_TUNING 24
|
||||
#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA_COARSE_TUNING 0
|
||||
|
||||
#define AL_VOCAL_MORPHER_MIN_PHONEMEB 0
|
||||
#define AL_VOCAL_MORPHER_MAX_PHONEMEB 29
|
||||
#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB 10
|
||||
|
||||
#define AL_VOCAL_MORPHER_PHONEME_A 0
|
||||
#define AL_VOCAL_MORPHER_PHONEME_E 1
|
||||
#define AL_VOCAL_MORPHER_PHONEME_I 2
|
||||
#define AL_VOCAL_MORPHER_PHONEME_O 3
|
||||
#define AL_VOCAL_MORPHER_PHONEME_U 4
|
||||
#define AL_VOCAL_MORPHER_PHONEME_AA 5
|
||||
#define AL_VOCAL_MORPHER_PHONEME_AE 6
|
||||
#define AL_VOCAL_MORPHER_PHONEME_AH 7
|
||||
#define AL_VOCAL_MORPHER_PHONEME_AO 8
|
||||
#define AL_VOCAL_MORPHER_PHONEME_EH 9
|
||||
#define AL_VOCAL_MORPHER_PHONEME_ER 10
|
||||
#define AL_VOCAL_MORPHER_PHONEME_IH 11
|
||||
#define AL_VOCAL_MORPHER_PHONEME_IY 12
|
||||
#define AL_VOCAL_MORPHER_PHONEME_UH 13
|
||||
#define AL_VOCAL_MORPHER_PHONEME_UW 14
|
||||
#define AL_VOCAL_MORPHER_PHONEME_B 15
|
||||
#define AL_VOCAL_MORPHER_PHONEME_D 16
|
||||
#define AL_VOCAL_MORPHER_PHONEME_F 17
|
||||
#define AL_VOCAL_MORPHER_PHONEME_G 18
|
||||
#define AL_VOCAL_MORPHER_PHONEME_J 19
|
||||
#define AL_VOCAL_MORPHER_PHONEME_K 20
|
||||
#define AL_VOCAL_MORPHER_PHONEME_L 21
|
||||
#define AL_VOCAL_MORPHER_PHONEME_M 22
|
||||
#define AL_VOCAL_MORPHER_PHONEME_N 23
|
||||
#define AL_VOCAL_MORPHER_PHONEME_P 24
|
||||
#define AL_VOCAL_MORPHER_PHONEME_R 25
|
||||
#define AL_VOCAL_MORPHER_PHONEME_S 26
|
||||
#define AL_VOCAL_MORPHER_PHONEME_T 27
|
||||
#define AL_VOCAL_MORPHER_PHONEME_V 28
|
||||
#define AL_VOCAL_MORPHER_PHONEME_Z 29
|
||||
|
||||
#define AL_VOCAL_MORPHER_MIN_PHONEMEB_COARSE_TUNING (-24)
|
||||
#define AL_VOCAL_MORPHER_MAX_PHONEMEB_COARSE_TUNING 24
|
||||
#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB_COARSE_TUNING 0
|
||||
|
||||
#define AL_VOCAL_MORPHER_MIN_WAVEFORM 0
|
||||
#define AL_VOCAL_MORPHER_MAX_WAVEFORM 2
|
||||
#define AL_VOCAL_MORPHER_DEFAULT_WAVEFORM 0
|
||||
|
||||
#define AL_VOCAL_MORPHER_WAVEFORM_SINUSOID 0
|
||||
#define AL_VOCAL_MORPHER_WAVEFORM_TRIANGLE 1
|
||||
#define AL_VOCAL_MORPHER_WAVEFORM_SAWTOOTH 2
|
||||
|
||||
#define AL_VOCAL_MORPHER_MIN_RATE 0.0f
|
||||
#define AL_VOCAL_MORPHER_MAX_RATE 10.0f
|
||||
#define AL_VOCAL_MORPHER_DEFAULT_RATE 1.41f
|
||||
|
||||
/**
|
||||
* AL pitch shifter effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_PITCH_SHIFTER_MIN_COARSE_TUNE (-12)
|
||||
#define AL_PITCH_SHIFTER_MAX_COARSE_TUNE 12
|
||||
#define AL_PITCH_SHIFTER_DEFAULT_COARSE_TUNE 12
|
||||
|
||||
#define AL_PITCH_SHIFTER_MIN_FINE_TUNE (-50)
|
||||
#define AL_PITCH_SHIFTER_MAX_FINE_TUNE 50
|
||||
#define AL_PITCH_SHIFTER_DEFAULT_FINE_TUNE 0
|
||||
|
||||
/**
|
||||
* AL ring modulator effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_RING_MODULATOR_MIN_FREQUENCY 0.0f
|
||||
#define AL_RING_MODULATOR_MAX_FREQUENCY 8000.0f
|
||||
#define AL_RING_MODULATOR_DEFAULT_FREQUENCY 440.0f
|
||||
|
||||
#define AL_RING_MODULATOR_MIN_HIGHPASS_CUTOFF 0.0f
|
||||
#define AL_RING_MODULATOR_MAX_HIGHPASS_CUTOFF 24000.0f
|
||||
#define AL_RING_MODULATOR_DEFAULT_HIGHPASS_CUTOFF 800.0f
|
||||
|
||||
#define AL_RING_MODULATOR_MIN_WAVEFORM 0
|
||||
#define AL_RING_MODULATOR_MAX_WAVEFORM 2
|
||||
#define AL_RING_MODULATOR_DEFAULT_WAVEFORM 0
|
||||
|
||||
#define AL_RING_MODULATOR_SINUSOID 0
|
||||
#define AL_RING_MODULATOR_SAWTOOTH 1
|
||||
#define AL_RING_MODULATOR_SQUARE 2
|
||||
|
||||
/**
|
||||
* AL autowah effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_AUTOWAH_MIN_ATTACK_TIME 0.0001f
|
||||
#define AL_AUTOWAH_MAX_ATTACK_TIME 1.0f
|
||||
#define AL_AUTOWAH_DEFAULT_ATTACK_TIME 0.06f
|
||||
|
||||
#define AL_AUTOWAH_MIN_RELEASE_TIME 0.0001f
|
||||
#define AL_AUTOWAH_MAX_RELEASE_TIME 1.0f
|
||||
#define AL_AUTOWAH_DEFAULT_RELEASE_TIME 0.06f
|
||||
|
||||
#define AL_AUTOWAH_MIN_RESONANCE 2.0f
|
||||
#define AL_AUTOWAH_MAX_RESONANCE 1000.0f
|
||||
#define AL_AUTOWAH_DEFAULT_RESONANCE 1000.0f
|
||||
|
||||
#define AL_AUTOWAH_MIN_PEAK_GAIN 0.00003f
|
||||
#define AL_AUTOWAH_MAX_PEAK_GAIN 31621.0f
|
||||
#define AL_AUTOWAH_DEFAULT_PEAK_GAIN 11.22f
|
||||
|
||||
/**
|
||||
* AL compressor effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_COMPRESSOR_MIN_ONOFF 0
|
||||
#define AL_COMPRESSOR_MAX_ONOFF 1
|
||||
#define AL_COMPRESSOR_DEFAULT_ONOFF 1
|
||||
|
||||
/**
|
||||
* AL equalizer effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_EQUALIZER_MIN_LOW_GAIN 0.126f
|
||||
#define AL_EQUALIZER_MAX_LOW_GAIN 7.943f
|
||||
#define AL_EQUALIZER_DEFAULT_LOW_GAIN 1.0f
|
||||
|
||||
#define AL_EQUALIZER_MIN_LOW_CUTOFF 50.0f
|
||||
#define AL_EQUALIZER_MAX_LOW_CUTOFF 800.0f
|
||||
#define AL_EQUALIZER_DEFAULT_LOW_CUTOFF 200.0f
|
||||
|
||||
#define AL_EQUALIZER_MIN_MID1_GAIN 0.126f
|
||||
#define AL_EQUALIZER_MAX_MID1_GAIN 7.943f
|
||||
#define AL_EQUALIZER_DEFAULT_MID1_GAIN 1.0f
|
||||
|
||||
#define AL_EQUALIZER_MIN_MID1_CENTER 200.0f
|
||||
#define AL_EQUALIZER_MAX_MID1_CENTER 3000.0f
|
||||
#define AL_EQUALIZER_DEFAULT_MID1_CENTER 500.0f
|
||||
|
||||
#define AL_EQUALIZER_MIN_MID1_WIDTH 0.01f
|
||||
#define AL_EQUALIZER_MAX_MID1_WIDTH 1.0f
|
||||
#define AL_EQUALIZER_DEFAULT_MID1_WIDTH 1.0f
|
||||
|
||||
#define AL_EQUALIZER_MIN_MID2_GAIN 0.126f
|
||||
#define AL_EQUALIZER_MAX_MID2_GAIN 7.943f
|
||||
#define AL_EQUALIZER_DEFAULT_MID2_GAIN 1.0f
|
||||
|
||||
#define AL_EQUALIZER_MIN_MID2_CENTER 1000.0f
|
||||
#define AL_EQUALIZER_MAX_MID2_CENTER 8000.0f
|
||||
#define AL_EQUALIZER_DEFAULT_MID2_CENTER 3000.0f
|
||||
|
||||
#define AL_EQUALIZER_MIN_MID2_WIDTH 0.01f
|
||||
#define AL_EQUALIZER_MAX_MID2_WIDTH 1.0f
|
||||
#define AL_EQUALIZER_DEFAULT_MID2_WIDTH 1.0f
|
||||
|
||||
#define AL_EQUALIZER_MIN_HIGH_GAIN 0.126f
|
||||
#define AL_EQUALIZER_MAX_HIGH_GAIN 7.943f
|
||||
#define AL_EQUALIZER_DEFAULT_HIGH_GAIN 1.0f
|
||||
|
||||
#define AL_EQUALIZER_MIN_HIGH_CUTOFF 4000.0f
|
||||
#define AL_EQUALIZER_MAX_HIGH_CUTOFF 16000.0f
|
||||
#define AL_EQUALIZER_DEFAULT_HIGH_CUTOFF 6000.0f
|
||||
|
||||
|
||||
|
||||
|
||||
/**********************************************************
|
||||
* Source parameter value definitions, ranges and defaults.
|
||||
*/
|
||||
#define AL_MIN_AIR_ABSORPTION_FACTOR 0.0f
|
||||
#define AL_MAX_AIR_ABSORPTION_FACTOR 10.0f
|
||||
#define AL_DEFAULT_AIR_ABSORPTION_FACTOR 0.0f
|
||||
|
||||
#define AL_MIN_ROOM_ROLLOFF_FACTOR 0.0f
|
||||
#define AL_MAX_ROOM_ROLLOFF_FACTOR 10.0f
|
||||
#define AL_DEFAULT_ROOM_ROLLOFF_FACTOR 0.0f
|
||||
|
||||
#define AL_MIN_CONE_OUTER_GAINHF 0.0f
|
||||
#define AL_MAX_CONE_OUTER_GAINHF 1.0f
|
||||
#define AL_DEFAULT_CONE_OUTER_GAINHF 1.0f
|
||||
|
||||
#define AL_MIN_DIRECT_FILTER_GAINHF_AUTO AL_FALSE
|
||||
#define AL_MAX_DIRECT_FILTER_GAINHF_AUTO AL_TRUE
|
||||
#define AL_DEFAULT_DIRECT_FILTER_GAINHF_AUTO AL_TRUE
|
||||
|
||||
#define AL_MIN_AUXILIARY_SEND_FILTER_GAIN_AUTO AL_FALSE
|
||||
#define AL_MAX_AUXILIARY_SEND_FILTER_GAIN_AUTO AL_TRUE
|
||||
#define AL_DEFAULT_AUXILIARY_SEND_FILTER_GAIN_AUTO AL_TRUE
|
||||
|
||||
#define AL_MIN_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_FALSE
|
||||
#define AL_MAX_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_TRUE
|
||||
#define AL_DEFAULT_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_TRUE
|
||||
|
||||
|
||||
|
||||
|
||||
/**********************************************************
|
||||
* Listener parameter value definitions, ranges and defaults.
|
||||
*/
|
||||
#define AL_MIN_METERS_PER_UNIT FLT_MIN
|
||||
#define AL_MAX_METERS_PER_UNIT FLT_MAX
|
||||
#define AL_DEFAULT_METERS_PER_UNIT 1.0f
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* __efx_h_ */
|
|
@ -0,0 +1,94 @@
|
|||
#include <al.h>
|
||||
|
||||
// X-RAM Function pointer definitions
|
||||
typedef ALboolean (__cdecl *EAXSetBufferMode)(ALsizei n, ALuint *buffers, ALint value);
|
||||
typedef ALenum (__cdecl *EAXGetBufferMode)(ALuint buffer, ALint *value);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Query for X-RAM extension
|
||||
//
|
||||
// if (alIsExtensionPresent("EAX-RAM") == AL_TRUE)
|
||||
// X-RAM Extension found
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// X-RAM enum names
|
||||
//
|
||||
// "AL_EAX_RAM_SIZE"
|
||||
// "AL_EAX_RAM_FREE"
|
||||
// "AL_STORAGE_AUTOMATIC"
|
||||
// "AL_STORAGE_HARDWARE"
|
||||
// "AL_STORAGE_ACCESSIBLE"
|
||||
//
|
||||
// Query enum values using alGetEnumValue, for example
|
||||
//
|
||||
// long lRamSizeEnum = alGetEnumValue("AL_EAX_RAM_SIZE")
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Query total amount of X-RAM
|
||||
//
|
||||
// long lTotalSize = alGetInteger(alGetEnumValue("AL_EAX_RAM_SIZE")
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Query free X-RAM available
|
||||
//
|
||||
// long lFreeSize = alGetInteger(alGetEnumValue("AL_EAX_RAM_FREE")
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Query X-RAM Function pointers
|
||||
//
|
||||
// Use typedefs defined above to get the X-RAM function pointers using
|
||||
// alGetProcAddress
|
||||
//
|
||||
// EAXSetBufferMode eaxSetBufferMode;
|
||||
// EAXGetBufferMode eaxGetBufferMode;
|
||||
//
|
||||
// eaxSetBufferMode = (EAXSetBufferMode)alGetProcAddress("EAXSetBufferMode");
|
||||
// eaxGetBufferMode = (EAXGetBufferMode)alGetProcAddress("EAXGetBufferMode");
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Force an Open AL Buffer into X-RAM (good for non-streaming buffers)
|
||||
//
|
||||
// ALuint uiBuffer;
|
||||
// alGenBuffers(1, &uiBuffer);
|
||||
// eaxSetBufferMode(1, &uiBuffer, alGetEnumValue("AL_STORAGE_HARDWARE"));
|
||||
// alBufferData(...);
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Force an Open AL Buffer into 'accessible' (currently host) RAM (good for streaming buffers)
|
||||
//
|
||||
// ALuint uiBuffer;
|
||||
// alGenBuffers(1, &uiBuffer);
|
||||
// eaxSetBufferMode(1, &uiBuffer, alGetEnumValue("AL_STORAGE_ACCESSIBLE"));
|
||||
// alBufferData(...);
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Put an Open AL Buffer into X-RAM if memory is available, otherwise use
|
||||
// host RAM. This is the default mode.
|
||||
//
|
||||
// ALuint uiBuffer;
|
||||
// alGenBuffers(1, &uiBuffer);
|
||||
// eaxSetBufferMode(1, &uiBuffer, alGetEnumValue("AL_STORAGE_AUTOMATIC"));
|
||||
// alBufferData(...);
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,142 @@
|
|||
#include <iostream>
|
||||
#include <cstdio>
|
||||
#include <cstdint>
|
||||
#include <thread>
|
||||
#include <chrono>
|
||||
|
||||
#if defined _WIN32
|
||||
#include <al.h>
|
||||
#include <alc.h>
|
||||
#include <io.h>
|
||||
#include <fcntl.h>
|
||||
#else
|
||||
#include <AL/al.h>
|
||||
#include <AL/alc.h>
|
||||
#endif
|
||||
|
||||
#pragma comment(lib, "libs/Win64/OpenAL32.lib")
|
||||
|
||||
#if 0 || defined _DEBUG
|
||||
#define AL_CHECK_ERROR(msg) (checkALError(msg))
|
||||
#else
|
||||
#define AL_CHECK_ERROR(msg)
|
||||
#endif
|
||||
|
||||
const uint8_t numBuf = 3;
|
||||
const ALsizei bufSize = 1000;
|
||||
const ALenum format = AL_FORMAT_MONO8;
|
||||
const ALsizei freq = 8000;
|
||||
char readBuf[bufSize];
|
||||
|
||||
void checkALError(const char * msg)
|
||||
{
|
||||
while (ALuint err = alGetError() != AL_NO_ERROR)
|
||||
std::cerr << "Caught AL Error at " << msg << ": " << err << "\n";
|
||||
}
|
||||
|
||||
ALsizei fillBufferFromStdin(ALuint buf)
|
||||
{
|
||||
// read
|
||||
const ALsizei bytesRead = (ALsizei) fread(readBuf, sizeof(uint8_t), bufSize, stdin);
|
||||
// copy to OpenAL buffer
|
||||
alBufferData(buf, format, (void *) readBuf, bytesRead, freq);
|
||||
AL_CHECK_ERROR("buffer data");
|
||||
return bytesRead;
|
||||
}
|
||||
|
||||
void updateBuffers(ALuint src, ALuint bufs[numBuf])
|
||||
{
|
||||
ALint srcState;
|
||||
do
|
||||
{
|
||||
// wait until a buffer is free
|
||||
ALint val = 0;
|
||||
do
|
||||
{
|
||||
alGetSourcei(src, AL_BUFFERS_PROCESSED, &val);
|
||||
AL_CHECK_ERROR("get num processed");
|
||||
if (val > 0) break;
|
||||
// sleep for a quarter of the duration a buffer plays
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds((bufSize / freq) * 1000 / 4));
|
||||
} while (true);
|
||||
while (val--)
|
||||
{
|
||||
// remove oldest buffer from queue and get its id
|
||||
ALuint buf;
|
||||
alSourceUnqueueBuffers(src, 1, &buf);
|
||||
AL_CHECK_ERROR("unqueue buffer");
|
||||
// fill buffer
|
||||
const ALsizei bytesRead = fillBufferFromStdin(buf);
|
||||
// add buffer to queue
|
||||
alSourceQueueBuffers(src, 1, &buf);
|
||||
AL_CHECK_ERROR("queue buffer");
|
||||
// if end of stdin was reached, return
|
||||
if (bytesRead < bufSize) return;
|
||||
}
|
||||
// check if source is still playing
|
||||
alGetSourcei(src, AL_SOURCE_STATE, &srcState);
|
||||
} while (AL_PLAYING == srcState);
|
||||
}
|
||||
|
||||
int main(int argc, char * argv[])
|
||||
{
|
||||
std::cout << "OpenAL test project\n";
|
||||
// set stdin to binary mode
|
||||
#ifdef _WIN32
|
||||
_setmode(_fileno(stdin), _O_BINARY);
|
||||
#else
|
||||
freopen(nullptr, "rb", stdin);
|
||||
#endif
|
||||
|
||||
// initialization: open default device
|
||||
ALCdevice * dev = alcOpenDevice(nullptr);
|
||||
// reset error state
|
||||
AL_CHECK_ERROR("open device");
|
||||
// create a context
|
||||
ALCcontext * context = alcCreateContext(dev, nullptr);
|
||||
AL_CHECK_ERROR("create context");
|
||||
alcMakeContextCurrent(context);
|
||||
AL_CHECK_ERROR("activate context");
|
||||
// create buffers for audio streaming
|
||||
ALuint bufs[numBuf];
|
||||
alGenBuffers(numBuf, bufs);
|
||||
AL_CHECK_ERROR("create buffer");
|
||||
// create source to play buffer
|
||||
ALuint src;
|
||||
alGenSources(1, &src);
|
||||
AL_CHECK_ERROR("create source");
|
||||
|
||||
// initially fill buffers
|
||||
for (uint8_t i = 0; i < numBuf; ++i) fillBufferFromStdin(bufs[i]);
|
||||
alSourceQueueBuffers(src, numBuf, bufs);
|
||||
AL_CHECK_ERROR("queue buffer");
|
||||
// play source
|
||||
alSourcePlay(src);
|
||||
AL_CHECK_ERROR("play");
|
||||
// fill buffers in loop
|
||||
updateBuffers(src, bufs);
|
||||
// when stream is read completely, wait until source stops playing
|
||||
ALint srcState;
|
||||
do
|
||||
{
|
||||
alGetSourcei(src, AL_SOURCE_STATE, &srcState);
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(10));
|
||||
} while (AL_PLAYING == srcState);
|
||||
|
||||
|
||||
// delete source
|
||||
alDeleteSources(1, &src);
|
||||
AL_CHECK_ERROR("delete source");
|
||||
// delete buffers
|
||||
alDeleteBuffers(numBuf, bufs);
|
||||
AL_CHECK_ERROR("delete buffer");
|
||||
// destroy context
|
||||
alcDestroyContext(context);
|
||||
AL_CHECK_ERROR("destroy context");
|
||||
// close device
|
||||
alcCloseDevice(dev);
|
||||
AL_CHECK_ERROR("close device");
|
||||
|
||||
std::cout << "Exiting\n";
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue