From 2a304de60c81416c980eb7385903734044be8787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Madar=C3=A1sz?= Date: Fri, 4 Aug 2023 22:56:58 +0200 Subject: [PATCH] initial commit --- OpenAL32.dll | Bin 0 -> 122904 bytes include/EFX-Util.h | 446 +++++++++++++++ include/al.h | 732 ++++++++++++++++++++++++ include/alc.h | 281 ++++++++++ include/efx-creative.h | 151 +++++ include/efx.h | 737 +++++++++++++++++++++++++ include/xram.h | 94 ++++ libs/Win32/EFX-Util_MT/EFX-Util.lib | Bin 0 -> 9072 bytes libs/Win32/EFX-Util_MTDLL/EFX-Util.lib | Bin 0 -> 9220 bytes libs/Win32/OpenAL32.lib | Bin 0 -> 20552 bytes libs/Win64/EFX-Util_MT/EFX-Util.lib | Bin 0 -> 15158 bytes libs/Win64/EFX-Util_MTDLL/EFX-Util.lib | Bin 0 -> 15308 bytes libs/Win64/OpenAL32.lib | Bin 0 -> 19858 bytes main.obj | Bin 0 -> 317087 bytes yalpa.cpp | 142 +++++ yalpa.exe | Bin 0 -> 293888 bytes 16 files changed, 2583 insertions(+) create mode 100644 OpenAL32.dll create mode 100644 include/EFX-Util.h create mode 100644 include/al.h create mode 100644 include/alc.h create mode 100644 include/efx-creative.h create mode 100644 include/efx.h create mode 100644 include/xram.h create mode 100644 libs/Win32/EFX-Util_MT/EFX-Util.lib create mode 100644 libs/Win32/EFX-Util_MTDLL/EFX-Util.lib create mode 100644 libs/Win32/OpenAL32.lib create mode 100644 libs/Win64/EFX-Util_MT/EFX-Util.lib create mode 100644 libs/Win64/EFX-Util_MTDLL/EFX-Util.lib create mode 100644 libs/Win64/OpenAL32.lib create mode 100644 main.obj create mode 100644 yalpa.cpp create mode 100644 yalpa.exe diff --git a/OpenAL32.dll b/OpenAL32.dll new file mode 100644 index 0000000000000000000000000000000000000000..259177ac33f588b814978693e809a9a221810449 GIT binary patch literal 122904 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 HI_m!cAzX;b literal 0 HcmV?d00001 diff --git a/include/EFX-Util.h b/include/EFX-Util.h new file mode 100644 index 0000000..2042a58 --- /dev/null +++ b/include/EFX-Util.h @@ -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 \ No newline at end of file diff --git a/include/al.h b/include/al.h new file mode 100644 index 0000000..1c2f95b --- /dev/null +++ b/include/al.h @@ -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 */ diff --git a/include/alc.h b/include/alc.h new file mode 100644 index 0000000..b0bbfbe --- /dev/null +++ b/include/alc.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 Hz + */ +#define ALC_FREQUENCY 0x1007 + +/** + * followed by Hz + */ +#define ALC_REFRESH 0x1008 + +/** + * followed by AL_TRUE, AL_FALSE + */ +#define ALC_SYNC 0x1009 + +/** + * followed by Num of requested Mono (3D) Sources + */ +#define ALC_MONO_SOURCES 0x1010 + +/** + * followed by 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 */ diff --git a/include/efx-creative.h b/include/efx-creative.h new file mode 100644 index 0000000..4ea9da6 --- /dev/null +++ b/include/efx-creative.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_ */ diff --git a/include/efx.h b/include/efx.h new file mode 100644 index 0000000..fece160 --- /dev/null +++ b/include/efx.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_ */ diff --git a/include/xram.h b/include/xram.h new file mode 100644 index 0000000..5d83662 --- /dev/null +++ b/include/xram.h @@ -0,0 +1,94 @@ +#include + +// 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(...); +// +////////////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/libs/Win32/EFX-Util_MT/EFX-Util.lib b/libs/Win32/EFX-Util_MT/EFX-Util.lib new file mode 100644 index 0000000000000000000000000000000000000000..f984bc78127a5a932de4d368d4714f27db178e6a GIT binary patch literal 9072 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 N(8)Fu`Zzi{`X8r19rXYJ literal 0 HcmV?d00001 diff --git a/libs/Win64/EFX-Util_MTDLL/EFX-Util.lib b/libs/Win64/EFX-Util_MTDLL/EFX-Util.lib new file mode 100644 index 0000000000000000000000000000000000000000..8a926e5c1949624d5c37d672f0b065040b30f996 GIT binary patch literal 15308 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 literal 0 HcmV?d00001 diff --git a/libs/Win64/OpenAL32.lib b/libs/Win64/OpenAL32.lib new file mode 100644 index 0000000000000000000000000000000000000000..17663e0a388887093e8cff00a892b0c8c4851360 GIT binary patch literal 19858 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 literal 0 HcmV?d00001 diff --git a/main.obj b/main.obj new file mode 100644 index 0000000000000000000000000000000000000000..977d89cbabc5227f9ae50a4c57ade87a09a82950 GIT binary patch literal 317087 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

Y0XF_tTyH|6*&p#GYvWTbRaCd0^SFVex@Vm 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 Ll$R)jQ1Jf&lU{F< literal 0 HcmV?d00001 diff --git a/yalpa.cpp b/yalpa.cpp new file mode 100644 index 0000000..5ec7b15 --- /dev/null +++ b/yalpa.cpp @@ -0,0 +1,142 @@ +#include +#include +#include +#include +#include + +#if defined _WIN32 +#include +#include +#include +#include +#else +#include +#include +#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; +} \ No newline at end of file diff --git a/yalpa.exe b/yalpa.exe new file mode 100644 index 0000000000000000000000000000000000000000..b11fe087fda307c3dbe06cfad7510acb47540391 GIT binary patch literal 293888 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

1lVtXU!r_)bqKaMBp_q*{I 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 literal 0 HcmV?d00001